介绍

用于使用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('\nCaught 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 文档(目录)

下一篇:浏览器

eosjs 文档(介绍)相关推荐

  1. 本篇文档介绍如何手动在ECS实例上部署Java web项目

    本篇文档介绍如何手动在ECS实例上部署Java web项目.适用于刚开始使用阿里云进行建站的个人用户. 项目配置 { .section} 本篇教程在示例步骤中使用了以下版本的软件.操作时,请您以实际软 ...

  2. 1、ABP 文档介绍

    ABP 文档介绍 Quick Start Getting Started Architecture Infrastructure ABP是一个开源且文档友好的应用程序框架.ABP不仅仅是一个框架,它还 ...

  3. 标准的VESA文档介绍

    标准的VESA文档介绍    来源:中国自学编程网   发布日期:2007-05-12      概述:      该标准提供一系列应用程序能够使用的函数集.      1.获取某一指定超级VGA设备 ...

  4. Linux SDIO WIFI Marvell8801/Marvell88w8801(一) --- 代码及文档介绍

    代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...

  5. eosjs 文档(浏览器)

    浏览器 用法 npm run build-web或yarn build-web. 为所有交易重用api对象,它缓存ABI以减少网络使用,只调用一次new eosjs_api.default(...). ...

  6. 【2】PRD文档介绍

    首先,我想说,题主是一个不严肃的人(严肃脸),所以每次干个啥事之前我都喜欢唠唠嗑,说说废话,沟通沟通感情,曾经以为自己将会成为一个幻想中的产品经理那般大展身手,作为非计算机专业出身的应届生,后来才发现 ...

  7. CARLA传感器详细文档介绍+python实例(持续更新ing)

    CARLA中有两种类型的传感器:每帧都工作的传感器(相机,点云等)和只有特定环境下才接收数据的传感器(触发检测).都属于carla.Sensor类,从carla.BlueprintLibrary类中实 ...

  8. PRD(产品需求说明文档)与MRD(市场需求文档)介绍

    文章目录 目录 一.PRD(产品需求文档) 1.确定PRD文档格式 2.确定项目概述 3.项目功能描述 4.产品经理的思维体现在这几个方面: 5.大厂PRD常见规范: 6.PRD的最终目的: 二.MR ...

  9. Hi3798M V200 SDK文档介绍

    目录 下载SDK并解压 解压后主要的文件夹 下载SDK并解压 步骤1:下载Hi3798M V200 SDK. 大家如果有下载路径可以直接下载,如果没有的话可以使用我这个路径. 链接:https://p ...

最新文章

  1. 怎么读懂python语句_Python入门基础知识点总结,一点文章就能让你看懂Python
  2. IE浏览器里无法运行脚本(script)常见的解决方法!
  3. java里css查找快捷键_CSS入门2—元素快捷键
  4. python运行错误-Python在运行中发生错误怎么正确处理方法,案例详解!
  5. Oracle PL/SQL基础知识
  6. 测试方案和测试计划的区别
  7. 一个利用sql 语句来实现分页的存储过程
  8. 开发人员需要了解的渐进式Web应用程序
  9. Django实战(6):对比RoR和Django的模板系统
  10. C++11 chrono库
  11. WPA2 Key Reinstallation 漏洞
  12. 如何复制百度文库的文章
  13. 输出流创建txt文件
  14. 数据结构(四)图 —— 编程作业 04 :哈利·波特的考试
  15. 【无标题】计统大作业-hello
  16. # 英语四级 词根+例句
  17. Java8之新日期时间篇
  18. 代码是如何编译成程序的?
  19. 前端 Vue 基础使用
  20. oracle查表空间剩余,查看Oracle表空间剩余

热门文章

  1. 4行代码再现《黑客帝国》数字雨,在终端实现的那种
  2. 苹果首席设计官离职!这个被称为“强纳肾”的男人,设计了iMac、iPhone等无数产品...
  3. Flink State和容错机制
  4. 区块链创业者:谈企业级区块链落地,传统行业的崛起(分享实录)
  5. 数据库实例: STOREBOOK 表空间 编辑 表空间: TEMP
  6. 《Docker技术入门与实战》——2.4 本章小结
  7. myeclipse按.自动提示方法
  8. Warning: Using a password on the command line interface can be insecure.解决办法
  9. Django模型 Q对象实现复杂查找
  10. 为什么工业控制系统需要安全防护?