You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The pragma statement is different almost everywhere. Some contracts are using floatable pragma. Every version after 0.8.19 will use the PUSH0 opcode, which is still not supported on some EVM-based chains, for example Arbitrum. If the protocol is expected to be deployed on multiple EVM-based chains (Optimism, Arbitrum, Polygon etc), that will be problematic.
Consider using version 0.8.19 so that the same deterministic bytecode can be deployed to all chains.
Even if the protocol is not expected to be deployed on multiple EVM-based chains, always use stable pragma statement to lock the compiler version and to have deterministic compilation to bytecode.
The text was updated successfully, but these errors were encountered:
madMax92221
changed the title
# [I-01] Pragma statement
[I-01] Pragma statement
Jan 4, 2024
The pragma statement is different almost everywhere. Some contracts are using floatable pragma. Every version after 0.8.19 will use the PUSH0 opcode, which is still not supported on some EVM-based chains, for example Arbitrum. If the protocol is expected to be deployed on multiple EVM-based chains (Optimism, Arbitrum, Polygon etc), that will be problematic.
Consider using version 0.8.19 so that the same deterministic bytecode can be deployed to all chains.
Even if the protocol is not expected to be deployed on multiple EVM-based chains, always use stable pragma statement to lock the compiler version and to have deterministic compilation to bytecode.
The text was updated successfully, but these errors were encountered: