前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >eosjs转账代码

eosjs转账代码

作者头像
用户1408045
发布2019-03-12 10:33:22
9770
发布2019-03-12 10:33:22
举报
文章被收录于专栏:汇智网教程汇智网教程

本文介绍使用V20版本的eosjs实现代币转账的思路,并给出eosjs转账的实现代码。

我们首先在nodejs中引入要使用到的类:

代码语言:javascript
复制
const {Api,JsonRpc,RpcError} = require('eosjs')
const JsSignatureProvider = require('eosjs/dist/eosjs-jssig');  
const fetch = require('node-fetch'); 
const { TextEncoder, TextDecoder } = require('util');

在EOS中,代币转账就是对代币合约的transfer()方法的调用,因此接下来就是准备一个对代币合约的动作调用。例如,下面的动作将从账号useraaaaaaaa向账号userbbbbbbbb转0.0001个SYS代币:

代码语言:javascript
复制
const action = {
  account: 'eosio.token',
  name: 'transfer',
  authorization: [{
    actor: 'useraaaaaaaa',
    permission: 'active',
  }],
  data: {
    from: 'useraaaaaaaa',
    to: 'userbbbbbbbb',
    quantity: '0.0001 SYS',
    memo: '',
  },
}

接下来要准备一个签名器对交易进行签名,在开发时,我们可以使用eosj内置的签名器实现 JsSignatureProvider,它的实例化需要传入一组交易可能用到的私钥:

代码语言:javascript
复制
// useraaaaaaaa的私钥
const defaultPrivateKey = "5JtUScZK2XEp3g9gh7F8bwtPTRAkASmNrrftmx4AxDKD5K4zDnr"; 
const signatureProvider = new JsSignatureProvider([defaultPrivateKey]);

需要指出的是,JsSignatureProvider没有对私钥的任何保护措施,因此在生产环境中请不要使用这个签名器。在教程Eos智能合约与Dapp开发入门中我们给出了一个基于keosd的签名提供器可供生产环境下使用。

一旦交易完成签名,就需要利用EOS节点旳RPC接口提交交易,因此接下来初始化一个JsonRpc对象:

代码语言:javascript
复制
const rpc = new JsonRpc('http://127.0.0.1:8888', { fetch });

上述签名、序列化和广播交易的过程在eosjs中由Api类封装,因此我们只需要调用Api实例的transact()方法即可:

代码语言:javascript
复制
const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });
api.transact({actions:[action]})
  .then(ret => console.log(ret))
  .catch(err => console.log(err))

transact()方法的实现中,将调用JsonRpc对象的push_transaction()方法将签名后的序列化交易提交到节点并广播到整个EOS网络中。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/12/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档