eosjs 文档(介绍)
介绍
用于使用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 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
在浏览器中使用时包含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 test
Web集成测试套件
运行npm run build-web
构建浏览器发行包,然后在你选择的浏览器中打开src/tests/web.html
,该文件应该运行6次测试,在每次测试后将结果传递到网页上,延迟时间为2秒,最后两个测试应该为无效的交易和无效的rpc调用将异常传递到网页上。
上一篇:eosjs 文档(目录)
下一篇:浏览器
eosjs 文档(介绍)相关推荐
- 本篇文档介绍如何手动在ECS实例上部署Java web项目
本篇文档介绍如何手动在ECS实例上部署Java web项目.适用于刚开始使用阿里云进行建站的个人用户. 项目配置 { .section} 本篇教程在示例步骤中使用了以下版本的软件.操作时,请您以实际软 ...
- 1、ABP 文档介绍
ABP 文档介绍 Quick Start Getting Started Architecture Infrastructure ABP是一个开源且文档友好的应用程序框架.ABP不仅仅是一个框架,它还 ...
- 标准的VESA文档介绍
标准的VESA文档介绍 来源:中国自学编程网 发布日期:2007-05-12 概述: 该标准提供一系列应用程序能够使用的函数集. 1.获取某一指定超级VGA设备 ...
- Linux SDIO WIFI Marvell8801/Marvell88w8801(一) --- 代码及文档介绍
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- eosjs 文档(浏览器)
浏览器 用法 npm run build-web或yarn build-web. 为所有交易重用api对象,它缓存ABI以减少网络使用,只调用一次new eosjs_api.default(...). ...
- 【2】PRD文档介绍
首先,我想说,题主是一个不严肃的人(严肃脸),所以每次干个啥事之前我都喜欢唠唠嗑,说说废话,沟通沟通感情,曾经以为自己将会成为一个幻想中的产品经理那般大展身手,作为非计算机专业出身的应届生,后来才发现 ...
- CARLA传感器详细文档介绍+python实例(持续更新ing)
CARLA中有两种类型的传感器:每帧都工作的传感器(相机,点云等)和只有特定环境下才接收数据的传感器(触发检测).都属于carla.Sensor类,从carla.BlueprintLibrary类中实 ...
- PRD(产品需求说明文档)与MRD(市场需求文档)介绍
文章目录 目录 一.PRD(产品需求文档) 1.确定PRD文档格式 2.确定项目概述 3.项目功能描述 4.产品经理的思维体现在这几个方面: 5.大厂PRD常见规范: 6.PRD的最终目的: 二.MR ...
- Hi3798M V200 SDK文档介绍
目录 下载SDK并解压 解压后主要的文件夹 下载SDK并解压 步骤1:下载Hi3798M V200 SDK. 大家如果有下载路径可以直接下载,如果没有的话可以使用我这个路径. 链接:https://p ...
最新文章
- 怎么读懂python语句_Python入门基础知识点总结,一点文章就能让你看懂Python
- IE浏览器里无法运行脚本(script)常见的解决方法!
- java里css查找快捷键_CSS入门2—元素快捷键
- python运行错误-Python在运行中发生错误怎么正确处理方法,案例详解!
- Oracle PL/SQL基础知识
- 测试方案和测试计划的区别
- 一个利用sql 语句来实现分页的存储过程
- 开发人员需要了解的渐进式Web应用程序
- Django实战(6):对比RoR和Django的模板系统
- C++11 chrono库
- WPA2 Key Reinstallation 漏洞
- 如何复制百度文库的文章
- 输出流创建txt文件
- 数据结构(四)图 —— 编程作业 04 :哈利·波特的考试
- 【无标题】计统大作业-hello
- # 英语四级 词根+例句
- Java8之新日期时间篇
- 代码是如何编译成程序的?
- 前端 Vue 基础使用
- oracle查表空间剩余,查看Oracle表空间剩余
热门文章
- 4行代码再现《黑客帝国》数字雨,在终端实现的那种
- 苹果首席设计官离职!这个被称为“强纳肾”的男人,设计了iMac、iPhone等无数产品...
- Flink State和容错机制
- 区块链创业者:谈企业级区块链落地,传统行业的崛起(分享实录)
- 数据库实例: STOREBOOK 表空间 编辑 表空间: TEMP
- 《Docker技术入门与实战》——2.4 本章小结
- myeclipse按.自动提示方法
- Warning: Using a password on the command line interface can be insecure.解决办法
- Django模型 Q对象实现复杂查找
- 为什么工业控制系统需要安全防护?