解码合同创建事务的输入数据



所以我已经成功地使用了函数decode_function_input(txn.input)来解码除了合同创建输入数据之外的大多数交易的输入数据。是否有一种简单直接的方法来实现使用web3.py创建合同?

'event'中的哈希不是合约创建哈希,但是,它似乎不能很好地工作。如果你有任何解决这个问题的建议,我将不胜感激。

方法尝试:

event = "0x1113a21473aa89fcce64835d267dd480c9f0339411c676b1f22f11ae8e876b63"
txn = web3.eth.get_transaction(event)                                  
txnInput = routerContract.decode_function_input(txn.input) 

我在web3.py中找不到解码合同创建交易的方法。相反,您可以使用web3-input-decoder来完成它。下面的例子来自项目的GitHub页面,展示了如何解码正常交易和合同创建交易。

import json
import urllib.request
from web3_input_decoder import decode_constructor, decode_function
f = urllib.request.urlopen("https://api.etherscan.io/api?module=contract&action=getabi&address=0xdac17f958d2ee523a2206206994597c13d831ec7")
TETHER_ABI = json.loads(json.load(f)["result"])
decode_function(
TETHER_ABI, "0xa9059cbb000000000000000000000000f050227be1a7ce587aa83d5013f900dbc3be0611000000000000000000000000000000000000000000000000000000000ecdd350",
)
decode_constructor(
TETHER_ABI, "000000000000000000000000000000000000000000000000000000174876e800000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a546574686572205553440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553445400000000000000000000000000000000000000000000000000000000"
)

最新更新