如何通过Etherscan API获取USDT合约的指定Approval交易日志
Etherscan API 获取USDT合约Approval日志的参数设置
1. 获取所有Approval交易的topic0参数
要筛选USDT合约的Approval事件,topic0需要填写该事件的Keccak256签名哈希。
USDT合约的Approval事件定义为:event Approval(address indexed owner, address indexed spender, uint256 value)
计算哈希时使用事件签名字符串Approval(address,address,uint256)(忽略indexed关键字),最终得到的哈希值为:0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
直接将上述值填入topic0字段即可。
2. 筛选固定spender地址的topic1参数
Approval事件中spender是第二个带indexed修饰的参数,对应topic1字段。需要将目标spender地址转换为32字节标准格式:
- 去掉地址开头的
0x - 在前面补0,使总字符长度达到64位
- 重新加上
0x前缀
例如,若spender地址为0x1234567890abcdef1234567890abcdef12345678,转换后为:0x0000000000000000000000001234567890abcdef1234567890abcdef12345678
将转换后的值填入topic1,就能筛选出该spender的Approval交易。
完整API请求示例
https://api.etherscan.io/api?module=logs&action=getLogs&fromBlock=0&toBlock=latest&address=0xdac17f958d2ee523a2206206994597c13d831ec7&topic0=0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925&topic0_1_opr=and&topic1=0x000000000000000000000000[你的spender地址去掉0x后的内容]&page=1&offset=1000&apikey=YourApiKeyToken
内容的提问来源于stack exchange,提问作者Freyachan256
相关产品推荐
相关产品推荐

