我在尝试用web3与bsc的一个合约交互,调用一个函数 现在用的是web3.py,与web3.js类似吧 但是查遍了全网都说要交互必须要abi文件才可以
有abi的情况下,我已经知道怎么处理了。 但是这个合约没有开源,bscscan查不到abi怎么办呢?
相关的交易参考这个:0xa84110f40ec48585b91a4d8a099c9f003879f0e839c15a8058e3442921cedf22 bscscan上面查到发送给合约的二进制信息是0x89aee3d6
难道我不能直接发送这个二进制信息吗? metamask与合约交互也没有 abi信息呢,为什么metamask可以直接交互呢?
可以的。
实际上使用 ABI 时, 最终也会编码为 二进制信息。看一下 \如何理解以太坊ABI - 应用程序二进制接口 你就理解了。
你只需要直接向合约发起交易, 附加 data 字段就可以。
我平时不用 web3.py, 如果使用 web.js 就是这个接口,data 数据就是0x89aee3d6 .