【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

EOSJS是EOSIO区块链的通用库,这里使用eosjs的目的是使用eosjs库中封装的交易的接口,使用及其简单,可在此处查看eosjs开发手册。

一、EOSJS简单用法

安装EOSJS

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

二、连接到测试网络【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

需要如下配置eos对象连接到指定的网络。修改以上代码eos = Eos()为如下代码。

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

  • chainId:通过eos.getInfo方法获取到的chain_id值填写在该字段中,用于连接到不同的网络中的必填字段。

  • keyProvider:用于签名事务的私钥,当前测试案例可随意填写,后续我们再介绍如果填写该字段的值。

  • httpEndpoint:提供nodeos服务的地址。

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

若chain_id:为’038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca’,则证明连接到了测试网络。

三、获取jungle测试网节点地址

大家可能会有疑问,上面配置中httpEndpoint字段的地址如何获取。

  1. 打开jungle网站

    地址是http://jungle.cryptolions.io/

  2. 点击API endpoints按钮

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

3.随意选择一个地址

API Endpoints列表中展示了多个连接地址,随意选复制一个即可。上面代码示例中则是选择了第一个地址http://jungle.cryptolions.io:18888

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

四、连接到主网

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

五、获取主网节点地址

  1. 打开eospark网站

    地址是https://eospark.com。在该网站可查询所有超级节点接入点网址。

  2. 选择超级节点

    随意选择一个超级节点即可。

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

3.选择接入点地址

随意选择一个接入点地址即可。上面代码示例中则是选择了第一个地址https://node1.zbeos.com

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

六、EOSJS配置

以下的教程在不特别说明的情况下,都是在本地网络上进行的开发。

在前面介绍了简单的配置eos,在开发中我们一般需要如下完整的配置。

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

  • chainId:16进制数据。要连接的区块链的唯一ID,这是有效交易签名所必需的字段。chainId通过 get_infoAPI调用提供。签署的所有交易仅对具有此chainId的区块链有效。出于安全原因验证chainId。

  • keyProvider:array|string数据。提供用于签名事务的私钥。如果提供了多个私钥,不能确定使用哪个私钥,可以使用调用get_required_keysAPI 获取要使用签名的密钥。

  • keyPrefix:string数据。更改公钥前缀。

  • httpEndpoint:string数据。提供nodeos服务的地址,如本地节点地址:http://127.0.0.1:8888。

  • expireInSeconds:number数据。事务到期前的秒数,时间基于nodeosd的时间。

  • broadcast:boolean值,默认是true。使用true将交易发布到区块链,使用false将获取签名的事务。

  • verbose:boolean值,默认是false。详细日志记录。

  • debug:boolean值,默认是false。低级调试日志记录。

  • sign:boolean值,默认是true。使用私钥签名交易。保留未签名的交易避免了提供私钥的需要。

  • authorization:array|auth数据。替换默认的eosjs的授权,通常在multisig配置中标识签名帐户和权限。授权可以是格式化为[email protected]的字符串,如下

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

七、创建账号

transaction函数接受标准区块链事务。

下面使用了newaccount去创建账号,新帐户需要抵押一定的代币用于RAM和带宽资源。使用已经存在的user账号去创建新账号user2

代码需求:

  • keyProvider字段中需要填写useractive权限的私钥

  • 必须解锁user账号的active权限的私钥所在的钱包

  • 新账号user2owner权限与active权限的公钥都是使用的局部变量pubkey里的值

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

运行后返回的数据为json字符串,经过格式化后数据较多,下面只展示了前面一部分

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易运行后即可查询到公钥EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV所关联的账号有user2,如下所示

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

八、代币转账

下面代码是实现user向tserer转账,转的代币是EOS,数额为1。

代码需求:

  • keyProvider字段中需要填写user的私钥

  • 必须解锁user账号的私钥所在的钱包

  • user必须拥有EOS代币,且余额不小于1

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

在运行转账代码之前,先查询一下user与tester的代币余额,如下

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

运行后user账号的EOS代币余额会减少1个,由74变成了75;同时tester账号的EOS代币余额会增加1个由25变成了26,如下所示。

【EOS钱包开发 六】深入浅出EOSJS:连接到主网、测试网、交易

九、总结

连接指定网络主要是设置httpEndpoint字段的地址,地址可以通过网站获取。连接到网络后注意设置chainId字段。

根据chainId可以确定连接的网络类型:

  • 本地网络:

    cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f

  • 测试网络:

    038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca

  • 主网:

    aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906

对象eos操作时所带有的私钥由keyProvider配置,很关键,若填错则无权限操作。

版权声明:博客中的文章版权归博主所有,未经授权禁止转载,转载请联系作者(微信:lixu1770105)取得同意并注明出处。

本文地址: https://chaindesk.cn/witbook/2/24


愿码(ChainDesk.CN)——连接每个程序员的故事

“愿码”以线上社区线下实战型人才加速器相结合,立志打造全球最大的IT实战型多元化复合型人才生态圈。

免费技术交流群:263270946

技术提升、快速转型请关注微信公众号:愿码

原创文章,作者:酷毙编辑,如若转载,请注明出处:https://www.dailybtc.cn/e6c5a76a8cd71cfa6634a6b0d5156c01/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:[email protected]

工作时间:周一至周五,9:30-18:30,节假日休息

QR code