摘要:介紹用于使用與基于的區(qū)塊鏈集成的。在瀏覽器中使用并不安全,只能用于開發(fā)目的,在網(wǎng)頁(yè)上下文之外使用安全保管庫(kù),以確保在生產(chǎn)中簽名交易時(shí)的安全性。錯(cuò)誤處理使用處理錯(cuò)誤。上一篇文檔目錄下一篇瀏覽器
介紹
用于使用EOSIO RPC API與基于EOSIO的區(qū)塊鏈集成的Javascript API。
安裝 NodeJS依賴npm install eosjs@beta or yarn add eosjs@beta瀏覽器發(fā)行包
在本地克隆此存儲(chǔ)庫(kù)然后運(yùn)行npm run build-web或yarn build-web,瀏覽器發(fā)行包將位于dist-web中,可以直接復(fù)制到項(xiàng)目存儲(chǔ)庫(kù)中。dist-web文件夾包含準(zhǔn)備生產(chǎn)的縮小捆綁包以及用于調(diào)試的庫(kù)的源映射版本,有關(guān)完整的瀏覽器用法示例,請(qǐng)參閱文檔。
導(dǎo)入 ES模塊如果你有一個(gè)轉(zhuǎn)換器,則支持在瀏覽器中使用ES6模塊語(yǔ)法導(dǎo)入,就像Babel:
import { Api, JsonRpc, RpcError } from "eosjs"; import JsSignatureProvider from "eosjs/dist/eosjs-jssig"; // development onlyCommonJS
NodeJS支持使用commonJS語(yǔ)法導(dǎo)入。
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基礎(chǔ)用法 簽名提供程序
簽名提供程序持有私鑰并負(fù)責(zé)簽名交易。
在瀏覽器中使用JsSignatureProvider并不安全,只能用于開發(fā)目的,在網(wǎng)頁(yè)上下文之外使用安全保管庫(kù),以確保在生產(chǎn)中簽名交易時(shí)的安全性。
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
在瀏覽器中使用時(shí)包含textDecoder和textEncoder。
const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });發(fā)送交易
transact()用于使用可選的配置對(duì)象參數(shù)將交易簽名并推送到區(qū)塊鏈,此參數(shù)可以重寫broadcast: true的默認(rèn)值,并可用于填充給定blocksBehind和expireSeconds的TAPOS字段。如果沒有配置選項(xiàng),則預(yù)計(jì)將使用TAPOS字段(expiration、ref_block_num、ref_block_prefix)解壓縮交易,并自動(dòng)將其廣播到鏈上。
(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); })();錯(cuò)誤處理
使用RpcError處理RPC錯(cuò)誤。
... 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)); } ...運(yùn)行測(cè)試 自動(dòng)單元測(cè)試套件
npm run test or yarn testWeb集成測(cè)試套件
運(yùn)行npm run build-web構(gòu)建瀏覽器發(fā)行包,然后在你選擇的瀏覽器中打開src/tests/web.html,該文件應(yīng)該運(yùn)行6次測(cè)試,在每次測(cè)試后將結(jié)果傳遞到網(wǎng)頁(yè)上,延遲時(shí)間為2秒,最后兩個(gè)測(cè)試應(yīng)該為無(wú)效的交易和無(wú)效的rpc調(diào)用將異常傳遞到網(wǎng)頁(yè)上。
上一篇:eosjs 文檔(目錄) 下一篇:瀏覽器文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/100490.html
摘要:文檔用于使用與基于的區(qū)塊鏈集成的。重要最近發(fā)布了針對(duì)的重大改寫,一定要鎖定你的依賴項(xiàng)。如果你正在尋找以前版本的,可以在這里找到它。指南介紹瀏覽器交易讀取區(qū)塊鏈參考接口接口類接口 eosjs 文檔 用于使用EOSIO RPC API與基于EOSIO的區(qū)塊鏈集成的Javascript API。 重要!最近發(fā)布了針對(duì)eosjs的重大改寫,一定要鎖定你的依賴項(xiàng)。 如果你正在尋找以前版本的eos...
摘要:瀏覽器用法或。為所有交易重用對(duì)象,它緩存以減少網(wǎng)絡(luò)使用,只調(diào)用一次。和支持如果你需要支持或,你還需要安裝文本編碼的,因?yàn)楹灻蕾囉诤筒惶峁┑摹⒑蛡鬟f給構(gòu)造函數(shù),請(qǐng)參閱中的文檔,以確定將其包含在項(xiàng)目中的最佳方法。上一篇介紹下一篇交易 瀏覽器 用法 npm run build-web或yarn build-web。 為所有交易重用api對(duì)象,它緩存ABI以減少網(wǎng)絡(luò)使用,只調(diào)用一次new ...
摘要:接口接口屬性定義于定義于定義于定義于定義于定義于定義于定義于定義于屬性定義于定義于定義于屬性定義于定義于屬性定義于定義于定義于定義于定義于定義于定義于定義于 RPC接口 接口 Abi BlockTaposInfo GetAbiResult GetBlockResult GetCodeResult GetInfoResult GetRawCodeAndAbiResult PushTra...
摘要:屬性定義于定義于定義于定義于屬性定義于屬性定義于符號(hào)的名稱,不包括精度。定義于小數(shù)點(diǎn)后的位數(shù)。定義于包含的字段,如果這是一個(gè)結(jié)構(gòu)。定義于將轉(zhuǎn)換為二進(jìn)制形式并存儲(chǔ)在中。類型聲明參數(shù)名稱類型返回上一篇類 Serialize接口 Action 屬性 account:string 定義于eosjs-serialize.ts:92 authorization:Authorization[]...
摘要:類構(gòu)造函數(shù)定義于參數(shù)如果序列化或要反序列化的二進(jìn)制數(shù)據(jù),則為。返回定義于獲取作為,注意只有位精度,有些值會(huì)改變,建議使用。返回構(gòu)造函數(shù)定義于參數(shù)名稱類型默認(rèn)值返回屬性定義于定義于是否已跳過(guò)任何二進(jìn)制擴(kuò)展名上一篇下一篇接口 Serialize類 SerialBuffer 構(gòu)造函數(shù) new SerialBuffer(__namedParameters?: object): SerialBu...
閱讀 1697·2019-08-30 15:44
閱讀 2629·2019-08-30 11:19
閱讀 466·2019-08-30 11:06
閱讀 1653·2019-08-29 15:27
閱讀 3133·2019-08-29 13:44
閱讀 1675·2019-08-28 18:28
閱讀 2409·2019-08-28 18:17
閱讀 2117·2019-08-26 10:41