深圳币安智能链开发|BSC项目开发|BSC智能合约Dapp开发|BEP20代币开发

资讯 2024-07-15 阅读:37 评论:0
...
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

作者 | 金戈

出品|数字掘金(技术开发:13006685996微电同号)

BscTool开发包适用于为PHP应用快速增加对币安智能链BNB/BEP20数字资产的支持能力, 即支持使用自有BSC区块链节点的应用场景,也支持基于BSC区块链官方节点API服务的 轻量级部署场景。

BscTool开发包主要包含以下特性:

  • 支持BSC区块链原生BNB转账交易及余额查询
  • 支持BSC链上智能合约的部署与交互,支持BEP20代币转账交易及到账跟踪
  • 支持BSC链上交易的离线签名,避免泄露私钥
  • 支持使用自有节点或第三方节点,例如BSC官方提供的公共节点

BscTool软件包运行在?Php 7.1+?环境下,当前版本1.0.0,主要类/接口及关系如下图所示:

bsctool umlbsctool uml

BscTool的主要代码文件清单如下:

代码文件说明bsc.php/src/Kit.phpBscTool开发包入口类bsc.php/src/Bep20.phpBEP20智能合约封装类bsc.php/src/SmartContract.phpBSC智能合约封装类bsc.php/src/Credential.phpBSC区链上身份标识类,用于交易签名bsc.php/src/NodeClient.phpBSC节点协议封装类bsc.php/src/Callback.phpPhp回调辅助类bsc.php/src/Helper.php杂项辅助函数集contracts/WizToken.sol示例BEP20代币合约bin/build-contracts.sh合约编译脚本工具demo/credential-demo.php演示如何创建新的BSC账号或导入已有私钥demo/bnb-demo.php演示BNB转账及余额查询demo/bep20-demo.php演示BEP20代币转账及余额查询demo/bep20-event-demo.php演示BEP20代币到账监听demo/deploy-contract-demo.php演示代码,智能合约的部署vendor第三方依赖包目录composer.jsoncomposer配置文件

在使用示例代码之前,请按照实际情况设置

demo/config.php

中的以下配置信息:

  • NETWORK:要接入的区块链网络,可选:mainNet - BSC主链, testNet - BSC测试链
  • ALICE_ADDR:demo程序使用的主测试账号,该账号将用于部署代币合约、执行BNB及BEP20代币转账交易等操作,因此 需要有一定数量的BNB余额。
  • ALICE_SK:主测试账号对应的私钥

?

demo/credential-demo.php

演示了如何使用BscTool创建新的BSC链上地址,或者导入已有私钥重建账号。

在终端进入演示代码目录,执行如下命令:

<code class="hljs ruby" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;">~$ cd ~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>$ php credential-demo.php</code>

执行结果如下:

demo/bnb-demo.php

演示了如何使用BscTool实现BNB转账和余额查询。

在终端进入演示代码目录,执行如下命令:

<code class="hljs ruby" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;">~$ cd ~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>$ php bnb-demo.php</code>

执行结果如下:

demo/deploy-contract-demo.php

演示了如何使用BscTool部署EVM智能合约。

在终端进入演示代码目录,执行如下命令:

<code class="hljs ruby" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;">~$ cd ~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>$ php deploy-contract-demo.php</code>

执行结果如下:

demo/bep20-demo.php

演示了如何使用BscTool实现BEP20代币转账和余额查询等操作。

在终端进入演示代码目录,执行如下命令:

<code class="hljs ruby" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;">~$ cd ~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>$ php bep2<span class="hljs-number" style="box-sizing: border-box; color: teal;">0</span>-demo.php</code>

执行结果如下:

demo/bep20-event-demo.php

演示了如何使用BscTool的合约事件查询功能 实现BEP20代币的到账跟踪。

在终端进入演示代码目录,执行如下命令:

<code class="hljs ruby" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;">~$ cd ~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>~<span class="hljs-regexp" style="box-sizing: border-box; color: rgb(0, 153, 38);">/bsctool/demo</span>$ php bep2<span class="hljs-number" style="box-sizing: border-box; color: teal;">0</span>-event-demo.php</code>

执行结果如下:

Kit类是BscTool开发包的入口,使用这个类可以快速实现如下功能:

  • BNB转账与余额查询
  • BEP20代币转账、授权、余额查询等

Kit实例化需要传入

NodeClient

对象和

Credential

对象,这两个 参数分别封装了BSC节点提供的API、以及进行交易签名的用户身份信息。

例如,下面的代码创建一个接入BSC主链的Kit实例,并使用 指定的私钥进行交易签名:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\Kit;</span><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\NodeClient;</span><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\Credential;</span>$kit=<span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">new</span> Kit( NodeClient::mainNet(), <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//接入主链</span> Credential::fromKey(<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x87c12d....d435'</span>) <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//使用指定私钥</span>);</code>

使用Kit对象的

transfer()

方法进行BNB转账,例如发送0.1 BNB:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\Kit;</span>$to=<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x90F8bf6...0e7944Ea8c9C1'</span>; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转账目标地址</span>$amount=bn(<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'100000000000000000'</span>); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转账金额,按最小单位</span>$txid=$kit-gttransfer($to,$amount); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//提交BNB转账交易</span><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'txid=gt '</span> . $txid . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//显示交易ID</span></code>

注意:需要将金额转换为最小单位,由于BNB的小数位数是18, 因此 0.1 BNB=100000000000000000 最小单位。

使用

balanceOf()

方法查询指定地址的BNB余额,例如:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;">$addr=<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x90F8bf6...0e7944Ea8c9C1'</span>; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//要查询的BSC链上地址</span>$balance=$kit-gtbalanceOf($addr); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//查询BNB余额,按最小单位</span><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'balance=gt '</span> . $balance . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//显示BNB余额</span></code>

使用Kit对象的

bep20()

方法获取指定BEP20代币合约实例,然后调用合约 的

transfer()

方法进行BEP20代币转账。例如,下面的代码 指定地址间转账123.4567 BUSD-T(代币合约地址:0x55d398326f99059ff775485246999027b3197955):

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\Kit;</span>$to=<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx'</span>; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转账目标地址</span>$amount=bn(<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'123456700000000000000'</span>); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转账BEP20代币数量</span>$contractAddr=<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x55d398326f99059ff775485246999027b3197955'</span> <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//BUSD-T代币合约的部署地址</span>$txid=$kit-gtbep20($contractAddr) -gttransfer($to,$amount); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转账BEP20代币</span><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'txid=gt '</span> . $txid . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//显示转账交易ID</span></code>

使用

bep20()

方法获取指定的BEP20代币合约实例,然后调用合约 的

balanceOf()

方法查询代币余额。例如,下面的代码查询指定地址 的BUSD-T代币余额:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\Kit;</span>$contractAddr=<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x55d398326f99059ff775485246999027b3197955'</span> <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//BUSD-T代币合约的部署地址</span>$balance=$kit-gtbep20($contractAddr) -gtbalanceOf(<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x90F8bf6...0e7944Ea8c9C1'</span>); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//查询地址0x90F8...的代币余额</span><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'balance=gt '</span> . $balance . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//显示代币余额</span></code>

使用

bep20()

方法获取指定BEP20代币合约实例,然后调用 合约实例的

getTransferEvents()

方法查询指定条件的转账事件。

可以使用

getTransferEvents()

方法跟踪指定地址的到账状态。 例如查询地址0x90F8...在最新区块的BUSD-T代币到账事件:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\Kit;</span>$contractAddr=<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x55d398326f99059ff775485246999027b3197955'</span> <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//BUSD-T代币合约的部署地址</span>$events=$kit-gtbep20($contractAddr) -gtgetTransferEvents( <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//查询到账事件</span> [], <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转出账号,空数组表示不要求特定的转出账号 </span> [<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x90F8bf6...0e7944Ea8c9C1'</span>], <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//接收账号,仅查询地址0x90F8...的到账事件</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'latest'</span>, <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//查询起始区块号,latest表示使用最新区块</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'latest'</span> <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//查询结束区块号,latest表示使用最新区块</span> ); <span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">foreach</span>($events <span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">as</span> $event){ <span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'block=gt '</span> . $event-gtblockNumber . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//事件发生区块号</span> <span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'from=gt '</span> . $event-gtparams[<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'from'</span>] . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转出账号</span> <span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'to=gt '</span> . $event-gtparams[<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'to'</span>] . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转入账号</span> <span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'value=gt '</span> . $event-gtparams[<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'value'</span>] . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//转账金额</span>}</code>

getTransferEvents()

方法返回的结果是一个事件对象数组,每个成员对象的主要字段 说明如下:

  • blockHash:事件触发的区块哈希
  • blockNumber:事件触发的区块号
  • transactionHash:触发事件的交易ID
  • address:事件触发的合约地址
  • name:事件名称,例如转账事件的名称为:Transfer
  • params:事件参数数组,例如转账事件包含以下三个参数:
  • from:转出账号
  • to:转入账号
  • value:转账数量

在BscTool中,使用

Credential

对象表征BSC区块链中的一个用户身份,使用普通的 字符串表征BSC区块链中的一个地址,这两者的区别在于Credential包含了用户 的私钥信息,可以用来签名交易,因此需要保护。

使用Credential类的静态方法

create()

创建新账户。例如,下面的代码创建一个 新的账户并显示其私钥、公钥和地址:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\Credential;</span>$credential=Credential::create(); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//创建新账号</span><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'private key=gt '</span> . $credential-gtgetPrivateKey() . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//显示私钥</span><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'public key=gt '</span> . $credential-gtgetPublicKey() . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//显示公钥</span><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'address=gt '</span> . $credential-gtgetAddress() . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//显示地址</span></code>

可以使用静态方法

fromKey()

导入已有的私钥来实例化Credential。 例如下面的代码导入已有私钥并显示地址:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\Credential;</span>$credential=Credential::fromKey(<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'0x7889...023a'</span>); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//导入已有私钥</span><span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">echo</span> <span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'address=gt '</span> . $credential-gtgetAddress() . PHP_EOL; <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//显示相应地址</span></code>

NodeClient类封装了BSC节点的RPC访问协议。实例化NodeClient时,需要指定要连接 的节点URL,例如使用本地的全节点:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsc\NodeClient;</span>$client=<span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">new</span> NodeClient(<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'http://localhost:8545'</span>);</code>

当使用BSC官方节点时,NodeClient类也提供列两个静态函数

mainNet()

testNet()

,分别 用于接入官方提供的主链节点和测试链节点。

例如,下面的代码是等效的:

<code class="hljs php" style="box-sizing: border-box; font-size: inherit; padding: 10px; font-family: Menlo, Monaco, Consolas, quotCourier Newquot, monospace; color: rgb(51, 51, 51); background: rgb(248, 248, 248); border-radius: 0px; white-space: pre-wrap; display: block; overflow-x: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//use bsctool\NodeClient;</span>$client=<span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">new</span> NodeClient(<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'https://bsc-dataseed.binance.org/'</span>);$tc=NodeClient::mainNet(); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//与上面等效</span>$tc=<span class="hljs-keyword" style="box-sizing: border-box; color: rgb(51, 51, 51); font-weight: 700;">new</span> NodeClient(<span class="hljs-string" style="box-sizing: border-box; color: rgb(221, 17, 68);">'https://data-seed-prebsc-1-s1.binance.org:8545/'</span>);$tc=NodeClient::testNet(); <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">//与上面等效</span></code>

美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • 0.00006694个比特币等于多少人民币/美金

    0.00006694个比特币等于多少人民币/美金
    0.00006694比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00006694比特币等于4.53424784美元/32.5436 16人民币。比特币(BTC)美元(USDT)人民币(CNY)0.000066944.53424784【比特币密码】32.82795436 16比特币对人民币的最新汇率为:490408.64 CNY(1比特币=490408.64人民币)(1美元=7.24人民币)(0.00006694USDT=0.0004846456 CNY)汇率更新时...
  • 0.00003374个比特币等于多少人民币/美金

    0.00003374个比特币等于多少人民币/美金
    0.00003374比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00003374比特币等于2.2826 1222美元/16.5261124728人民币。比特币(BTC)美元(USDT)人民币(CNY)0.00003374克洛克-0/22216.5261124728比特币对人民币的最新汇率为:489807.72 CNY(1比特币=489807.72人民币)(1美元=7.24人民币)(0.00003374USDT=0.0002442776 CNY)。汇率更新于2024...
  • 1983年,山西老人致信央行:人民币上的“中国人民银行”是我写的

    1983年,山西老人致信央行:人民币上的“中国人民银行”是我写的
    阅读本文前,请点击红色“关注”按钮,方便大家讨论和分享,给您带来不一样的参与感。谢谢大家的支持!1983年,山西日报发表了一篇异常简短的文章,主要内容是:“人民币的字体作者是纪。“不久后,上海《新民晚报》也发表了一篇报道,主要内容与《山西日报》基本相同。二人转文章的排版只占一小部分,但不妨碍大家关注此事。一位家住山西的老人看完文章后显得有些不解:“不是啊,人民币上的字明明是我写的。我怎么能把它戴在别人头上呢?”本着尊重历史的原则,老人的女儿给报社写了两封“澄清信”,分别寄给了...
  • 1929经济大萧条或许即将重演?

    1929经济大萧条或许即将重演?
    人类似乎陷入了一个历史悖论,即我们总是重复同样的错误,无法真正从过去的错误中吸取教训。近年来,我们对世界各地接连不断的挑战和危机深感不安。20 19年突如其来的疫情,乌克兰的战火硝烟,欧洲的天然气供应危机以及全球少数国家的饥荒,所有这些问题都像洪水一样,一个接一个地涌来。如果你今天感到心情沉重,不要失去希望,因为明天可能会带来更严峻的挑战。首先,让我们深入讨论名为1929大萧条的时期。这场大萧条实际上是指从1929到1933的一场影响深远的经济危机。这场危机首先起源于美国,然...
  • 2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?

    2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?
    GDP作为全球公认的实力基准,就像是一个大国实力的代言人,它是布雷顿森林体系下全球团结的声音。它不仅仅是数字的累积,更是大国综合实力的人格化,默默诉说着每个国家的辉煌与荣耀。虽然GDP不是衡量一个国家综合实力的唯一标准,但无疑是最关键的指标之一。作为一面镜子,它反映了国家的经济实力和发展水平,是国家综合实力的重要体现,不容忽视。2000年,中国GDP迈过/克洛克-0/万亿美元的重要门槛,达到/克洛克-0/。2/克洛克-0/万亿美元(折合人民币7。7万亿元)。然而,在全球经济的...
标签列表