在Web3.py中调用没有ABI的智能合约

问题描述 投票: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,地址),零填充,所谓的ABI编码
© www.soinside.com 2019 - 2024. All rights reserved.