我可以访问基于仲裁的Blockchain服务,并且我正在使用与智能契约进行交互。
当我部署一个新的智能契约时,Nethereum给出了SmartContract的地址和ABI。
但是,如果不部署流程,我就无法访问SmartContract的ABI。如何根据智能契约的地址获取ABI?
发布于 2021-05-20 08:50:30
您可以在编译合同源代码期间获得ABI。编译的输入是源代码和很少的其他值(例如优化器设置).输出包括ABI JSON和字节码..。因此,您实际上并不需要部署契约来获得json,只需编译它(不需要部署)。
仅从字节码(或仅包含字节码的地址)获取ABI是不可能的。
如果合同中已经发布了源代码,则可以编译源代码以获得ABI。
如果没有发布源代码,合同也有可能实现一些标准(例如,ERC-20)。如果您知道它是否以及实现了什么标准,您可以使用反映该标准的通用ABI (例如,这是ERC-20标准的ABI )。然而,它并没有反映出合同可能用来扩展标准定义的最低限度的任何功能。
发布于 2022-06-08 18:22:54
您可以将您的智能契约复制到混合中,并让remix编译它。然后向您展示Api和您合同的字节码。
https://stackoverflow.com/questions/67616443
复制相似问题