微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过 Nethereum 获得智能合约的 ABI?

如何解决如何通过 Nethereum 获得智能合约的 ABI?

我可以访问基于 Quorum 的区块链服务,并且我正在使用 Nethereum 库与智能合约进行交互。

当我部署一个新的智能合约时,Nethereum 会给出智能合约的地址和 ABI。

但是如果不部署流程,我就无法访问 SmartContract 的 ABI。如何根据智能合约地址获取ABI?

解决方法

您可以在合约源代码的编译过程中获取 ABI JSON。编译的输入是源代码和一些其他值(例如优化器设置)...输出包括 ABI JSON 和字节码...所以你真的不需要部署合约来获取 json,只需编译它(无需部署)。

纯粹从字节码(或仅包含字节码的地址)中获取 ABI JSON 是不可能的。


如果合约有源码发布,可以编译源码得到ABI JSON。

如果没有发布源代码,则合约也有可能实现了一些标准(例如 ERC-20)。如果您知道它是否实现以及实现了什么标准,则可以使用反映该标准的通用 ABI JSON(例如,this 是 ERC-20 标准的 ABI JSON)。但是,它并未反映合同可能用于扩展标准定义的最小值的任何功能。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。