你好,请问一下怎么获取一个token或者一个配对地址的代币转移记录

如果使用web3的扫块获取记录的话不知道怎么解析出块哈希里面的代币转账记录,请问这个要怎么抓取

请先 登录 后评论

最佳答案 2021-06-20 13:30

这里刚好有一个类似的问题: ERC20 Tokens Transferred Information from Transaction Hash

搬运一下:

使用 eth_getTransactionReceipt 对于交易0x3265c1461d3f167c756fbc062ae3a2dc279b44a9c3ca2194271d4251cd0c1655 可以请求到这样的信息:

{
  "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"
  }
}

主要是看 log 部分: ERC20 的 Transfer(address from, address to, uint256 value) 事件,其 keccak hash 是 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef ,它是事件的

接下来分别是 fromto (32 直接表示). data 则是转账的数量。

触发时间的 address0x0d8775f648430679a709e98d2b0cb6250d2887ef 是合约地址。 我们可以通过合约地址读取到相关的symbol, name, and decimals

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,3976 浏览
  • 提出于 2021-06-19 23:52