100 web3与合约交互必须要abi才可以?

我在尝试用web3与bsc的一个合约交互,调用一个函数 现在用的是web3.py,与web3.js类似吧 但是查遍了全网都说要交互必须要abi文件才可以

有abi的情况下,我已经知道怎么处理了。 但是这个合约没有开源,bscscan查不到abi怎么办呢?

相关的交易参考这个:0xa84110f40ec48585b91a4d8a099c9f003879f0e839c15a8058e3442921cedf22 bscscan上面查到发送给合约的二进制信息是0x89aee3d6

难道我不能直接发送这个二进制信息吗? metamask与合约交互也没有 abi信息呢,为什么metamask可以直接交互呢?

image.png

请先 登录 后评论

最佳答案 2021-08-20 06:06

可以的。

实际上使用 ABI 时, 最终也会编码为 二进制信息。看一下 \如何理解以太坊ABI - 应用程序二进制接口 你就理解了。

你只需要直接向合约发起交易, 附加 data 字段就可以。

我平时不用 web3.py, 如果使用 web.js 就是这个接口,data 数据就是0x89aee3d6 .

请先 登录 后评论

其它 2 个回答

xmenzp
请先 登录 后评论
Krito - 区块链研发工程师
请先 登录 后评论
  • 8 关注
  • 3 收藏,10410 浏览
  • ETH_IS_OK 提出于 2021-08-19 15:04