etherscan如何获​​得区块链编译代码?

Posted

技术标签:

【中文标题】etherscan如何获​​得区块链编译代码?【英文标题】:How does etherscan get blockchain compiled code? 【发布时间】:2021-08-19 03:21:35 【问题描述】:

我正在开发一个以太坊浏览器,我想知道 etherscan 如何获取合约源代码、ABI 以及他们如何将交易输入 hexa 解析为合约函数?

提前致谢

【问题讨论】:

【参考方案1】:

合约开发者(维护者,或者基本上任何人)可以在https://etherscan.io/verifyContract上发布代码

当您在 Etherscan 上发布合约时,他们会询问您实际的源代码和编译参数,例如使用的语言(例如 Solidity 或 Vyper)、编译器版本(例如 0.8.4)、优化设置和其他一些细节.

然后 Etherscan 使用提供的参数编译提供的代码,如果(现在编译的)字节码与区块链上的字节码匹配,它会发布源代码。


ABI JSON 是编译过程的返回值之一 - 以及实际的字节码、操作码列表、错误数组等。

至于事务输入十六进制:他们使用函数签名字典,转换为实际函数定义(包括参数数据类型)。您可以在此other answer 中找到有关 ABI 编码函数签名和传递给函数的参数的更多信息。

【讨论】:

非常感谢 @PeterSmith 提供的信息,我将不得不连接到 etherscan API 以根据合同 ABI JSON 检查输入数据。

以上是关于etherscan如何获​​得区块链编译代码?的主要内容,如果未能解决你的问题,请参考以下文章

腾讯云获国际区块链竞争力排名中国区首位;罗源将发展数字经济,聚焦区块链等重点领域

区块链以太坊开发测试网汇总

重磅!蜂巢区块链获最新国家软件著作权证书

区块链的类型与网络ID

如何破解区块链应用落地难题

通过 Infura 的 Web3 SendSignedTransaction 未出现在 Etherscan 交易列表中