9

In this article there is a claim that "if you change something in Solidity, existing smart contracts might stop working". With references to here and here.

It doesn't make much sense to me -- how changing the language could possibly affect EVM code on the net?

  • Yes, it's a ridiculous statement. That's like saying that if you change the C++ standard (i.e. C++11 -> C++14), everything written using C++11 will stop working. – Tjaden Hess Oct 7 '16 at 14:50
7

Existing (deployed) contracts will still work the same regardless if Solidity changes.

A comment from a reviewer of the article:

Once a Smart Contract is compiled and deployed it is irrelevant what happens in future versions of the Solidity language.

Another reviewer was concerned that Solidity source code could behave differently depending on the version of the Solidity compiler used. The concern is valid and addressed by Solidity introducing a version pragma:

Source files have to specify the compiler version they are compatible with using e.g. pragma solidity ^0.4.0; or pragma solidity >=0.4.0 <0.4.8;

| improve this answer | |
4

Deployed smart contracts will not be affected by a change in Solidity.

On the other hand, old code may not compile with newer versions of Solidity. This old code may need to be revised to be compiled and deployed. I don't see how this is a problem.

| improve this answer | |
3

It doesn't make sense for me too, while solidity compiles code to EVM opcodes, changing solidity will not affect the previous contract except if they change the EVM to an incompatible one. the problem he didn't explain what he mains by "change something", changing what exactly in solidity?

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.