如果我能够编译一个用旧版本(比如0.1.3 )编写的智能契约,我还能部署它吗?
如果可以的话,是否有一种方法可以查看EVM字节码,并判断这个智能契约是用更老版本的solidity编写的?
发布于 2019-08-22 15:55:32
基本上,你的第一个问题是肯定的。Solidity编译器生成本机EVM代码,并将其封装在一个函数中,该函数将使EVM创建一个契约并将该代码交给它。它从一开始就以这种方式工作,所以任何来自Solidity早期版本的合同创建事务数据都应该仍然有效。
不过,你不想这么做的原因不多--问问自己为什么要这么做?一个例子是发布一份与现有的、已经部署的合同相兼容的合同,因为合同间调用的一些方式在过去几年中略有改变。
至于你的第二个问题-简单的回答是否定的,不过这里部分地提到了:有没有一种方法来检测哪个编译器版本产生了一个契约二进制文件?
https://ethereum.stackexchange.com/questions/74166
复制相似问题