Skip to content

Commit c5104cb

Browse files
committed
refactor: made deployUpgradable() signature consistent with deploy()
1 parent 4467927 commit c5104cb

10 files changed

+114
-106
lines changed

contracts/deploy/00-home-chain-arbitrable.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ const deployArbitration: DeployFunction = async (hre: HardhatRuntimeEnvironment)
1818
"0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003"; // General court, 3 jurors
1919
const weth = await deployments.get("WETH");
2020

21-
const disputeTemplateRegistry = await deployUpgradable(hre, deployer, "DisputeTemplateRegistry", [deployer]);
21+
const disputeTemplateRegistry = await deployUpgradable(hre, "DisputeTemplateRegistry", {
22+
from: deployer,
23+
args: [deployer],
24+
log: true,
25+
});
2226

2327
await deploy("ArbitrableExample", {
2428
from: deployer,

contracts/deploy/00-home-chain-arbitration.ts

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,16 @@ const deployArbitration: DeployFunction = async (hre: HardhatRuntimeEnvironment)
5252
randomizerByChain.set(HomeChains[HomeChains[chainId]], randomizerMock.address);
5353
}
5454

55-
await deployUpgradable(hre, deployer, "PolicyRegistry", [deployer]);
55+
await deployUpgradable(hre, "PolicyRegistry", { from: deployer, args: [deployer], log: true });
5656

5757
const randomizer = randomizerByChain.get(Number(await getChainId())) ?? AddressZero;
58-
const rng = await deployUpgradable(hre, deployer, "RandomizerRNG", [randomizer, deployer]);
58+
const rng = await deployUpgradable(hre, "RandomizerRNG", { from: deployer, args: [randomizer, deployer], log: true });
5959

60-
const disputeKit = await deployUpgradable(hre, deployer, "DisputeKitClassic", [deployer, AddressZero]);
60+
const disputeKit = await deployUpgradable(hre, "DisputeKitClassic", {
61+
from: deployer,
62+
args: [deployer, AddressZero],
63+
log: true,
64+
});
6165

6266
let klerosCoreAddress = await deployments.getOrNull("KlerosCore").then((deployment) => deployment?.address);
6367
if (!klerosCoreAddress) {
@@ -66,32 +70,40 @@ const deployArbitration: DeployFunction = async (hre: HardhatRuntimeEnvironment)
6670
console.log("calculated future KlerosCore address for nonce %d: %s", nonce + 3, klerosCoreAddress);
6771
}
6872

69-
const sortitionModule = await deployUpgradable(hre, deployer, "SortitionModule", [
70-
deployer,
71-
klerosCoreAddress,
72-
1800, // minStakingTime
73-
1800, // maxFreezingTime
74-
rng.address,
75-
RNG_LOOKAHEAD,
76-
]); // nonce (implementation), nonce+1 (proxy)
73+
const sortitionModule = await deployUpgradable(hre, "SortitionModule", {
74+
from: deployer,
75+
args: [
76+
deployer,
77+
klerosCoreAddress,
78+
1800, // minStakingTime
79+
1800, // maxFreezingTime
80+
rng.address,
81+
RNG_LOOKAHEAD,
82+
],
83+
log: true,
84+
}); // nonce (implementation), nonce+1 (proxy)
7785

7886
const pnk = pnkByChain.get(chainId) ?? AddressZero;
7987
const dai = daiByChain.get(chainId) ?? AddressZero;
8088
const weth = wethByChain.get(chainId) ?? AddressZero;
8189
const minStake = BigNumber.from(10).pow(20).mul(2);
8290
const alpha = 10000;
8391
const feeForJuror = BigNumber.from(10).pow(17);
84-
const klerosCore = await deployUpgradable(hre, deployer, "KlerosCore", [
85-
deployer,
86-
pnk,
87-
AddressZero,
88-
disputeKit.address,
89-
false,
90-
[minStake, alpha, feeForJuror, 256], // minStake, alpha, feeForJuror, jurorsForCourtJump
91-
[0, 0, 0, 10], // evidencePeriod, commitPeriod, votePeriod, appealPeriod
92-
ethers.utils.hexlify(5), // Extra data for sortition module will return the default value of K
93-
sortitionModule.address,
94-
]); // nonce+2 (implementation), nonce+3 (proxy)
92+
const klerosCore = await deployUpgradable(hre, "KlerosCore", {
93+
from: deployer,
94+
args: [
95+
deployer,
96+
pnk,
97+
AddressZero,
98+
disputeKit.address,
99+
false,
100+
[minStake, alpha, feeForJuror, 256], // minStake, alpha, feeForJuror, jurorsForCourtJump
101+
[0, 0, 0, 10], // evidencePeriod, commitPeriod, votePeriod, appealPeriod
102+
ethers.utils.hexlify(5), // Extra data for sortition module will return the default value of K
103+
sortitionModule.address,
104+
],
105+
log: true,
106+
}); // nonce+2 (implementation), nonce+3 (proxy)
95107

96108
// execute DisputeKitClassic.changeCore() only if necessary
97109
const currentCore = await hre.ethers.getContractAt("DisputeKitClassic", disputeKit.address).then((dk) => dk.core());

contracts/deploy/01-foreign-gateway-on-ethereum.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,13 @@ const deployForeignGateway: DeployFunction = async (hre: HardhatRuntimeEnvironme
3434

3535
const homeChainId = (await homeChainProvider.getNetwork()).chainId;
3636
const homeChainIdAsBytes32 = hexZeroPad(hexlify(homeChainId), 32);
37-
await deployUpgradable(
38-
hre,
39-
deployer,
40-
"ForeignGatewayOnEthereum",
41-
[deployer, veaOutbox.address, homeChainIdAsBytes32, homeGatewayAddress],
42-
{
43-
contract: "ForeignGateway",
44-
gasLimit: 4000000,
45-
}
46-
);
37+
await deployUpgradable(hre, "ForeignGatewayOnEthereum", {
38+
from: deployer,
39+
contract: "ForeignGateway",
40+
args: [deployer, veaOutbox.address, homeChainIdAsBytes32, homeGatewayAddress],
41+
gasLimit: 4000000,
42+
log: true,
43+
});
4744

4845
// TODO: disable the gateway until fully initialized with the correct fees OR allow disputeCreators to add funds again if necessary.
4946
const coreDeployment = await hre.companionNetworks.home.deployments.get("KlerosCore");

contracts/deploy/01-foreign-gateway-on-gnosis.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,14 @@ const deployForeignGateway: DeployFunction = async (hre: HardhatRuntimeEnvironme
3737

3838
const homeChainId = (await homeChainProvider.getNetwork()).chainId;
3939
const homeChainIdAsBytes32 = hexZeroPad(hexlify(homeChainId), 32);
40-
await deployUpgradable(
41-
hre,
42-
deployer,
43-
"ForeignGatewayOnGnosis",
44-
[deployer, veaOutbox.address, homeChainIdAsBytes32, homeGatewayAddress],
45-
{
46-
contract: "ForeignGateway",
47-
maxFeePerGas: ONE_GWEI,
48-
maxPriorityFeePerGas: ONE_GWEI,
49-
}
50-
);
40+
await deployUpgradable(hre, "ForeignGatewayOnGnosis", {
41+
from: deployer,
42+
contract: "ForeignGateway",
43+
args: [deployer, veaOutbox.address, homeChainIdAsBytes32, homeGatewayAddress],
44+
maxFeePerGas: ONE_GWEI,
45+
maxPriorityFeePerGas: ONE_GWEI,
46+
log: true,
47+
});
5148

5249
// TODO: disable the gateway until fully initialized with the correct fees OR allow disputeCreators to add funds again if necessary.
5350
const coreDeployment = await hre.companionNetworks.home.deployments.get("KlerosCore");

contracts/deploy/02-home-gateway-to-ethereum.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,19 @@ const deployHomeGateway: DeployFunction = async (hre: HardhatRuntimeEnvironment)
2323
const foreignChainName = await hre.companionNetworks.foreignGoerli.deployments.getNetworkName();
2424
console.log("Using ForeignGateway %s on chainId %s (%s)", foreignGateway.address, foreignChainId, foreignChainName);
2525

26-
await deployUpgradable(
27-
hre,
28-
deployer,
29-
"HomeGatewayToEthereum",
30-
[
26+
await deployUpgradable(hre, "HomeGatewayToEthereum", {
27+
from: deployer,
28+
contract: "HomeGateway",
29+
args: [
3130
deployer,
3231
klerosCore.address,
3332
veaInbox.address,
3433
foreignChainId,
3534
foreignGateway.address,
3635
ethers.constants.AddressZero, // feeToken is ETH
3736
],
38-
{ contract: "HomeGateway" }
39-
); // nonce+0
37+
log: true,
38+
}); // nonce+0
4039
};
4140

4241
deployHomeGateway.tags = ["HomeGatewayToEthereum"];

contracts/deploy/02-home-gateway-to-gnosis.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,12 @@ const deployHomeGateway: DeployFunction = async (hre: HardhatRuntimeEnvironment)
2323
const foreignChainName = await hre.companionNetworks.foreignChiado.deployments.getNetworkName();
2424
console.log("Using ForeignGateway %s on chainId %s (%s)", foreignGateway.address, foreignChainId, foreignChainName);
2525

26-
await deployUpgradable(
27-
hre,
28-
deployer,
29-
"HomeGatewayToGnosis",
30-
[deployer, klerosCore.address, veaInbox.address, foreignChainId, foreignGateway.address, dai.address],
31-
{ contract: "HomeGateway" }
32-
); // nonce+0
26+
await deployUpgradable(hre, "HomeGatewayToGnosis", {
27+
from: deployer,
28+
contract: "HomeGateway",
29+
args: [deployer, klerosCore.address, veaInbox.address, foreignChainId, foreignGateway.address, dai.address],
30+
log: true,
31+
}); // nonce+0
3332
};
3433

3534
deployHomeGateway.tags = ["HomeGatewayToGnosis"];

contracts/deploy/03-vea-mock.ts

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,36 +30,29 @@ const deployHomeGateway: DeployFunction = async (hre: HardhatRuntimeEnvironment)
3030
console.log("Calculated future HomeGatewayToEthereum address for nonce %d: %s", nonce, homeGatewayAddress);
3131

3232
const homeChainIdAsBytes32 = hexZeroPad(hexlify(HardhatChain.HARDHAT), 32);
33-
const foreignGateway = await deployUpgradable(
34-
hre,
35-
deployer,
36-
"ForeignGatewayOnEthereum",
37-
[deployer, vea.address, homeChainIdAsBytes32, homeGatewayAddress],
38-
{
39-
contract: "ForeignGateway",
40-
gasLimit: 4000000,
41-
}
42-
); // nonce (implementation), nonce+1 (proxy)
33+
const foreignGateway = await deployUpgradable(hre, "ForeignGatewayOnEthereum", {
34+
from: deployer,
35+
contract: "ForeignGateway",
36+
args: [deployer, vea.address, homeChainIdAsBytes32, homeGatewayAddress],
37+
gasLimit: 4000000,
38+
log: true,
39+
}); // nonce (implementation), nonce+1 (proxy)
4340
console.log("foreignGateway.address: ", foreignGateway.address);
4441

45-
await deployUpgradable(
46-
hre,
47-
deployer,
48-
"HomeGatewayToEthereum",
49-
[
42+
await deployUpgradable(hre, "HomeGatewayToEthereum", {
43+
from: deployer,
44+
contract: "HomeGateway",
45+
args: [
5046
deployer,
5147
klerosCore.address,
5248
vea.address,
5349
HardhatChain.HARDHAT,
5450
foreignGateway.address,
5551
ethers.constants.AddressZero, // feeToken
5652
],
57-
{
58-
contract: "HomeGateway",
59-
gasLimit: 4000000,
60-
log: true,
61-
}
62-
); // nonce+2 (implementation), nonce+3 (proxy)
53+
gasLimit: 4000000,
54+
log: true,
55+
}); // nonce+2 (implementation), nonce+3 (proxy)
6356

6457
// TODO: disable the gateway until fully initialized with the correct fees OR allow disputeCreators to add funds again if necessary.
6558
const signer = (await hre.ethers.getSigners())[0];
@@ -70,7 +63,11 @@ const deployHomeGateway: DeployFunction = async (hre: HardhatRuntimeEnvironment)
7063
await execute("ForeignGatewayOnEthereum", { from: deployer, log: true }, "changeCourtJurorFee", courtId, fee);
7164
// TODO: set up the correct fees for the lower courts
7265

73-
const disputeTemplateRegistry = await deployUpgradable(hre, deployer, "DisputeTemplateRegistry", [deployer]);
66+
const disputeTemplateRegistry = await deployUpgradable(hre, "DisputeTemplateRegistry", {
67+
from: deployer,
68+
args: [deployer],
69+
log: true,
70+
});
7471

7572
// TODO: debug why this extraData fails but "0x00" works
7673
// const extraData =

contracts/deploy/upgrade-kleros-core.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,20 @@ const deployUpgradeKlerosCore: DeployFunction = async (hre: HardhatRuntimeEnviro
2828
const sortitionModule = await deployments.get("SortitionModule");
2929

3030
console.log("Upgrading the KlerosCore...");
31-
await deployUpgradable(hre, deployer, "KlerosCore", [
32-
deployer,
33-
pnk,
34-
AddressZero,
35-
disputeKit.address,
36-
false,
37-
[minStake, alpha, feeForJuror, 256], // minStake, alpha, feeForJuror, jurorsForCourtJump
38-
[0, 0, 0, 10], // evidencePeriod, commitPeriod, votePeriod, appealPeriod
39-
ethers.utils.hexlify(5), // Extra data for sortition module will return the default value of K
40-
sortitionModule.address,
41-
]);
31+
await deployUpgradable(hre, "KlerosCore", {
32+
from: deployer,
33+
args: [
34+
deployer,
35+
pnk,
36+
AddressZero,
37+
disputeKit.address,
38+
false,
39+
[minStake, alpha, feeForJuror, 256], // minStake, alpha, feeForJuror, jurorsForCourtJump
40+
[0, 0, 0, 10], // evidencePeriod, commitPeriod, votePeriod, appealPeriod
41+
ethers.utils.hexlify(5), // Extra data for sortition module will return the default value of K
42+
sortitionModule.address,
43+
],
44+
});
4245
} catch (err) {
4346
console.error(err);
4447
throw err;

contracts/deploy/upgrade-sortition-module.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,17 @@ const deployUpgradeSortitionModule: DeployFunction = async (hre: HardhatRuntimeE
2424
const klerosCoreAddress = klerosCore.address;
2525

2626
console.log("Upgrading the SortitionModule...");
27-
await deployUpgradable(hre, deployer, "SortitionModule", [
28-
deployer,
29-
klerosCoreAddress,
30-
1800, // minStakingTime
31-
1800, // maxFreezingTime
32-
rng.address,
33-
RNG_LOOKAHEAD,
34-
]);
27+
await deployUpgradable(hre, "SortitionModule", {
28+
from: deployer,
29+
args: [
30+
deployer,
31+
klerosCoreAddress,
32+
1800, // minStakingTime
33+
1800, // maxFreezingTime
34+
rng.address,
35+
RNG_LOOKAHEAD,
36+
],
37+
});
3538
} catch (err) {
3639
console.error(err);
3740
throw err;

contracts/deploy/utils/deployUpgradable.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@ import { HardhatRuntimeEnvironment } from "hardhat/types";
33

44
export function deployUpgradable(
55
hre: HardhatRuntimeEnvironment,
6-
deployer: string,
76
contract: string,
8-
params: any[],
9-
deployOptions?: Omit<DeployOptions, "from">
7+
options: DeployOptions
108
): Promise<DeployResult> {
119
const { deploy } = hre.deployments;
10+
const { args, ...otherOptions } = options;
1211
return deploy(contract, {
13-
from: deployer,
1412
proxy: {
1513
proxyContract: "UUPSProxy",
1614
proxyArgs: ["{implementation}", "{data}"],
@@ -19,15 +17,14 @@ export function deployUpgradable(
1917
execute: {
2018
init: {
2119
methodName: "initialize",
22-
args: params,
20+
args: args ?? [],
2321
},
2422
onUpgrade: {
2523
methodName: "governor",
2624
args: [],
2725
},
2826
},
2927
},
30-
log: true,
31-
...deployOptions,
28+
...otherOptions,
3229
});
3330
}

0 commit comments

Comments
 (0)