这个问题以前曾以各种复杂的方式提出过。我提出一个非常简单的问题,并希望得到一个非常直截了当的答案(如果可能的话)。调用web3.eth.getCode(<contract-address>)的结果是什么?
type(Contract).creationCodetype(Contract).runtimeCode当然,假设contract-address是Contract的地址
发布于 2021-05-21 10:20:20
不,getCode方法返回存储在Blockchain上的运行时代码。
在这个文章中可以看到:
这是存储在链上的描述智能契约的代码.此代码不包括契约的构造函数逻辑或构造函数参数,因为它们与用于实际创建契约的代码无关。契约的运行时字节码可以通过使用组装块并调用extcodec拷贝(A)在链上检索。运行时字节码的哈希从extcode散列(A)返回。此操作码是在EIP 1052中引入的,并包含在君士坦丁堡硬叉子中。
此代码可以在链上使用类型(ContractName).runtimeCode检索.最后,这段代码可以通过JSON调用getCode从链外检索。
https://ethereum.stackexchange.com/questions/99366
复制相似问题