0

对于本合同https://bscscan.com/address/0xedfcb78e73f7ba6ad2d829bf5d462a0924da28ed#code 有八个源文件,称为“Solidity 多文件格式”

但是,bscscan 网站: https : //bscscan.com/address/0xedfcb78e73f7ba6ad2d829bf5d462a0924da28ed#code 和 bscscan API: https ://api.bscscan.com/api?module=contract&action=getabi&address=0xedfcb78e73f7ba6ad2d829bf5d462a0924da28ed 都无法获得完整的 ABI。

它们只为第一个源文件提供 ABI。

如何获得完整的功能性 ABI 进行交互?

4

1 回答 1

0

它们只为第一个源文件提供 ABI。

这是一个预期的结果。ABI JSON 仅为publicexternal函数生成,以及为从主合约及其父项的public属性自动生成的函数生成。

导入的合约通常被主合约调用或继承,但理论上它们也可以不被使用。

注意:它不需要是订单中的第一个合约,您将主合约名称作为编译选项之一传递。


在您的示例中,AdminUpgradeabilityProxy是主合同,源自UpgradeabilityProxy,源自Proxy。所以 ABI json 包含这三个合约的所有函数publicexternal事件。

于 2021-11-18T09:23:01.313 回答