欢迎访问比特币_区块链-币链视界!

币链视界

币安区块链PHP开发包

发布时间:2021-02-23区块链开发评论
BnbTool开发包适用于为PHP应用快速增加对币安链/BinanceChain数字资产的支持能力,即支持使用自有部署区块链节点的应用场景,也支持基于第三方节点开放API服务的轻量级部署场景。官方下

BnbTool开发包适用于为PHP应用快速增加对币安链/BinanceChain数字资产的支持能力,即支持使用自有部署区块链节点的应用场景,也支持基于第三方节点开放API服务的轻量级部署场景。官方下载地址:。

1、开发包概述BnbTool开发包是一个完整的币安链PHP开发包,可以极大地提升区块链钱包、交易平台或区块链应用开发过程中与币安链的对接实现效率。BnbTool主要包含以下特性:

完善的币安链节点RPCAPI与RestAPI封装完善的TendermintAmino编解码器PHP实现离线管理私钥,离线签名交易,离线序列化/反序列化交易透明支持自有节点或第三方节点访问币安链,例如查询数据或广播交易BnbTool软件包运行在**Php7.1+**环境下,当前版本1.0.0,主要实现类/接口及相互之间的关系如下图所示:BnbTool的主要代码文件清单见官网:

2、使用演示代码下载开发包并解压后,进入demo目录运行演示代码。

2.1CryotoDemoCryptoDemo.php演示了如何使用BnbTool的Crypto封装类实现币安链账户的创建与恢复,签名的生成与验证。

在终端执行如下命令启动CryptoDemo:

~$phpCryptoDemo.php运行结果类似下图:2.2RpcClientDemoRpcClientDemo.php演示了如何使用BnbTool的RpcClient调用币安链节点的RPCAPI。

在终端执行如下命令启动RpcClientDemo:

~$phpRpcClientDemo.php运行结果类似下图:2.3RestClientDemoRestClientDemo.php演示了如何使用BnbTool的RestClient调用币安链的RestAPI。

在终端执行如下命令启动RestClientDemo:

~$phpRestClientDemo.php运行结果类似下图:2.4ToolKitDemoToolKitDemo.php演示了如何使用BnbTool的ToolKit入口类实现币安链账户的创建、转账、余额查询与历史交易查询。

在终端执行如下命令启动ToolKitDemo:

~$phpToolKitDemo.php运行结果类似下图:3、ToolKit类使用说明ToolKit是BnbTool的入口类,利用它可以快速完成币安链账户的创建、转账、DEX挂单等操作。ToolKit的主要属性与方法如下:

属性keyStore:密钥库实例restClient:币安链RestAPI客户端实例方法newAddress():创建新账户并返回生成的地址,新的私钥/地址自动加入密钥库importKey():导入指定的私钥并返回对应的地址,该私钥/地址自动加入密钥库transfer():执行代币转账交易placeOrder():在DEX委托挂单cancleOrder():取消DEX上的委托单freezeToken():冻结指定数量的代币unfreezeToken():解冻指定数量的代币dexList():在DEX上市交易对3.1ToolKit的实例化实例化ToolKit需要传入两个参数:币安链节点RestAPI服务地址,以及该节点接入的网络。例如,使用本机的RestAPI服务器接入BinanceChain的测试网:

useBnbToolToolKit;$kit=newToolKit('http://localhost:8080',//RestAPI访问基地址'testnet'//测试链,可选:mainnettestnet);ToolKit也提供了两个静态方法用来快速创建接入主网或测试网的实例:

$kit=ToolKit::mainnet();//使用接入主网$kit=ToolKit::testnet();//使用接入测试网容易理解,ToolKit::mainnet()等价于如下的代码:

newToolKit('','mainnet');3.2账户创建与恢复使用ToolKit的newAddress()方法创建新账户,该方法将生成随机私钥并返回该私钥对应的地址,同时将私钥信息存入ToolKit的密钥库。例如下面的代码创建一个新的币安链账户并显示该账户的地址:

$address=$kit->newAddress();//创建新账户并返回地址echo"newaddress:$address".PHP_EOL;//显示新账户的地址也可以使用importKey()方法导入已有的私钥,该方法将返回所导入私钥对应的地址。例如下面代码导入指定的私钥并显示该账户的地址:

$prv='49bd38a8...5af84709670fd';//要导入ToolKit的私钥$address=$kit->importKey($prv);//导入私钥并返回地址echo"restored:$address".PHP_EOL;//显示恢复的地址3.3使用密钥库ToolKit使用密钥库来保存账户信息,密钥库遵从IKeyStore接口的4个方法:

add():添加账户信息getAll():返回所有账户的列表getByKey():查询指定私钥的账户getByAddress():查询指定地址的账户使用ToolKit的keyStore属性就可以访问当前使用的密钥库对象。例如,下面的代码列表显示当前密钥库中的所有账户:

$items=$kit->keyStore->getAll();//返回密钥库全部账户foreach($itemsas$item){//逐行显示账户私钥和地址echo"key:{$item->key},address:{$item->address}".PHP_EOL;}可以使用密钥的getByKey()方法查询指定密钥的账户地址,例如:

$prv='49bd38a8...5af84709670fd';//要查询的私钥$item=$kit->keyStore->getByKey($prv);//返回该私钥对应的账户记录if(!is_null($item))//如果找到的话echo"address=>{$item->address}";//显示账户地址3.4转账交易使用ToolKit的tranfer()方法执行代币转账交易。例如下面的代码在两个指定账号间转账1.234个BNB代币,并附备注信息:

$kit->importKey('....');//导入转账发起账号的私钥$ret=$kit->transfer('tbnb1hfw...x3kh9d7p5ryya',//转账发起账号'tbnb1l5f...xcyt0ec40avsp',//转账接收账号'BNB',//代币符号1.234,//代币数量'rent'//备注信息)echo"txhash=>{$ret[0]->hash}";//显示交易哈希注意,由于交易需要发起账号签名,因此在调用transfer()方法之前,务必保证ToolKit的密钥库中已有该发起账号的私钥。

3.5查询账户余额由于币安链的RestAPI更容易使用,ToolKit使用RestClient而不是RpcClient来与币安链交互,可以通过ToolKit的restClient属性来访问预创建的RestClient实例。

例如,下面的代码使用RestClient的getAccount()方法来查询指定账户的所有种类代币的余额并逐行显示:

$ret=$kit->restClient->getAccount('tbnb1hfw...x3kh9d7p5ryya');//查询账户信息foreach($ret->balancesas$b){//遍历全部币种echo"symbol:{$b->symbol},free:{$b->free}";//显示币种符号与可用余额}3.6查询账户的历史交易类似的,使用RestClient的getTransactions()方法,可以查询指定账户的历史交易。例如下面的代码:

$ret=$kit->restClient->getTransactions('tbnb1hfw...x37p5ryya');//查询历史交易foreach($ret->txas$tx){//遍历全部交易echojson_encode($tx).PHP_EOL;//显示交易内容}getTransactions()方法支持分页处理,例如,下面的代码使用offset和limit选项声明需要返回从100#开始的20个交易:

$ret=$kit->restClient->getTransactions('tbnb1hfw...x3kh9d7p5ryya',//要查询的账户地址['offset'=>100,//记录起始位置'limit'=>20//返回记录数量]);getTransactions()对应于RestAPI中的/v1/api/transactions,可以参考该文档了解更多可用的查询过滤参数。

广告位

热心评论

评论列表