Omniscia XFai Audit
Compilation
Compilation
The project utilizes hardhat
as its development pipeline tool, containing an array of tests and scripts coded in TypeScript.
To compile the project, the compile
command needs to be issued via the hardhat
CLI tool invoked via npx
:
npx hardhat compile
The hardhat
tool automatically selects Solidity version 0.7.3
based on the version specified within the hardhat.config.ts
file.
The project contains discrepancies with regards to the Solidity version used only within its dependencies which should be dealt with as the contracts of the project have no locked pragma
statement in contrast to the hardhat
configuration file.
During compilation with the hardhat
pipeline, no errors were identified that relate to the syntax of the contracts of the project.
1 compilation error for xfai.sol
was raised that indicated the contract code size exceeds 24576 bytes, a limit imposed by the Spurious Dragon hard-fork of Ethereum. In most cases, this error can be mitigated by using a low runs
value during the optimization phase. Additionally, a few of the dependencies that the project utilizes in their flattened format contain dead-code that is not utilized and as such could be removed to further reduce the bytecode size.