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.