github源码:我在这呢
引言:
eosjs是访问EOS区块链的JavaScript开发包,它通过RPC API访问EOS节点, 同时包含了密钥签名、交易序列化等本地操作 本篇教程只适合本地开发使用
1.npm安装eosjs
npm install eosjs
2.引入EOS包
import { Api, JsonRpc, RpcError } from 'eosjs'
//目前eosjs中包含的JsSignatureProvider在内存中管理私钥,
//在浏览器里使用 这个签名提供器是不安全的,仅限开发环境使用
import { JsSignatureProvider } from 'eosjs/dist/eosjs-jssig' //签名提供器
例子:
//账号的私钥
const defaultPrivateKey = "5JtUScZK2XEp3g9gh7F8bwtPTRAkASmNrrftmx4AxDKD5K4zDnr";
const signatureProvider = new JsSignatureProvider([defaultPrivateKey]);
3.JSON-RPC调用
//JsonRpc类封装了EOS JSON-RPC调用,在Nodejs中使用时,记得设置fetch API:
const rpc = new JsonRpc('http://127.0.0.1:8888', { fetch });
4.连接示例:
import { Api, JsonRpc, RpcError } from 'eosjs'
import { JsSignatureProvider } from 'eosjs/dist/eosjs-jssig'
let config = {
//需要调用的节点地址
rpc: new JsonRpc('http://api.kylin.alohaeos.com', { fetch }),
//自带签名器,会根据私钥获得对应公钥,连接本地节点时有用,
//若是连接公网节点,则不可使用,因为公钥与公网的公钥不一致,
//会导致在需要签名的操作前调用失效,
//返回TypeError: Cannot read property 'getAvailableKeys' of undefined
authorityProvider: new JsSignatureProvider(['5HvNc2K7HhmVTHUt5pL56hHxveX4EXGJn7UhNi6SSp1g7iwTAUD' ]),
//通过getInfo查看区块链节点信息获得
chainId: '5fff1dae8dc8e2fc4d5b23b2c7665c97f9e9d8edf2b6485a86ba311c25639191',
textDecoder: null,
textEncoder: null
}
const eos = new Api(config)
export default e信息获取
5.调用api
eos.rpc.get_info().then(result => { console.log(result) })
eos.rpc.get_account('eosxusanpang').then(result => { console.log(result) })
eos.rpc.get_currency_balance('eosio.token', 'eosxusanpang', 'EOS').then(result => { console.log(result) })
6.调用智能合约,发起一个transaction交易
eos.transact({
actions: [{
account: 'xwjselftoken', //合约账户
name: 'upsert', //合约内的action
authorization: [{
actor: 'xwjselftoken', //调用合约的账户
permission: 'active', //权限
}],
data: {
user: 'xwjselftoken',
first_name: 'xwj',
last_name: 'xwj',
age: 10,
street: 'xwj',
city: 'xwj',
state: 'xwj'
},
}]
},
{
blocksBehind: 3, //判断交易是否超时
expireSeconds: 30, //判断交易是否超时
}).then(result => { console.log(result) }).catch(err => console.log(err))
}
更多
想了解更多,请关注公众号哦!