是否可以在没有 ABI 的情况下调用实现合约函数,但使用 web3py 编码调用数据?

问题描述 投票:0回答:1

我需要调用实施合约的函数。问题是我不是合约的创建者,它的源代码尚未在 ethersan 上经过验证,因此我没有 ABI。 我将 calldata(0x12345...) 从 tx 提取到代理合约。我知道methodId和3个args(地址,uint256,地址),并且我根据需要修改了args。 是否可以在不实现 ABI 的情况下仅使用原始调用数据发送调用代理的后备函数的事务?

ethereum smartcontracts web3py
1个回答
0
投票

您可以简单地在web3中创建交易

  • address
    :合约地址

然后添加到

data
字段

  • 前 4 个字节(32 位):函数选择器
  • 以下 3 * 32 字节(256 位):函数参数(地址、uint256、地址),补零
© www.soinside.com 2019 - 2024. All rights reserved.