ERC20 Tokens Transferred Information from Transaction Hash(ERC20令牌从事务哈希传输的信息)
本文介绍了ERC20令牌从事务哈希传输的信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
EtherScan提供用于交易详细信息的API它是名为eth_getTransactionByHash的Geth/Parity代理API的一部分,但我无法获取传输了什么ERC20令牌以及传输了多少令牌的信息。
我需要令牌详细信息和借助事务哈希传输的令牌数量。
推荐答案
您使用的接口错误。
要获取ERC20转账的信息,您需要交易收据,因为转账信息记录在转账事件日志中。您应该使用eth_getTransactionReceipt
。
这将为thistx:
提供如下响应{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockHash": "0xc5e5a515898983d1370d40b03fc05ae08be861af746a1577796153a149a1bb20",
"blockNumber": "0x5ff5dd",
"contractAddress": null,
"cumulativeGasUsed": "0xe85fb",
"from": "0xd7afd4441fccc118b9207b0e136f4ef9319b3c79",
"gasUsed": "0x9034",
"logs": [
{
"address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x000000000000000000000000d7afd4441fccc118b9207b0e136f4ef9319b3c79",
"0x00000000000000000000000069d9e9aff57ec73582ad1ce441726dba7ea78fe0"
],
"data": "0x0000000000000000000000000000000000000000000001054aefee8ba6d00000",
"blockNumber": "0x5ff5dd",
"transactionHash": "0x3265c1461d3f167c756fbc062ae3a2dc279b44a9c3ca2194271d4251cd0c1655",
"transactionIndex": "0x1b",
"blockHash": "0xc5e5a515898983d1370d40b03fc05ae08be861af746a1577796153a149a1bb20",
"logIndex": "0xa",
"removed": false
}
],
"logsBloom": "0x04000000002000000200000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000008000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000200010000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"status": "0x1",
"to": "0x0d8775f648430679a709e98d2b0cb6250d2887ef",
"transactionHash": "0x3265c1461d3f167c756fbc062ae3a2dc279b44a9c3ca2194271d4251cd0c1655",
"transactionIndex": "0x1b"
}
}
其中,此日志部分非常重要。
ERC20传输日志的格式为Transfer(address from, address to, uint256 value)
。当您获取Transfer(address,address,uint256)
的keccak
散列时,您将获得主题的0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
,如上面的响应所示。
日志中接下来两个值分别是和地址,对于Eth来说是正常的(直到32个字节填充为零)。最后,日志中的data
是传输的ERC20令牌的值(本例中为BAT)。
发出日志的address
,在本例中为令牌合同。然后,您可以使用eth_call
接口读取令牌信息,从而从该合同中读取令牌符号、名称和小数。
这篇关于ERC20令牌从事务哈希传输的信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:ERC20令牌从事务哈希传输的信息
基础教程推荐
猜你喜欢
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01