Blockchain 如何获得与Nethereum的智能合约ABI?

Blockchain 如何获得与Nethereum的智能合约ABI?,blockchain,solidity,quorum,azure-blockchain-service,nethereum,Blockchain,Solidity,Quorum,Azure Blockchain Service,Nethereum,我可以访问基于仲裁的区块链服务,我正在使用Nethereum库与智能合约进行交互 当我部署新的智能合约时,Nethereum会给出智能合约的地址和ABI 但如果不部署流程,我无法访问SmartContract的ABI。如何根据智能合约的地址获取ABI?在编译合约源代码时可以获取ABI JSON。编译的输入是源代码和少数其他值(如优化器设置)。。。输出包括ABI JSON和字节码。。。因此,您实际上不需要部署契约来获取json,只需编译它(无需部署) 完全从字节码(或仅包含字节码的地址)获取ABI

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

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


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

在编译合约源代码时可以获取ABI JSON。编译的输入是源代码和少数其他值(如优化器设置)。。。输出包括ABI JSON和字节码。。。因此,您实际上不需要部署契约来获取json,只需编译它(无需部署)

完全从字节码(或仅包含字节码的地址)获取ABI JSON是不可能的


如果合同发布了源代码,则可以编译源代码以获得ABI JSON


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

谢谢您的回答。但特别是在开发过程中,我总是需要向solidity开发人员请求ABI并更新我的项目。我认为,如果我通过智能合约的地址访问ABI,我将节省大量时间。您对此有什么建议吗?除非您可以通过地址获得源代码,否则从技术上讲,仅从地址生成json是不可能的。它需要从合同源代码生成。。。“如果我通过智能合同的地址访问ABI”-这取决于您的上下文、合同作者是否发布了他们的源代码以及是否可以通过某种可搜索格式(通过地址)访问(源代码集)。