Skip to content

Compiler version is restrictive and incompatible with some networks #21

@robriks

Description

@robriks

Contracts are declaring Solidity pragma == 0.8.20 for solc compiler, without declaring EVM version in the foundry.toml file (Paris, Shanghai, Cancun etc).

Since Shanghai introduced the PUSH0 opcode and support for said opcode was introduced to Solidity in 0.8.20, the contracts would be incompatible with networks that haven't yet upgraded to Shanghai, such as Arbitrum. Adding an evm_version=xxx config to the foundry.toml file will prevent this

Further, the pragma declarations are very restrictive in only using 0.8.20- when recoverable-wrapper is used as a dependency, host projects may be using other Solidity versions (we are up to 0.8.26 now) and so a more inclusive pragma would drive adoption via easier integration.

Consider pragma solidity ^0.8.0 or pragma solidity >= 0.8.20 for better composability

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions