EOS转账代码怎么写?我相信很多没有经验的人都不知所措。为此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。
下面介绍使用V20版本的eosjs实现令牌传递的思路,并给出eosjs传递的实现代码。
首先,我们介绍nodejs中要使用的类:
const{Api,JsonRpc,RpcError}=require('eosjs ')
constjssignaturevider=require(' EOS js/dist/EOS js-jssig ');
const fetch=require(' node-fetch ');
const{TextEncoder,text decoder }=require(' util ');在EOS中,令牌转移是对令牌契约的transfer()方法的调用,因此下一步是准备对令牌契约的操作调用。例如,以下操作会将0.0001 SYS令牌从帐户useraaaaaaaa转移到帐户userbbbbbbbb:
const action={ 0
account:'eosio.token ',
名称: '转账',
授权: [{ 0
actor: ' useraaaaaaaa ',
permission: '活动',
}],
数据:{
从from: ' useraaaaaaaa ',
to: ' userbbbbbbbb ',
数量: ' 0.0001系统',
memo: ' ',
},
}接下来,我们需要准备一个签名人来签署交易。在开发过程中,我们可以使用eosj的内置签名器来实现JsSignatureProvider,它的实例化需要传入一组事务中可能用到的私钥:
//useraaaaaaaa的私钥
constdefaultPrivateKey=' 5jtuszk2xep3g 9 GH 7f 8 bwtptrakasmnrrftmx4 axd kd5k 4 zdnr ';
const signaturevider=new jssignaturevider([DefaultPrivateKey]);需要指出的是,JsSignatureProvider对私钥没有任何保护措施,所以请不要在生产环境中使用这个签名人。在教程“Eos智能合约与Dapp开发简介”中,我们给出了一个基于keosd的签名提供者,可以在生产环境中使用。
一旦事务被签署,就需要使用EOS节点的RPC接口提交事务,所以接下来,初始化一个JsonRpc对象:
constrapc=newJsonRpc(' http://127 . 0 . 0 . 1:8888 ',{ fetch });上述事务的签名、序列化和广播的过程是由eosjs中的Api类封装的,所以我们只需要调用Api实例的transact()方法:
constapi=newApi({rpc,signatureProvider,textDecoder:newTextDecoder(),textencoder : newtextencoder()});
API . transact({ actions :[action]})。然后(ret=console.log(ret))。catch(err=console.log(err))在transact()方法的实现中,将调用JsonRpc对象的push_transaction()方法,将已签名的序列化事务提交给节点,并广播给整个EOS网络。
看完以上,你掌握了如何编写eosjs转移代码了吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道,感谢您的阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/144830.html