千家信息网

PHP BnbTool开发包有哪些特性

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"PHP BnbTool开发包有哪些特性"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
千家信息网最后更新 2026年11月03日PHP BnbTool开发包有哪些特性

本篇内容介绍了"PHP BnbTool开发包有哪些特性"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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

1、开发包概述

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

  • 完善的币安链节点RPC API与Rest API封装

  • 完善的Tendermint Amino编解码器PHP实现

  • 离线管理私钥,离线签名交易,离线序列化/反序列化交易

  • 透明支持自有节点或第三方节点访问币安链,例如查询数据或广播交易

BnbTool软件包运行在**Php 7.1+**环境下,当前版本1.0.0,主要实现类/接口及相互之间的关系如下图所示:

2、使用演示代码

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

2.1 CryotoDemo

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

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

~$ php CryptoDemo.php

运行结果类似下图:

2.2 RpcClientDemo

RpcClientDemo.php演示了如何使用BnbTool的RpcClient调用币安链节点的RPC API。

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

~$ php RpcClientDemo.php

运行结果类似下图:

2.3 RestClientDemo

RestClientDemo.php演示了如何使用BnbTool的RestClient调用 币安链的Rest API。

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

~$ php RestClientDemo.php

运行结果类似下图:

2.4 ToolKitDemo

ToolKitDemo.php演示了如何使用BnbTool的ToolKit入口类实现币安链账户的创建、转账、余额查询与历史交易查询。

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

~$ php ToolKitDemo.php

运行结果类似下图:

3、ToolKit类使用说明

ToolKit是BnbTool的入口类,利用它可以快速完成币安链账户的创建、转账、DEX挂单等操作。ToolKit的主要属性与方法如下:

  • 属性

    • keyStore:密钥库实例

    • restClient:币安链Rest API客户端实例

  • 方法

    • newAddress():创建新账户并返回生成的地址,新的私钥/地址自动加入密钥库

    • importKey():导入指定的私钥并返回对应的地址,该私钥/地址自动加入密钥库

    • transfer():执行代币转账交易

    • placeOrder():在DEX委托挂单

    • cancleOrder():取消DEX上的委托单

    • freezeToken():冻结指定数量的代币

    • unfreezeToken():解冻指定数量的代币

    • dexList():在DEX上市交易对

3.1 ToolKit的实例化

实例化ToolKit需要传入两个参数:币安链节点Rest API服务地址,以及该节点接入的网络。例如,使用本机的Rest API服务器接入Binance Chain的测试网:

use BnbTool\ToolKit;$kit = new ToolKit(    'http://localhost:8080',            //Rest API访问基地址    'testnet'                           //测试链,可选:mainnet | testnet      );

ToolKit也提供了两个静态方法用来快速创建接入主网或测试网的实例:

$kit = ToolKit::mainnet();              //使用 https://dex.binance.org接入主网$kit = ToolKit::testnet();              //使用 https://testnet-dex.binance.org接入测试网

容易理解,ToolKit::mainnet()等价于如下的代码:

new ToolKit('https://dex.binance.org','mainnet');

3.2 账户创建与恢复

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

$address = $kit->newAddress();            //创建新账户并返回地址echo "new address: $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($items as $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}\n";   //显示账户地址

3.4 转账交易

使用ToolKit的tranfer()方法执行代币转账交易。例如下面的代码在两个指定账号间转账1.234个BNB代币,并附备注信息:

$kit->importKey('....');                  //导入转账发起账号的私钥  $ret = $kit->transfer(    'tbnb1hfw...x3kh9d7p5ryya',           //转账发起账号    'tbnb1l5f...xcyt0ec40avsp',           //转账接收账号    'BNB',                                //代币符号    1.234,                                //代币数量    'rent'                                //备注信息  )echo "tx hash => {$ret[0]->hash}\n";      //显示交易哈希

注意,由于交易需要发起账号签名,因此在调用transfer()方法之前,务必保证ToolKit的密钥库中已有该发起账号的私钥。

3.5 查询账户余额

由于币安链的Rest API更容易使用,ToolKit使用RestClient而不是RpcClient来与币安链交互,可以通过ToolKit的restClient属性来访问预创建的RestClient实例。

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

$ret = $kit->restClient->getAccount('tbnb1hfw...x3kh9d7p5ryya');  //查询账户信息foreach($ret->balances as $b){                                    //遍历全部币种  echo "symbol: {$b->symbol}, free: {$b->free}\n";                //显示币种符号与可用余额  }

3.6 查询账户的历史交易

类似的,使用RestClient的getTransactions()方法,可以查询指定账户的历史交易。例如下面的代码:

$ret = $kit->restClient->getTransactions('tbnb1hfw...x37p5ryya'); //查询历史交易foreach($ret->tx as $tx){                                         //遍历全部交易               echo json_encode($tx) . PHP_EOL;                                //显示交易内容}

getTransactions()方法支持分页处理,例如,下面的代码使用offset和limit选项声明需要返回从100#开始的20个交易:

$ret = $kit->restClient->getTransactions(    'tbnb1hfw...x3kh9d7p5ryya',       //要查询的账户地址              [      'offset'=>100,                  //记录起始位置      'limit'=>20                     //返回记录数量    ]  );

"PHP BnbTool开发包有哪些特性"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

账户 地址 交易 方法 查询 密钥 代码 转账 开发 节点 代币 开发包 信息 实例 账号 面的 演示 运行 接入 支持 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 耶加雪菲 互联网科技公司经营范围 河南云网互联网络科技有限公司 江苏根荣互联网科技 美国互联网保险保险科技 关于新基建和互联网科技 金融科技和互联网金融 汉立互联网科技有限公司联系电话 浙江互联网科技研学营 广州市恰铎互联网科技有限公司 阿里互联网科技企业 美国互联网科技实力 北京市互联网新科技 广州有谷有贝互联网科技有限公司 互联网硬科技公司 互联网时代高科技布局 北京品多多互联网科技有限公司 互联网科技大会大佬 重庆科技产业互联网有哪些 互联网科技创业有什么好项目 科技和互联网公司 互联网金融与金融科技 郑州华宇互联网科技 佰商互联网科技有限公司 互联网金融科技委员会 科技赋能互联网健康 欧洲十大科技互联网公司 常德市电业局互联网科技部 中国互联网十大科技股排名 锡山区互联网智能科技产品供应
0