资讯专栏INFORMATION COLUMN

eosjs 文档(介绍)

Forest10 / 2703人阅读

摘要:介绍用于使用与基于的区块链集成的。在浏览器中使用并不安全,只能用于开发目的,在网页上下文之外使用安全保管库,以确保在生产中签名交易时的安全性。错误处理使用处理错误。上一篇文档目录下一篇浏览器

介绍

用于使用EOSIO RPC API与基于EOSIO的区块链集成的Javascript API。

安装 NodeJS依赖
npm install eosjs@beta or yarn add eosjs@beta
浏览器发行包

在本地克隆此存储库然后运行npm run build-webyarn build-web,浏览器发行包将位于dist-web中,可以直接复制到项目存储库中。dist-web文件夹包含准备生产的缩小捆绑包以及用于调试的库的源映射版本,有关完整的浏览器用法示例,请参阅文档。

导入 ES模块

如果你有一个转换器,则支持在浏览器中使用ES6模块语法导入,就像Babel:

import { Api, JsonRpc, RpcError } from "eosjs";

import JsSignatureProvider from "eosjs/dist/eosjs-jssig"; // development only
CommonJS

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

在浏览器中使用时包含textDecodertextEncoder

const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });
发送交易

transact()用于使用可选的配置对象参数将交易签名并推送到区块链,此参数可以重写broadcast: true的默认值,并可用于填充给定blocksBehindexpireSeconds的TAPOS字段。如果没有配置选项,则预计将使用TAPOS字段(expirationref_block_numref_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 test
Web集成测试套件

运行npm run build-web构建浏览器发行包,然后在你选择的浏览器中打开src/tests/web.html,该文件应该运行6次测试,在每次测试后将结果传递到网页上,延迟时间为2秒,最后两个测试应该为无效的交易和无效的rpc调用将异常传递到网页上。

上一篇:eosjs 文档(目录) 下一篇:浏览器

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100490.html

相关文章

  • eosjs 文档(目录)

    摘要:文档用于使用与基于的区块链集成的。重要最近发布了针对的重大改写,一定要锁定你的依赖项。如果你正在寻找以前版本的,可以在这里找到它。指南介绍浏览器交易读取区块链参考接口接口类接口 eosjs 文档 用于使用EOSIO RPC API与基于EOSIO的区块链集成的Javascript API。 重要!最近发布了针对eosjs的重大改写,一定要锁定你的依赖项。 如果你正在寻找以前版本的eos...

    shleyZ 评论0 收藏0
  • eosjs 文档(浏览器)

    摘要:浏览器用法或。为所有交易重用对象,它缓存以减少网络使用,只调用一次。和支持如果你需要支持或,你还需要安装文本编码的,因为签名依赖于和不提供的。将和传递给构造函数,请参阅中的文档,以确定将其包含在项目中的最佳方法。上一篇介绍下一篇交易 浏览器 用法 npm run build-web或yarn build-web。 为所有交易重用api对象,它缓存ABI以减少网络使用,只调用一次new ...

    taohonghui 评论0 收藏0
  • eosjs 文档(RPC接口)

    摘要:接口接口属性定义于定义于定义于定义于定义于定义于定义于定义于定义于属性定义于定义于定义于属性定义于定义于属性定义于定义于定义于定义于定义于定义于定义于定义于 RPC接口 接口 Abi BlockTaposInfo GetAbiResult GetBlockResult GetCodeResult GetInfoResult GetRawCodeAndAbiResult PushTra...

    call_me_R 评论0 收藏0
  • eosjs 文档(Serialize接口)

    摘要:属性定义于定义于定义于定义于属性定义于属性定义于符号的名称,不包括精度。定义于小数点后的位数。定义于包含的字段,如果这是一个结构。定义于将转换为二进制形式并存储在中。类型声明参数名称类型返回上一篇类 Serialize接口 Action 属性 account:string 定义于eosjs-serialize.ts:92 authorization:Authorization[]...

    _ivan 评论0 收藏0
  • eosjs 文档(Serialize类)

    摘要:类构造函数定义于参数如果序列化或要反序列化的二进制数据,则为。返回定义于获取作为,注意只有位精度,有些值会改变,建议使用。返回构造函数定义于参数名称类型默认值返回属性定义于定义于是否已跳过任何二进制扩展名上一篇下一篇接口 Serialize类 SerialBuffer 构造函数 new SerialBuffer(__namedParameters?: object): SerialBu...

    waterc 评论0 收藏0

发表评论

0条评论

Forest10

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<