可以使用getTransferEvents()方法跟踪指定地址的到账状态 。例如查询地址0x90F8...在最近1000个区块的USDT代币到账事件:
//use polygonKit;$height = $kit->getBlockHeight();$contractAddr = '0xc2132D05D31c914a87C6611C10748AEb04B58e8F'//USDT合约的部署地址$events = $kit->erc20($contractAddr)->getTransferEvents(//查询到账事件[],//转出账号,空数组表示不要求特定的转出账号['0x90F8bf6...0e7944Ea8c9C1'],//接收账号,仅查询地址0x90F8...的到账事件$height-1000,//查询起始区块号$height//查询结束区块号);foreach($events as $event){echo 'block => ' . $event->blockNumber . PHP_EOL;//事件发生区块号echo 'from => ' . $event->params['from'] . PHP_EOL;//转出账号echo 'to => ' . $event->params['to'] . PHP_EOL;//转入账号echo 'value =https://www.isolves.com/it/cxkf/yy/php/2022-04-06/> ' . $event->params['value'] . PHP_EOL;//转账金额}
getTransferEvents()方法返回的结果是一个事件对象数组,每个成员对象的主要字段 说明如下:
- blockHash:事件触发的区块哈希
- blockNumber:事件触发的区块号
- transactionHash:触发事件的交易ID
- address:事件触发的合约地址
- name:事件名称,例如转账事件的名称为:Transfer
- params:事件参数数组,例如转账事件包含以下三个参数:from:转出账号to:转入账号value:转账数量
0xc2132D05D31c914a87C6611C10748AEb04B58e8F):
//use polygonKit;$to = '0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1';//目标地址$tokenId = 1278;//转让的NFT编号$contractAddr = '0xcc739b569624f82f9d7a4f614e47133f37482fed'; //ERC721合约的部署地址$txid = $kit->erc721($contractAddr)->transfer($to,$tokenId);//转让指定的ERC721 NFTecho 'txid => ' . $txid .PHP_EOL;//显示交易ID
3.7 ERC721 NFT查询使用Kit对象的erc721()方法获取指定的ERC721合约实例后,可以调用合约的方法查询NFT的 基本信息以及特定编号的NFT的持有人信息等 。例如://use PolygonKit;$contractAddr = '0xcc739b569624f82f9d7a4f614e47133f37482fed'; //ERC721合约的部署地址$nft = $kit->erc721($contractAddr);//返回ERC721合约实例echo 'name => ' . $nft->name() . PHP_EOL;echo 'symbol => ' . $nft->symbol() . PHP_EOL;echo 'total supply =>' . $nft->totalSupply() . PHP_EOL;$tokenId = 1278;//NFT编号echo 'owner => ' . $nft->ownerOf($tokenId);//返回指定NFT的持有人echo 'token uri => ' . $nft->tokenURI($tokenId) . PHP_EOL;//返回指定NFT的元信息URI$user = '0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1';//用户地址echo 'total nfts => ' . $nft->balanceOf($user) . PHP_EOL;//用户持有的NFT总数
3.8 ERC721 NFT到账跟踪使用erc721()方法获取指定ERC721合约实例,然后调用 合约实例的getTransferEvents()方法查询指定条件的转账事件 。可以使用getTransferEvents()方法跟踪指定地址的到账状态 。例如查询地址0x90F8...在最近1000个区块的指定NFT合约到账事件:
//use polygonKit;$height = $kit->getBlockHeight();$contractAddr = '0xcc739b569624f82f9d7a4f614e47133f37482fed';//ERC721合约的部署地址$events = $kit->erc721($contractAddr)->getTransferEvents(//查询到账事件[],//转出账号,空数组表示不要求特定的转出账号['0x90F8bf6...0e7944Ea8c9C1'],//接收账号,仅查询地址0x90F8...的到账事件$height-1000,//查询起始区块号$height//查询结束区块号);foreach($events as $event){echo 'block => ' . $event->blockNumber . PHP_EOL;//事件发生区块号echo 'from => ' . $event->params['from'] . PHP_EOL;//转出账号echo 'to => ' . $event->params['to'] . PHP_EOL;//转入账号echo 'tokenId => ' . $event->params['tokenId'] . PHP_EOL;//转让的NFT编号}
3.9 ERC1155转帐使用Kit对象的erc1155()方法获取指定ERC1155合约实例,然后调用合约 的safeTransferFrom()方法进行ERC1155转账 。例如,下面的代码 指定地址间转帐编号为1的ERC1155 NFT(合约地址:0xafefbbab1038a4fd475d685c11b07bd697e20e38):
//use polygonKit;$from = $kit->getSender();//转出地址$to = '0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1';//目标地址$tokenId = 1;//转让的通证编号$value = https://www.isolves.com/it/cxkf/yy/php/2022-04-06/1000000;//转让数量$contractAddr = '0xafefbbab1038a4fd475d685c11b07bd697e20e38'; //ERC1155合约的部署地址$txid = $kit->erc1155($contractAddr)->safeTransferFrom($from, $to,$tokenId, $value);//转让指定的ERC1155通证echo 'txid => ' . $txid .PHP_EOL;//显示交易ID
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 淘宝店铺首页链接怎么添加 淘宝店招导航怎么制作
- 企业骨干网络如何提高链路可靠性,核心交换机配置静态链路聚合
- 供应链|全球芯片“难产”!半导体交付等待时间破纪录
- Linux 下的符号链接到底是个什么鬼?
- 925银的项链一般多少钱?按照这三点买,价格更加便宜
- 淘宝网店怎么做链接 淘宝店铺链接怎么弄
- 春天喝花茶 清润养颜
- 总投资超过260亿元,襄阳一季度72个农业产业链项目签约开工竣工
- 数据结构--链地址法
- SEO优化时怎么查看竞争对手的外链