In this governance proposal, we propose to execute the Celo Core Contracts Release 15. This release follows the release process.
Changes that are being proposed in this release are described in this Github release. Hexen has completed a code audit of this release, and the tooling provided ensures the version control references included in the report match the contract deployment described in the proposal content.
Updated contract(s):
1.5.0.0 ⇒ 1.5.1.0New contracts:
N/A
Deprecated contracts:
N/A
First, make sure to download latest celo-monorepo with
$ git clone git@github.com:celo-org/celo-monorepo.git --branch release/core-contracts/15
And a version of the cli compatible with this contract release, you can install it with:
$ npm install -g @celo/celocli@latest
Then build the project with:
$ yarn && yarn build
Once built, cd to the protocol folder with:
$ cd packages/protocol
From there, you can download the current proposal:
$ celocli governance:show --proposalID 284 --jsonTransactions release-15-proposal.json --node https://forno.celo.org
And then verify that the proposal deployment matches the audited release:
yarn release:verify-release -p release-15-proposal.json -b core-contracts.v15 -n mainnet -f -i "releaseData/initializationData/release15.json"
The output should verify that the bytecodes and storages match what is expected, it should look something like this:
Success, no bytecode mismatches found!
Writing linked library addresses to libraries.json
✨ Done in 30.86s.
Celo Core Contracts are critical for the functioning of the Celo Platform. While cLabs have invested significant efforts to expand testing and verification tooling, and a third party audit has been completed, errors in this proposal could lead to situations that are only recoverable with a very difficult hard fork.
However, this release specifically addresses a critical bug that was causing incorrect fund distributions, so the risk of not implementing this fix outweighs the deployment risks.