Skip to content

Commit 5f71822

Browse files
fix: deploy scripts
1 parent cb2581f commit 5f71822

File tree

7 files changed

+123
-86
lines changed

7 files changed

+123
-86
lines changed

Diff for: scripts/deploy/configSmokeTest.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ const checkSocket = async (chain, remoteChain, config, switchboard, capacitor, d
2424
let hasExecutorRole = await roleExist(executionManager, executorRole, executorAddress[chain]);
2525
assert(hasExecutorRole, `❌ Executor Role do not exist for ${chain}`);
2626

27-
const capacitor__ = await socket._capacitors__(switchboard, chainIds[remoteChain]);
28-
const decapacitor__ = await socket._decapacitors__(switchboard, chainIds[remoteChain]);
27+
const capacitor__ = await socket.capacitors__(switchboard, chainIds[remoteChain]);
28+
const decapacitor__ = await socket.decapacitors__(switchboard, chainIds[remoteChain]);
2929

3030
assert(capacitor__ !== constants.AddressZero, "❌ Switchboard not registered");
3131
assert(capacitor__ === capacitor, "❌ Wrong Capacitor");
@@ -48,12 +48,12 @@ const checkOracle = async (chain, remoteChain, oracleAddr, transmitManagerAddr)
4848
const oracle = await getInstance("GasPriceOracle", oracleAddr)
4949

5050
// check transmit manager
51-
const transmitManager = await oracle.transmitManager();
51+
const transmitManager = await oracle.transmitManager__();
5252
assert(transmitManager.toLowerCase() === transmitManagerAddr.toLowerCase(), `❌ TransmitManager not set in oracle on ${chain}`);
5353
}
5454

5555
const checkSwitchboard = async (chain, remoteChain, localSwitchboard, remoteSwitchboard, configurationType) => {
56-
if (configurationType === IntegrationTypes.nativeIntegration) {
56+
if (configurationType === IntegrationTypes.native) {
5757
const switchboardType = switchboards[chain][remoteChain]["switchboard"];
5858

5959
if (switchboardType === NativeSwitchboard.POLYGON_L1) {
@@ -81,7 +81,7 @@ const checkSwitchboard = async (chain, remoteChain, localSwitchboard, remoteSwit
8181
assert(parseInt(executionOverheadOnChain) !== 0, "❌ Execution overhead not set on switchboard")
8282
assert(watcherRoleSet, `❌ Watcher Role not set for ${remoteChain} on switchboard`)
8383

84-
if (configurationType === IntegrationTypes.fastIntegration) {
84+
if (configurationType === IntegrationTypes.fast) {
8585
const attestGasLimitOnChain = await switchboard.attestGasLimit(chainIds[remoteChain]);
8686
assert(parseInt(attestGasLimitOnChain) !== 0, `❌ Attest gas limit is 0 for ${remoteChain} on switchboard`)
8787
}

Diff for: scripts/deploy/configure.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ const setRemoteSwitchboards = async () => {
6363
for (let dstChain in deploymentAddresses[srcChain]?.["integrations"]) {
6464
const dstConfig = deploymentAddresses[srcChain]["integrations"][dstChain]
6565

66-
if (dstConfig?.[IntegrationTypes.nativeIntegration]) {
66+
if (dstConfig?.[IntegrationTypes.native]) {
6767
const srcSwitchboardType = switchboards[networkToChainId[srcChain]]?.[networkToChainId[dstChain]]?.["switchboard"]
68-
const dstSwitchboardAddress = getSwitchboardAddress(srcChain, IntegrationTypes.nativeIntegration, deploymentAddresses?.[dstChain])
68+
const dstSwitchboardAddress = getSwitchboardAddress(srcChain, IntegrationTypes.native, deploymentAddresses?.[dstChain])
6969
if (!dstSwitchboardAddress) continue;
7070

71-
const srcSwitchboardAddress = dstConfig?.[IntegrationTypes.nativeIntegration]["switchboard"];
71+
const srcSwitchboardAddress = dstConfig?.[IntegrationTypes.native]["switchboard"];
7272

7373
let functionName, sbContract;
7474
if (srcSwitchboardType === NativeSwitchboard.POLYGON_L1) {

Diff for: scripts/deploy/deployAndRegisterSwitchboard.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export default async function deployAndRegisterSwitchboard(
4444
} else if (contractName === "OptimisticSwitchboard") {
4545
await setupOptimistic(switchboard, chainIds[remoteChain], network, remoteChain, signer)
4646
} else {
47-
const capacitor = getCapacitorAddress(remoteChainSlug, IntegrationTypes.nativeIntegration, sourceConfig);
47+
const capacitor = getCapacitorAddress(remoteChainSlug, IntegrationTypes.native, sourceConfig);
4848
const setCapacitorTx = await switchboard.connect(signer).setCapacitor(
4949
capacitor
5050
);

Diff for: scripts/deploy/deploySocket.ts

+107-69
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ethers } from "hardhat";
33

44
import { Contract } from "ethers";
55
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
6-
import { deployContractWithoutArgs, deployContractWithArgs, storeAddresses } from "./utils";
6+
import { deployContractWithoutArgs, deployContractWithArgs, storeAddresses, getInstance } from "./utils";
77
import { chainIds } from "../constants/networks";
88

99
import { executorAddress, transmitterAddress, EXECUTOR_ROLE, sealGasLimit } from "../constants/config";
@@ -35,59 +35,88 @@ export const main = async () => {
3535

3636
const network = hre.network.name;
3737

38-
const signatureVerifier: Contract = await deployContractWithoutArgs(
39-
"SignatureVerifier",
40-
socketSigner,
41-
"contracts/utils/SignatureVerifier.sol"
42-
);
43-
addresses["SignatureVerifier"] = signatureVerifier.address;
44-
await storeAddresses(addresses, chainIds[network]);
38+
let signatureVerifier: Contract;
39+
if (!addresses["SignatureVerifier"]) {
40+
signatureVerifier = await deployContractWithoutArgs(
41+
"SignatureVerifier",
42+
socketSigner,
43+
"contracts/utils/SignatureVerifier.sol"
44+
);
45+
addresses["SignatureVerifier"] = signatureVerifier.address;
46+
await storeAddresses(addresses, chainIds[network]);
47+
} else {
48+
signatureVerifier = await getInstance("SignatureVerifier", addresses["SignatureVerifier"]);
49+
}
4550

46-
const hasher: Contract = await deployContractWithoutArgs(
47-
"Hasher",
48-
socketSigner,
49-
"contracts/utils/Hasher.sol"
50-
);
51-
addresses["Hasher"] = hasher.address;
52-
await storeAddresses(addresses, chainIds[network]);
51+
let hasher: Contract;
52+
if (!addresses["Hasher"]) {
53+
hasher = await deployContractWithoutArgs(
54+
"Hasher",
55+
socketSigner,
56+
"contracts/utils/Hasher.sol"
57+
);
58+
addresses["Hasher"] = hasher.address;
59+
await storeAddresses(addresses, chainIds[network]);
60+
} else {
61+
hasher = await getInstance("Hasher", addresses["Hasher"]);
62+
}
5363

54-
const capacitorFactory: Contract = await deployContractWithoutArgs(
55-
"CapacitorFactory",
56-
socketSigner,
57-
"contracts/CapacitorFactory.sol"
58-
);
59-
addresses["CapacitorFactory"] = capacitorFactory.address;
60-
await storeAddresses(addresses, chainIds[network]);
61-
62-
const gasPriceOracle: Contract = await deployContractWithArgs(
63-
"GasPriceOracle",
64-
[socketSigner.address, chainIds[network]],
65-
socketSigner,
66-
"contracts/GasPriceOracle.sol"
67-
);
64+
let capacitorFactory: Contract;
65+
if (!addresses["CapacitorFactory"]) {
66+
capacitorFactory = await deployContractWithoutArgs(
67+
"CapacitorFactory",
68+
socketSigner,
69+
"contracts/CapacitorFactory.sol"
70+
);
71+
addresses["CapacitorFactory"] = capacitorFactory.address;
72+
await storeAddresses(addresses, chainIds[network]);
73+
} else {
74+
capacitorFactory = await getInstance("CapacitorFactory", addresses["CapacitorFactory"]);
75+
}
6876

69-
addresses["GasPriceOracle"] = gasPriceOracle.address;
70-
await storeAddresses(addresses, chainIds[network]);
77+
let gasPriceOracle: Contract;
78+
if (!addresses["GasPriceOracle"]) {
79+
gasPriceOracle = await deployContractWithArgs(
80+
"GasPriceOracle",
81+
[socketSigner.address, chainIds[network]],
82+
socketSigner,
83+
"contracts/GasPriceOracle.sol"
84+
);
85+
addresses["GasPriceOracle"] = gasPriceOracle.address;
86+
await storeAddresses(addresses, chainIds[network]);
87+
} else {
88+
gasPriceOracle = await getInstance("GasPriceOracle", addresses["GasPriceOracle"]);
89+
}
7190

72-
const executionManager: Contract = await deployContractWithArgs(
73-
"ExecutionManager",
74-
[gasPriceOracle.address, socketSigner.address],
75-
socketSigner,
76-
"contracts/ExecutionManager.sol"
77-
);
78-
addresses["ExecutionManager"] = executionManager.address;
79-
await storeAddresses(addresses, chainIds[network]);
80-
81-
const transmitManager: Contract = await deployContractWithArgs(
82-
"TransmitManager",
83-
[signatureVerifier.address, gasPriceOracle.address, socketSigner.address, chainIds[network], sealGasLimit[network]],
84-
socketSigner,
85-
"contracts/TransmitManager.sol"
86-
);
87-
addresses["TransmitManager"] = transmitManager.address;
88-
await storeAddresses(addresses, chainIds[network]);
91+
let executionManager: Contract;
92+
if (!addresses["ExecutionManager"]) {
93+
executionManager = await deployContractWithArgs(
94+
"ExecutionManager",
95+
[gasPriceOracle.address, socketSigner.address],
96+
socketSigner,
97+
"contracts/ExecutionManager.sol"
98+
);
99+
addresses["ExecutionManager"] = executionManager.address;
100+
await storeAddresses(addresses, chainIds[network]);
101+
} else {
102+
executionManager = await getInstance("ExecutionManager", addresses["ExecutionManager"]);
103+
}
104+
105+
let transmitManager: Contract;
106+
if (!addresses["TransmitManager"]) {
107+
transmitManager = await deployContractWithArgs(
108+
"TransmitManager",
109+
[signatureVerifier.address, gasPriceOracle.address, socketSigner.address, chainIds[network], sealGasLimit[network]],
110+
socketSigner,
111+
"contracts/TransmitManager.sol"
112+
);
113+
addresses["TransmitManager"] = transmitManager.address;
114+
await storeAddresses(addresses, chainIds[network]);
115+
} else {
116+
transmitManager = await getInstance("TransmitManager", addresses["TransmitManager"]);
117+
}
89118

90-
const tmAddress: string = await gasPriceOracle.transmitManager();
119+
const tmAddress: string = await gasPriceOracle.transmitManager__();
91120
if (tmAddress.toLowerCase() !== (transmitManager.address).toLowerCase()) {
92121
const tx = await gasPriceOracle
93122
.connect(socketSigner)
@@ -99,32 +128,41 @@ export const main = async () => {
99128
const transmitter = transmitterAddress[network];
100129

101130
const grantTransmitterRoleTxn = await transmitManager
102-
.connect(socketSigner)
103-
.grantTransmitterRole(chainIds[network], transmitter);
131+
.connect(socketSigner)
132+
.grantTransmitterRole(chainIds[network], transmitter);
104133

105134
console.log(`Setting transmitter manager in oracle has transactionHash: ${grantTransmitterRoleTxn.hash}`);
106135
await grantTransmitterRoleTxn.wait();
107136
}
108137

109-
const socket: Contract = await deployContractWithArgs(
110-
"Socket",
111-
[
112-
chainIds[network],
113-
hasher.address,
114-
transmitManager.address,
115-
executionManager.address,
116-
capacitorFactory.address,
117-
],
118-
socketSigner,
119-
"contracts/socket/Socket.sol"
120-
);
121-
addresses["Socket"] = socket.address;
122-
await storeAddresses(addresses, chainIds[network]);
123-
138+
let socket: Contract;
139+
if (!addresses["Socket"]) {
140+
socket = await deployContractWithArgs(
141+
"Socket",
142+
[
143+
chainIds[network],
144+
hasher.address,
145+
transmitManager.address,
146+
executionManager.address,
147+
capacitorFactory.address,
148+
],
149+
socketSigner,
150+
"contracts/socket/Socket.sol"
151+
);
152+
addresses["Socket"] = socket.address;
153+
await storeAddresses(addresses, chainIds[network]);
154+
} else {
155+
socket = await getInstance("Socket", addresses["Socket"]);
156+
}
124157
// plug deployments
125-
const counter: Contract = await deployContractWithArgs("Counter", [socket.address], counterSigner, "contracts/examples/Counter.sol");
126-
addresses["Counter"] = counter.address;
127-
await storeAddresses(addresses, chainIds[network]);
158+
let counter: Contract;
159+
if (!addresses["Counter"]) {
160+
counter = await deployContractWithArgs("Counter", [socket.address], counterSigner, "contracts/examples/Counter.sol");
161+
addresses["Counter"] = counter.address;
162+
await storeAddresses(addresses, chainIds[network]);
163+
} else {
164+
socket = await getInstance("Counter", addresses["Counter"]);
165+
}
128166
console.log("Contracts deployed!");
129167

130168
// configure

Diff for: scripts/deploy/scripts/registerSwitchboard.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default async function registerSwitchBoard(
1313
): Promise<ChainSocketAddresses> {
1414
try {
1515
const socket = await getInstance("Socket", config["Socket"]);
16-
let capacitor = await socket._capacitors__(switchBoardAddress, remoteChainSlug);
16+
let capacitor = await socket.capacitors__(switchBoardAddress, remoteChainSlug);
1717

1818
if (capacitor === constants.AddressZero) {
1919
const registerTx = await socket.connect(signer).registerSwitchBoard(
@@ -26,8 +26,8 @@ export default async function registerSwitchBoard(
2626
}
2727

2828
// get capacitor and decapacitor for config
29-
capacitor = await socket._capacitors__(switchBoardAddress, remoteChainSlug);
30-
const decapacitor = await socket._decapacitors__(switchBoardAddress, remoteChainSlug);
29+
capacitor = await socket.capacitors__(switchBoardAddress, remoteChainSlug);
30+
const decapacitor = await socket.decapacitors__(switchBoardAddress, remoteChainSlug);
3131

3232
config = setCapacitorPair(
3333
config,

Diff for: scripts/deploy/switchboards/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ import { switchboards } from "../../constants";
1515
export const getSwitchboardDeployData = (
1616
integrationType, localChain, remoteChain, oracleAddress, signerAddress
1717
) => {
18-
if (integrationType === IntegrationTypes.fastIntegration) {
18+
if (integrationType === IntegrationTypes.fast) {
1919
return fastSwitchboard(localChain, oracleAddress, signerAddress);
20-
} else if (integrationType === IntegrationTypes.optimisticIntegration) {
20+
} else if (integrationType === IntegrationTypes.optimistic) {
2121
return optimisticSwitchboard(localChain, oracleAddress, signerAddress);
22-
} else if (integrationType === IntegrationTypes.nativeIntegration) {
22+
} else if (integrationType === IntegrationTypes.native) {
2323
const switchboardType = switchboards[localChain]?.[remoteChain]?.["switchboard"]
2424
if (switchboardType === NativeSwitchboard.ARBITRUM_L1) {
2525
return arbitrumL1Switchboard(localChain, oracleAddress, signerAddress);

Diff for: scripts/deploy/utils/utils.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ export const verify = async (
5757
const chainId = await getChainId();
5858
if (chainId === 31337) return;
5959

60-
await sleep(20);
61-
console.log(`inside verify contract for contract: ${address} and name: ${path}:${contractName} - with args: ${args}`);
60+
await sleep(30);
6261
await run("verify:verify", {
6362
address,
6463
contract: `${path}:${contractName}`,

0 commit comments

Comments
 (0)