PHP BnbTool开发包有哪些特性

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

本文介绍了关于“PHP BnbTool开发工具包的特性是什么”的知识。很多人在实际的案件操作过程中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

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

1、开发包概述

BnbTool开发工具包是一个完整的货币安全链PHP开发工具包,在区块链钱包、交易平台或区块链应用的开发过程中,可以大大提高与货币安全链对接的效率。BnbTool主要包括以下功能:

完善货币安全链节点的RPC API和Rest API包

嫩薄荷氨基编解码器的完美PHP实现

离线管理私钥、离线签名事务、离线序列化/反序列化事务。

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

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

PHP  BnbTool开发包有哪些特性

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

2、使用演示代码

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

在终端执行以下命令启动密码演示:

~$phpCryptoDemo.php运行结果如下图所示:

PHP  BnbTool开发包有哪些特性

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

在终端执行以下命令启动远程客户端远程操作:

~ $ phpRpcClientDemo.php运行结果如下图所示:

PHP  BnbTool开发包有哪些特性

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

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

~ $ phpRestClientDemo.php运行结果如下图所示:

PHP  BnbTool开发包有哪些特性

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

在终端执行以下命令启动工具箱演示:

~ $ phpToolKitDemo.php运行结果如下图所示:

PHP  BnbTool开发包有哪些特性

2.1 CryotoDemo

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

属性

密钥库:密钥库的实例

客户端:货币安全链的Rest API客户端实例

方法

ngleft-2" >

  • 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()方法支持分页处理,例如,下面的代码使用offsetlimit选项声明需要返回从100#开始的20个交易:

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

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

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/119741.html

    (0)

    相关推荐

    • opencv如何将两张图片拼图(opencv比较两张图片相似度)

      技术如何用OpenCV快速寻找图像差异处这期内容当中小编将会给大家带来有关如何用OpenCV快速寻找图像差异处,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如何使用结构相似性指数(SS

      攻略 2021年12月15日
    • 写字的拼音怎么写,写字的字的繁体字怎么写

      技术写字的拼音怎么写,写字的字的繁体字怎么写【繁体写法】写【本义】移置;放置。【基本字义】1、用笔作字。例如写字的拼音怎么写:写字、写作、编写。2、描摹,叙述。例如:写生、写实、写照。【常见组词】1、大写:汉字数目字的一

      生活 2021年10月20日
    • 怎么使用Java打造一款简单的英语学习系统

      技术怎么使用Java打造一款简单的英语学习系统本篇内容介绍了“怎么使用Java打造一款简单的英语学习系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希

      攻略 2021年10月22日
    • 如何使用Black自由格式化Python

      技术如何使用Black自由格式化Python如何使用Black自由格式化Python,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在我们覆盖

      攻略 2021年10月26日
    • 圆锥的体积公式是什么,圆锥的面积和体积计算公式

      技术圆锥的体积公式是什么,圆锥的面积和体积计算公式一个圆锥所占空间的大小圆锥的体积公式是什么,叫做这个圆锥的体积.一个圆锥的体积等于与它等底等高的圆柱的体积的1/3根据圆柱体积公式V=Sh(V=πr^2h),得出圆锥体积

      生活 2021年10月21日
    • Hadoop的基础知识点有哪些

      技术Hadoop的基础知识点有哪些本篇内容主要讲解“Hadoop的基础知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hadoop的基础知识点有哪些”吧!一、had

      攻略 2021年12月9日