介绍用于使用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 onlyCommonJSNodeJS支持使用commonJS语法导入。const { Api, JsonRpc, RpcError } = require(’eosjs’);const JsSignatureProvider = require(’eosjs/dist/eosjs-jssig’); // development onlyconst fetch = require(’node-fetch’); // node only; not needed in browsersconst { 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”; // useraaaaaaaaconst signatureProvider = new JsSignatureProvider([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(’\nCaught 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 文档(目录)下一篇:浏览器