Core Contracts Release 5

Hi everyone,

The cLabs team is happy to announce Contracts Release 5!

The upcoming governance proposal has the release notes found here.

The upgrade includes the following changes described with more detail in the release notes:

  • Granda Mento smart contract implementation #8129 (based on CIP-38)

  • Make updateMembershipHistory in Validators.sol correct if epoch number is 0 #8060

  • UsingRegistryV2 contract with static registry address #7837

Relevant links:

Governance proposal timeline:

  • Baklava: August 24

  • Alfajores: August 31

  • Mainnet: September 7

If you have any comments or questions we suggest replying here on this forum post so as to keep the conversation asynchronous and inclusive.

We look forward to hearing your thoughts.

-Martin, on behalf of the contracts team at cLabs

1 Like

Contracts Release 5 is proposed on mainnet governance with ID 32.

To verify the release against the audited source tag core-contracts.v5:

  1. fetch the proposal contents as JSON
celocli governance:show --node https://forno.celo.org --proposalID 32 --jsonTransactions proposal.json
  1. run the source verification from celo-monorepo/packages/protocol against proposal contents
yarn verify-release -n mainnet -f -b core-contracts.v5 -i ./releaseData/initializationData/release5.json -p proposal.json

The GrandaMento contract that is registered in the release proposal requires additional activation, as proposed on mainnet governance with ID 33. This proposal must be executed after the release to prevent reverting and overrides the release’s GrandaMento initialization parameters. Thus the release’s initialization parameters are unimportant.

In future, we can avoid initializing new contracts with “default values” during the release by using setImplementation rather than setAndInitializeImplementation. This is a better separation of concerns for voters and allows for the use of initialize in subsequent activation proposals.