Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds initializableV2 contract to ensure implementation contracts are initialized #7254

Merged
merged 24 commits into from
Mar 24, 2021

Conversation

alecps
Copy link
Contributor

@alecps alecps commented Feb 24, 2021

Description

Adds a new contract InitializableV2 that is the same at the Initializable contract but with the addition of a constructor which sets _initialized == true unless the isTest parameter is true. This prevents the implementation contracts from being initialized and effectively locks their storage. Rather than upgrade all our contracts to use InitializableV2 at once, we will selectively make this change to contracts that we are upgrading anyway. To enforce this, a check has been added to the backwards compatibility script to ensure that contracts with positive version deltas do not use the old Initializable contract. This PR upgrades the ReleaseGold, GoldToken, and MetaTransactionWallet contracts to use InitializableV2 and reverts the changes that were previously added to initialize ReleaseGold contracts on deploy.

Other changes

Last few commits make it so the deploy_release_contracts script runs in CI, which it turns out it was not previously. You can see the "Deploying ReleaseGold..." output now shows in the logs.

Tested

Tested with a variety of contracts in this PR #7196

Related issues
https://app.zenhub.com/workspaces/cap-sprint-board-60059934ed9c6f000e5594f6/issues/celo-org/celo-monorepo/6577

Backwards compatibility
Yes

@alecps alecps requested a review from mcortesi as a code owner February 24, 2021 00:38
@alecps alecps requested review from a team, nambrot, yorhodes and m-chrzan and removed request for mcortesi February 24, 2021 00:38
@alecps alecps added the automerge Have PR merge automatically when checks pass label Feb 24, 2021
packages/protocol/lib/web3-utils.ts Outdated Show resolved Hide resolved
packages/protocol/lib/web3-utils.ts Outdated Show resolved Hide resolved
packages/protocol/lib/web3-utils.ts Outdated Show resolved Hide resolved
packages/protocol/lib/web3-utils.ts Outdated Show resolved Hide resolved
packages/protocol/lib/web3-utils.ts Show resolved Hide resolved
packages/protocol/lib/web3-utils.ts Show resolved Hide resolved
packages/protocol/lib/web3-utils.ts Outdated Show resolved Hide resolved
packages/protocol/scripts/truffle/make-release.ts Outdated Show resolved Hide resolved
@alecps alecps removed request for asaj, cmcewen and timmoreton March 2, 2021 20:14
@alecps alecps marked this pull request as draft March 5, 2021 05:56
@alecps alecps marked this pull request as ready for review March 8, 2021 20:40
@alecps alecps marked this pull request as draft March 8, 2021 20:41
@alecps alecps marked this pull request as ready for review March 10, 2021 00:04
@alecps alecps requested a review from m-chrzan March 10, 2021 00:11
@alecps alecps requested a review from a team March 17, 2021 13:30
@mergify mergify bot merged commit 8e9da53 into master Mar 24, 2021
@mergify mergify bot deleted the alecps/initV2_ branch March 24, 2021 05:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge Have PR merge automatically when checks pass
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants