Omniscia Tokemak Network 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 npx
CLI tool to hardhat
:
npx hardhat compile
The hardhat
tool automatically selects either Solidity version 0.6.11
, 0.6.12
or 0.7.6
based on the version specified within the hardhat.config.ts
file in conjunction with the pragma
statement of the currently compiled file.
The project contains discrepancies with regards to the Solidity version used, however, they are solely contained in dependencies of the project and can be safely ignored.
The inheritence structure of the Tokemak protocol is relatively convoluted and as such, it renders AST-style parsing difficult causing static analysers to fail. In order to properly execute them, we split the codebase into submodules and performed several adjustments (such as top-level struct
declarations being moved to the contracts themselves) to properly execute the static analysers.
As such, the static analysis findings identified within the report may deviate from what one can independently generate.
During compilation with the hardhat
pipeline, no errors were identified that relate to the syntax or bytecode size of the contracts.