Skip to content

Commit 29b11a3

Browse files
committed
Update deploy/verify script
1 parent 827df4b commit 29b11a3

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

scripts/deploy-upgrade.v1.4.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,18 @@ async function deployUpgrade(rocketStorageAddress) {
113113
const deployedContracts = {};
114114
const contractPlan = {};
115115

116+
const deployTxs = []
117+
118+
// Construct ABI for rocketMegapool
119+
const rocketMegapoolAbi = []
120+
.concat(artifacts.require('RocketMegapoolDelegate').abi)
121+
.concat(artifacts.require('RocketMegapoolDelegateBase').abi)
122+
.concat(artifacts.require('RocketMegapoolProxy').abi)
123+
.filter(i => i.type !== 'fallback' && i.type !== 'receive');
124+
125+
rocketMegapoolAbi.push({ stateMutability: 'payable', type: 'fallback'});
126+
rocketMegapoolAbi.push({ stateMutability: 'payable', type: 'receive'});
127+
116128
async function deployNetworkContract(name) {
117129
const plan = contractPlan[name];
118130
if (!plan) {
@@ -146,6 +158,8 @@ async function deployUpgrade(rocketStorageAddress) {
146158
address: address,
147159
instance: instance,
148160
};
161+
162+
deployTxs.push(rsTx);
149163
}
150164

151165
// Setup contract plan
@@ -192,6 +206,9 @@ async function deployUpgrade(rocketStorageAddress) {
192206
// Deploy upgrade
193207
await deployNetworkContract('RocketUpgradeOneDotFour');
194208

209+
// Wait for all contract to be deployed
210+
await Promise.all(deployTxs.map(deployTx => deployTx.wait()))
211+
195212
// Set
196213
const upgradeContract = deployedContracts['RocketUpgradeOneDotFour'].instance;
197214
const setAddressesA = [
@@ -271,6 +288,7 @@ async function deployUpgrade(rocketStorageAddress) {
271288
compressABI(networkContracts.rocketMegapoolPenalties.abi),
272289
compressABI(networkContracts.rocketNetworkSnapshotsTime.abi),
273290
compressABI(networkContracts.rocketDAOProtocolSettingsProposals.abi),
291+
compressABI(rocketMegapoolAbi),
274292
];
275293
await upgradeContract.connect(signer).setA(setAddressesA, setAbisA);
276294
await upgradeContract.connect(signer).setB(setAddressesB, setAbisB);
@@ -383,6 +401,7 @@ async function verify() {
383401
const status = await verifier.getVerificationStatus(verificationResults[contract]);
384402
console.log(` - ${contract}: ${status.result}`);
385403
}
404+
await new Promise(resolve => setTimeout(resolve, 500));
386405
}
387406

388407
console.log();

test/_helpers/verify.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@ const defaultOpts = {
4343
preamble: '',
4444
};
4545

46-
const endpointMap = {
47-
'mainnet': 'https://api.etherscan.io/api',
48-
'hoodi': 'https://api-hoodi.etherscan.io/api',
46+
const endpoint = 'https://api.etherscan.io/v2/api'
47+
48+
const chainIdMap = {
49+
'mainnet': '1',
50+
'hoodi': '560048',
4951
};
5052

5153
export class EtherscanVerifier {
@@ -74,6 +76,8 @@ export class EtherscanVerifier {
7476

7577
for (const contract of contracts) {
7678
results[contract.contractName] = await this.verify(contract.buildInfoId, contract.sourceName, contract.contractName, contract.address, contract.constructorArgs);
79+
// Avoid Etherscans 3/s rate limit
80+
await new Promise(resolve => setTimeout(resolve, 500));
7781
}
7882

7983
return results;
@@ -149,14 +153,12 @@ export class EtherscanVerifier {
149153
}
150154

151155
async getVerificationStatus(guid) {
152-
const apiEndpoint = endpointMap[this.opts.chain];
153-
const result = await axios.get(`${apiEndpoint}?module=contract&action=checkverifystatus&apikey=${this.opts.apiKey}&guid=${guid}`);
156+
const result = await axios.get(`${endpoint}?chainid=${chainIdMap[this.opts.chain]}&module=contract&action=checkverifystatus&apikey=${this.opts.apiKey}&guid=${guid}`);
154157
return result.data;
155158
}
156159

157160
async isVerified(address) {
158-
const apiEndpoint = endpointMap[this.opts.chain];
159-
const result = await axios.get(`${apiEndpoint}?module=contract&action=getabi&apikey=${this.opts.apiKey}&address=${address}`);
161+
const result = await axios.get(`${endpoint}?chainid=${chainIdMap[this.opts.chain]}&module=contract&action=getabi&apikey=${this.opts.apiKey}&address=${address}`);
160162
return result.data.status !== '0';
161163
}
162164

@@ -207,7 +209,7 @@ export class EtherscanVerifier {
207209

208210
// Submit to API
209211
const formData = querystring.stringify(payload);
210-
const result = await axios.post(endpointMap[this.opts.chain], formData);
212+
const result = await axios.post(`${endpoint}?chainid=${chainIdMap[this.opts.chain]}`, formData);
211213

212214
// Check result
213215
if (result.data.status !== '1') {

0 commit comments

Comments
 (0)