3.10 ERC1155查询使用Kit对象的erc1155()方法获取指定ERC1155合约实例后,可以调用合约的balanceOf()方法 查询用户持有的ERC1155通证数量 。例如:
//use PolygonKit;$contractAddr = '0xafefbbab1038a4fd475d685c11b07bd697e20e38';//ERC1155合约的部署地址$mt = $kit->erc1155($contractAddr);//返回合约实例 $user = '0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1';//用户地址$tokenId = 1;//通证编号echo 'banalce => ' . $mt->balanceOf($user, $tokenId);//用户持有的指定编号通证的数量3.11 ERC1155到账跟踪使用Kit对象的erc1155()方法获取指定的ERC1155合约实例,然后调用 合约实例的getTransferEvents()方法查询指定条件的转账事件 。
可以使用getTransferEvents()方法跟踪指定地址的到账状态 。例如查询地址0x90F8...在最近1000个区块的指定ERC1155通证到账事件:
//use polygonKit;$height = $kit->getBlockHeight();$contractAddr = '0xafefbbab1038a4fd475d685c11b07bd697e20e38';//ERC1155合约的部署地址$events = $kit->erc1155($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 'id => ' . $event->params['id'] . PHP_EOL;//转让的通证编号echo 'value =https://www.isolves.com/it/cxkf/yy/php/2022-04-06/> ' . $event->params['value'] . PHP_EOL;//转让的通证数量}4、Polygon区块链身份与地址表示在Polygon PHP开发包中,使用Credential对象表征区块链上的一个用户身份,使用普通的 字符串表征区块链上的一个地址,这两者的区别在于Credential包含了用户 的私钥信息,可以用来签名交易,因此需要保护 。
使用Credential类的静态方法create()创建新账户 。例如,下面的代码创建一个 新的账户并显示其私钥、公钥和地址:
//use polygonCredential;$credential = Credential::create();//创建新账号echo 'private key => ' . $credential->getPrivateKey() . PHP_EOL; //显示私钥echo 'public key => ' . $credential->getPublicKey() . PHP_EOL;//显示公钥echo 'address => ' . $credential->getAddress() . PHP_EOL;//显示地址可以使用静态方法fromKey()导入已有的私钥来实例化Credential 。例如下面的代码导入已有私钥并显示地址:
//use polygonCredential;$credential = Credential::fromKey('0x7889...023a');//导入已有私钥echo 'address => ' . $credential->getAddress() . PHP_EOL;//显示相应地址5、使用NodeClientNodeClient类封装了Polygon节点的RPC访问协议 。实例化NodeClient时,需要指定要连接 的节点URL,例如使用本地的全节点:
//use polygonNodeClient;$client = new NodeClient('http://localhost:8545');当使用Polygon官方节点时,NodeClient类也提供列两个静态函数mainNet()和testNet(),分别 用于接入官方提供的主链节点和测试链节点 。
例如,下面的代码是等效的:
//use polygonNodeClient;$client = new NodeClient('https://rpc-mainnet.maticvigil.com');$tc = NodeClient::mainNet();//与上面等效$tc = new NodeClient('https://rpc-mumbai.maticvigil.com');$tc = NodeClient::testNet();//与上面等效
推荐阅读
- 淘宝店铺首页链接怎么添加 淘宝店招导航怎么制作
- 企业骨干网络如何提高链路可靠性,核心交换机配置静态链路聚合
- 供应链|全球芯片“难产”!半导体交付等待时间破纪录
- Linux 下的符号链接到底是个什么鬼?
- 925银的项链一般多少钱?按照这三点买,价格更加便宜
- 淘宝网店怎么做链接 淘宝店铺链接怎么弄
- 春天喝花茶 清润养颜
- 总投资超过260亿元,襄阳一季度72个农业产业链项目签约开工竣工
- 数据结构--链地址法
- SEO优化时怎么查看竞争对手的外链
