Polygon区块链PHP开发包( 二 )


2.5 ERC20到账跟踪demo/erc20-event-demo.php演示了如何使用Polygon PHP开发包的合约事件查询功能 实现ERC20通证的到账跟踪 。
在终端进入演示代码目录,执行如下命令:
~$ cd ~/polygon-php/demo~/polygon-php/demo$ php erc20-event-demo.php执行结果如下:

Polygon区块链PHP开发包

文章插图
 
2.6 ERC721 NFT转让及查询demo/erc721-demo.php演示了如何使用Polygon PHP开发包实现ERC721 NFT转让和查询等操作 。
在终端进入演示代码目录,执行如下命令:
~$ cd ~/polygon-php/demo~/polygon-php/demo$ php erc721-demo.php执行结果如下:
Polygon区块链PHP开发包

文章插图
 
2.7 ERC721 NFT到账跟踪
demo/erc721-event-demo.php演示了如何使用Polygon PHP开发包的合约事件查询功能 实现ERC721 NFT的到账跟踪 。
在终端进入演示代码目录,执行如下命令:
~$ cd ~/polygon-php/demo~/polygon-php/demo$ php erc721-event-demo.php执行结果如下:
Polygon区块链PHP开发包

文章插图
 
2.8 ERC1155转让及查询demo/erc1155-demo.php演示了如何使用Polygon PHP开发包实现ERC1155转让和查询等操作 。
在终端进入演示代码目录,执行如下命令:
~$ cd ~/polygon-php/demo~/polygon-php/demo$ php erc1155-demo.php执行结果如下:
Polygon区块链PHP开发包

文章插图
 
2.8 ERC1155到账跟踪
demo/erc1155-event-demo.php演示了如何使用Polygon PHP开发包的合约事件查询功能 实现ERC1155的到账跟踪 。
在终端进入演示代码目录,执行如下命令:
~$ cd ~/polygon-php/demo~/polygon-php/demo$ php erc1155-event-demo.php执行结果如下:
Polygon区块链PHP开发包

文章插图
 
3、使用Polygon PHP开发包Kit类是Polygon PHP开发包的入口,使用这个类可以快速实现如下功能:
  • MATIC转账与余额查询
  • ERC20代币转账、授权、余额查询等
3.1 Kit的实例化Kit实例化需要传入NodeClient对象和Credential对象,这两个 参数分别封装了Polygon节点提供的API、以及进行交易签名的用户身份信息 。
例如,下面的代码创建一个接入Polygon主链的Kit实例,并使用 指定的私钥进行交易签名:
//use polygonKit;//use polygonNodeClient;//use polygonCredential;$kit = new Kit(NodeClient::mainNet(),//接入主链Credential::fromKey('0x87c12d....d435')//使用指定私钥);3.2 MATIC转账及余额查询使用Kit对象的transfer()方法进行MATIC转账,例如发送0.1 MATIC:
//use polygonKit;$to = '0x90F8bf6...0e7944Ea8c9C1';//转账目标地址$amount = bn('100000000000000000');//转账金额,按最小单位$txid = $kit->transfer($to,$amount);//提交MATIC转账交易echo 'txid => ' . $txid .PHP_EOL;//显示交易ID注意:需要将金额转换为最小单位,由于MATIC的小数位数是18,因此 0.1 MATIC = 100000000000000000 最小单位 。
使用balanceOf()方法查询指定地址的MATIC余额,例如:
$addr = '0x90F8bf6...0e7944Ea8c9C1';//要查询的Polygon链上地址$balance = $kit->balanceOf($addr);//查询MATIC余额,按最小单位echo 'balance => ' . $balance . PHP_EOL;//显示MATIC余额3.3 ERC20转账使用Kit对象的erc20()方法获取指定ERC20合约实例,然后调用合约 的transfer()方法进行ERC20转账 。例如,下面的代码 指定地址间转账123.4567 USDT(合约地址:
0xc2132D05D31c914a87C6611C10748AEb04B58e8F):
//use polygonKit;$to = '0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1';//转账目标地址$amount = bn('123456700');//转账ERC20数量$contractAddr = '0xc2132D05D31c914a87C6611C10748AEb04B58e8F'//USDT合约的部署地址$txid = $kit->erc20($contractAddr)->transfer($to,$amount);//转账ERC20echo 'txid => ' . $txid .PHP_EOL;//显示转账交易ID3.4 ERC20余额查询使用erc20()方法获取指定的ERC20合约实例,然后调用合约 的balanceOf()方法查询ERC20余额 。例如,下面的代码查询指定地址 的USDT余额:
//use polygonKit;$contractAddr = '0xc2132D05D31c914a87C6611C10748AEb04B58e8F'//USDT合约的部署地址$balance = $kit->erc20($contractAddr)->balanceOf('0x90F8bf6...0e7944Ea8c9C1');//查询地址0x90F8...的USDT余额echo 'balance => ' . $balance . PHP_EOL;//显示余额3.5 ERC20到账跟踪使用erc20()方法获取指定ERC20合约实例,然后调用 合约实例的getTransferEvents()方法查询指定条件的转账事件 。


推荐阅读