摘要:介紹用于使用與基于的區塊鏈集成的。在瀏覽器中使用并不安全,只能用于開發目的,在網頁上下文之外使用安全保管庫,以確保在生產中簽名交易時的安全性。錯誤處理使用處理錯誤。上一篇文檔目錄下一篇瀏覽器
介紹
用于使用EOSIO RPC API與基于EOSIO的區塊鏈集成的Javascript API。
安裝 NodeJS依賴npm install eosjs@beta or yarn add eosjs@beta瀏覽器發行包
在本地克隆此存儲庫然后運行npm run build-web或yarn build-web,瀏覽器發行包將位于dist-web中,可以直接復制到項目存儲庫中。dist-web文件夾包含準備生產的縮小捆綁包以及用于調試的庫的源映射版本,有關完整的瀏覽器用法示例,請參閱文檔。
導入 ES模塊如果你有一個轉換器,則支持在瀏覽器中使用ES6模塊語法導入,就像Babel:
import { Api, JsonRpc, RpcError } from "eosjs"; import JsSignatureProvider from "eosjs/dist/eosjs-jssig"; // development onlyCommonJS
NodeJS支持使用commonJS語法導入。
const { Api, JsonRpc, RpcError } = require("eosjs"); const JsSignatureProvider = require("eosjs/dist/eosjs-jssig"); // development only const fetch = require("node-fetch"); // node only; not needed in browsers const { TextEncoder, TextDecoder } = require("util"); // node only; native TextEncoder/Decoder const { TextEncoder, TextDecoder } = require("text-encoding"); // React Native, IE11, and Edge Browsers only基礎用法 簽名提供程序
簽名提供程序持有私鑰并負責簽名交易。
在瀏覽器中使用JsSignatureProvider并不安全,只能用于開發目的,在網頁上下文之外使用安全保管庫,以確保在生產中簽名交易時的安全性。
const defaultPrivateKey = "5JtUScZK2XEp3g9gh7F8bwtPTRAkASmNrrftmx4AxDKD5K4zDnr"; // useraaaaaaaa const signatureProvider = new JsSignatureProvider.default([defaultPrivateKey]);JSON-RPC
打開與JSON-RPC的連接,包括在NodeJS上的fetch。
const rpc = new JsonRpc("http://127.0.0.1:8888", { fetch });API
在瀏覽器中使用時包含textDecoder和textEncoder。
const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });發送交易
transact()用于使用可選的配置對象參數將交易簽名并推送到區塊鏈,此參數可以重寫broadcast: true的默認值,并可用于填充給定blocksBehind和expireSeconds的TAPOS字段。如果沒有配置選項,則預計將使用TAPOS字段(expiration、ref_block_num、ref_block_prefix)解壓縮交易,并自動將其廣播到鏈上。
(async () => { const result = await api.transact({ actions: [{ account: "eosio.token", name: "transfer", authorization: [{ actor: "useraaaaaaaa", permission: "active", }], data: { from: "useraaaaaaaa", to: "useraaaaaaab", quantity: "0.0001 SYS", memo: "", }, }] }, { blocksBehind: 3, expireSeconds: 30, }); console.dir(result); })();錯誤處理
使用RpcError處理RPC錯誤。
... try { const result = await api.transact({ ... } catch (e) { console.log(" Caught exception: " + e); if (e instanceof RpcError) console.log(JSON.stringify(e.json, null, 2)); } ...運行測試 自動單元測試套件
npm run test or yarn testWeb集成測試套件
運行npm run build-web構建瀏覽器發行包,然后在你選擇的瀏覽器中打開src/tests/web.html,該文件應該運行6次測試,在每次測試后將結果傳遞到網頁上,延遲時間為2秒,最后兩個測試應該為無效的交易和無效的rpc調用將異常傳遞到網頁上。
上一篇:eosjs 文檔(目錄) 下一篇:瀏覽器文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100490.html
摘要:文檔用于使用與基于的區塊鏈集成的。重要最近發布了針對的重大改寫,一定要鎖定你的依賴項。如果你正在尋找以前版本的,可以在這里找到它。指南介紹瀏覽器交易讀取區塊鏈參考接口接口類接口 eosjs 文檔 用于使用EOSIO RPC API與基于EOSIO的區塊鏈集成的Javascript API。 重要!最近發布了針對eosjs的重大改寫,一定要鎖定你的依賴項。 如果你正在尋找以前版本的eos...
摘要:瀏覽器用法或。為所有交易重用對象,它緩存以減少網絡使用,只調用一次。和支持如果你需要支持或,你還需要安裝文本編碼的,因為簽名依賴于和不提供的。將和傳遞給構造函數,請參閱中的文檔,以確定將其包含在項目中的最佳方法。上一篇介紹下一篇交易 瀏覽器 用法 npm run build-web或yarn build-web。 為所有交易重用api對象,它緩存ABI以減少網絡使用,只調用一次new ...
摘要:接口接口屬性定義于定義于定義于定義于定義于定義于定義于定義于定義于屬性定義于定義于定義于屬性定義于定義于屬性定義于定義于定義于定義于定義于定義于定義于定義于 RPC接口 接口 Abi BlockTaposInfo GetAbiResult GetBlockResult GetCodeResult GetInfoResult GetRawCodeAndAbiResult PushTra...
摘要:屬性定義于定義于定義于定義于屬性定義于屬性定義于符號的名稱,不包括精度。定義于小數點后的位數。定義于包含的字段,如果這是一個結構。定義于將轉換為二進制形式并存儲在中。類型聲明參數名稱類型返回上一篇類 Serialize接口 Action 屬性 account:string 定義于eosjs-serialize.ts:92 authorization:Authorization[]...
摘要:類構造函數定義于參數如果序列化或要反序列化的二進制數據,則為。返回定義于獲取作為,注意只有位精度,有些值會改變,建議使用。返回構造函數定義于參數名稱類型默認值返回屬性定義于定義于是否已跳過任何二進制擴展名上一篇下一篇接口 Serialize類 SerialBuffer 構造函數 new SerialBuffer(__namedParameters?: object): SerialBu...
閱讀 1643·2019-08-30 15:44
閱讀 2567·2019-08-30 11:19
閱讀 394·2019-08-30 11:06
閱讀 1557·2019-08-29 15:27
閱讀 3078·2019-08-29 13:44
閱讀 1622·2019-08-28 18:28
閱讀 2353·2019-08-28 18:17
閱讀 1980·2019-08-26 10:41