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.