Solc general recommendations
montyly opened this issue · comments
- Avoid solc-js with optimization enabled. Past versions of solc-js had non-deterministic output, as a result, we recommend to favor the binary version if the optimization are enabled.
- Do not use YUL optimizer. The YUL optimizer is too risky for deployement.
- Avoid ABIEncoderV2.
ABIEncoderV2
enables the YUL optimizer and is not as robust as the standard ABI. - Use a stable compiler’s version to compile, use the latest to check for warnings. You should check that your code leads to no warning with the latest compiler version. Solidity compiler has a fast release cycle, and has a history of compiler bugs, as a result, we recommend to not use the latest version for deployment.
0.5.12
is considered to be stable.
👍 deployments are done with static solc linux binaries, no YUL optimizer or ABIEncoderV2, and 0.5.12