We've built a handy tool to verify that the on-chain bytecode of deployed Mento contracts matches what has been audited. This is a bit technical and requires at least some knowledge of the stack used for smart contract development and how to use the terminal.
verifyBytecodescommand, you need to pick three parameters as follows:
MU01exists which upgrades Mento from v1.0 to v2.0
For example, if we want to verify on Celo mainnet we would run this command:
$ yarn verify:bytecodes -n celo -u MU01 -c v2.0.0
In order to trust the results, you also have to trust the verification script. Luckily it's short enough to be able to read comfortably. You can find it here:
The script flow is the following:
- 1.Check out the
mento-coresubmodule at the supplied commit
- 2.Clean and recompile all contracts
- 3.Find deployed contracts by looking at the broadcast folders related to the upgrade
- 4.Compare the bytecode found on-chain for a deployed contract with the local compilation results
- 5.Print a pretty table.