Add reinitializer for upgrades to Contributor
In order to be able to re-initialize the upgraded contract with the profile manager address, we need a new re-initializer function that is automatically allowed to only be executed once per contract implementation version. Co-authored-by: Michael Bumann <hello@michaelbumann.com>
This commit is contained in:
parent
f10af14fae
commit
d63f7ca743
@ -50,6 +50,10 @@ contract Contributor is Initializable {
|
||||
profileManager = profileManagerAddress;
|
||||
}
|
||||
|
||||
function reinitialize(address profileManagerAddress) public reinitializer(2) {
|
||||
profileManager = profileManagerAddress;
|
||||
}
|
||||
|
||||
function setContributionContract(address contribution) public onlyCore {
|
||||
require(address(contributionContract) == address(0) || addressIsCore(msg.sender), "Core only");
|
||||
contributionContract = IContributionBalance(contribution);
|
||||
|
14
package-lock.json
generated
14
package-lock.json
generated
@ -20,7 +20,7 @@
|
||||
"@nomicfoundation/hardhat-chai-matchers": "^1.0.3",
|
||||
"@nomiclabs/hardhat-ethers": "^2.0.2",
|
||||
"@nomiclabs/hardhat-waffle": "^2.0.1",
|
||||
"@openzeppelin/contracts-upgradeable": "^4.3.2",
|
||||
"@openzeppelin/contracts-upgradeable": "^4.8.3",
|
||||
"@openzeppelin/hardhat-upgrades": "^1.10.0",
|
||||
"async-each-series": "^1.1.0",
|
||||
"chai": "^4.3.6",
|
||||
@ -1225,9 +1225,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@openzeppelin/contracts-upgradeable": {
|
||||
"version": "4.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.5.2.tgz",
|
||||
"integrity": "sha512-xgWZYaPlrEOQo3cBj97Ufiuv79SPd8Brh4GcFYhPgb6WvAq4ppz8dWKL6h+jLAK01rUqMRp/TS9AdXgAeNvCLA==",
|
||||
"version": "4.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.3.tgz",
|
||||
"integrity": "sha512-SXDRl7HKpl2WDoJpn7CK/M9U4Z8gNXDHHChAKh0Iz+Wew3wu6CmFYBeie3je8V0GSXZAIYYwUktSrnW/kwVPtg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@openzeppelin/hardhat-upgrades": {
|
||||
@ -20951,9 +20951,9 @@
|
||||
}
|
||||
},
|
||||
"@openzeppelin/contracts-upgradeable": {
|
||||
"version": "4.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.5.2.tgz",
|
||||
"integrity": "sha512-xgWZYaPlrEOQo3cBj97Ufiuv79SPd8Brh4GcFYhPgb6WvAq4ppz8dWKL6h+jLAK01rUqMRp/TS9AdXgAeNvCLA==",
|
||||
"version": "4.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.3.tgz",
|
||||
"integrity": "sha512-SXDRl7HKpl2WDoJpn7CK/M9U4Z8gNXDHHChAKh0Iz+Wew3wu6CmFYBeie3je8V0GSXZAIYYwUktSrnW/kwVPtg==",
|
||||
"dev": true
|
||||
},
|
||||
"@openzeppelin/hardhat-upgrades": {
|
||||
|
@ -42,7 +42,7 @@
|
||||
"@nomicfoundation/hardhat-chai-matchers": "^1.0.3",
|
||||
"@nomiclabs/hardhat-ethers": "^2.0.2",
|
||||
"@nomiclabs/hardhat-waffle": "^2.0.1",
|
||||
"@openzeppelin/contracts-upgradeable": "^4.3.2",
|
||||
"@openzeppelin/contracts-upgradeable": "^4.8.3",
|
||||
"@openzeppelin/hardhat-upgrades": "^1.10.0",
|
||||
"async-each-series": "^1.1.0",
|
||||
"chai": "^4.3.6",
|
||||
|
@ -7,7 +7,17 @@ async function main() {
|
||||
await kredits.init();
|
||||
|
||||
const ContributorV2 = await ethers.getContractFactory("Contributor");
|
||||
const contributor = await upgrades.upgradeProxy(kredits.Contributor.address, ContributorV2);
|
||||
const contributor = await upgrades.upgradeProxy(
|
||||
kredits.Contributor.address,
|
||||
ContributorV2,
|
||||
{
|
||||
call: {
|
||||
fn: "reinitialize",
|
||||
args: [
|
||||
"0xc80d2513277FA04B10403E2D1d7dAa86F931f4d1"
|
||||
]
|
||||
}
|
||||
});
|
||||
console.log("Contributor upgraded");
|
||||
console.log(`Contributor address: ${contributor.address}`);
|
||||
|
||||
@ -16,4 +26,4 @@ async function main() {
|
||||
console.log("DONE!");
|
||||
}
|
||||
|
||||
main();
|
||||
main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user