Omniscia Mitosis Audit
Compilation
Compilation
The project utilizes foundry
as its development pipeline tool, containing an array of tests and scripts coded in Solidity.
To compile the project, the build
command needs to be issued via the forge
CLI tool:
forge build
The forge
tool automatically selects Solidity version 0.8.23
based on the version specified within the foundry.toml
file.
The project contains discrepancies with regards to the Solidity version used, however, they are solely contained in dependencies and can thus be safely ignored.
We advise them to be locked to 0.8.23
(=0.8.23
), the same version utilized for our static analysis as well as optimizational review of the codebase.
During compilation with the foundry
pipeline, no errors were identified that relate to the syntax or bytecode size of the contracts.
To note, the compiler version utilized makes use of the Shanghai target EVM and thus will introduce the PUSH0
opcode which is incompatible with certain Layer-2 chains.
We advise the Mitosis team to evaluate whether the chains they wish to deploy their contracts to properly support the operation code when they intend to deploy so as to avoid any deployment failures and thus waste of resources.