@skalenetwork/upgrade-tools 3.0.0-linter.37 → 3.0.0-linter.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/upgrader.d.ts +3 -0
- package/dist/src/upgrader.js +18 -1
- package/dist/src/upgrader.js.map +1 -1
- package/package.json +3 -2
package/dist/src/upgrader.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Instance } from "@skalenetwork/skale-contracts-ethers-v6";
|
|
2
2
|
import { NonceProvider } from "./nonceProvider";
|
|
3
3
|
import { ProxyAdmin } from "../typechain-types";
|
|
4
|
+
import Semaphore from 'semaphore-async-await';
|
|
4
5
|
import { Submitter } from "./submitters/submitter";
|
|
5
6
|
import { Transaction } from "ethers";
|
|
6
7
|
interface Project {
|
|
@@ -17,6 +18,7 @@ export declare abstract class Upgrader {
|
|
|
17
18
|
transactions: Transaction[];
|
|
18
19
|
submitter: Submitter;
|
|
19
20
|
nonceProvider?: NonceProvider;
|
|
21
|
+
deploySemaphore: Semaphore;
|
|
20
22
|
constructor(project: Project, submitter?: Submitter);
|
|
21
23
|
abstract getDeployedVersion: () => Promise<string | undefined>;
|
|
22
24
|
abstract setVersion: (newVersion: string) => Promise<void>;
|
|
@@ -31,6 +33,7 @@ export declare abstract class Upgrader {
|
|
|
31
33
|
private static verify;
|
|
32
34
|
private switchToNewImplementations;
|
|
33
35
|
private deployNewImplementations;
|
|
36
|
+
private protectedDeployNewImplementation;
|
|
34
37
|
private deployNewImplementation;
|
|
35
38
|
private getNormalizedDeployedVersion;
|
|
36
39
|
private checkVersion;
|
package/dist/src/upgrader.js
CHANGED
|
@@ -9,6 +9,7 @@ const hardhat_1 = require("hardhat");
|
|
|
9
9
|
const auto_submitter_1 = require("./submitters/auto-submitter");
|
|
10
10
|
const exitCodes_1 = require("./exitCodes");
|
|
11
11
|
const nonceProvider_1 = require("./nonceProvider");
|
|
12
|
+
const semaphore_async_await_1 = __importDefault(require("semaphore-async-await"));
|
|
12
13
|
const ethers_1 = require("ethers");
|
|
13
14
|
const chalk_1 = __importDefault(require("chalk"));
|
|
14
15
|
const fs_1 = require("fs");
|
|
@@ -17,6 +18,9 @@ const version_1 = require("./version");
|
|
|
17
18
|
const verification_1 = require("./verification");
|
|
18
19
|
const withoutNull = (array) => array.
|
|
19
20
|
filter((element) => element !== null);
|
|
21
|
+
const maxSimultaneousDeployments = 10;
|
|
22
|
+
// 10 minutes
|
|
23
|
+
const deployTimeout = 60e4;
|
|
20
24
|
class Upgrader {
|
|
21
25
|
constructor(project, submitter = new auto_submitter_1.AutoSubmitter()) {
|
|
22
26
|
this.targetVersion = project.version;
|
|
@@ -28,6 +32,7 @@ class Upgrader {
|
|
|
28
32
|
this.projectName = project.name;
|
|
29
33
|
this.transactions = [];
|
|
30
34
|
this.submitter = submitter;
|
|
35
|
+
this.deploySemaphore = new semaphore_async_await_1.default(maxSimultaneousDeployments);
|
|
31
36
|
}
|
|
32
37
|
// Public
|
|
33
38
|
async upgrade() {
|
|
@@ -103,15 +108,27 @@ class Upgrader {
|
|
|
103
108
|
const [deployer] = await hardhat_1.ethers.getSigners();
|
|
104
109
|
this.nonceProvider ?? (this.nonceProvider = await nonceProvider_1.NonceProvider.createForWallet(deployer));
|
|
105
110
|
const contracts = await Promise.all(this.contractNamesToUpgrade.
|
|
106
|
-
map(this.
|
|
111
|
+
map(this.protectedDeployNewImplementation, this));
|
|
107
112
|
return withoutNull(contracts);
|
|
108
113
|
}
|
|
114
|
+
async protectedDeployNewImplementation(contract) {
|
|
115
|
+
await this.deploySemaphore.acquire();
|
|
116
|
+
let result = null;
|
|
117
|
+
try {
|
|
118
|
+
result = await this.deployNewImplementation(contract);
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
this.deploySemaphore.release();
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
109
125
|
async deployNewImplementation(contract) {
|
|
110
126
|
const contractFactory = await (0, contractFactory_1.getContractFactoryAndUpdateManifest)(contract, this.nonceProvider);
|
|
111
127
|
const proxyAddress = await (await this.instance.getContract(contract)).getAddress();
|
|
112
128
|
console.log(`Prepare upgrade of ${contract}`);
|
|
113
129
|
const currentImplementationAddress = await (0, upgrades_core_1.getImplementationAddress)(hardhat_1.network.provider, proxyAddress);
|
|
114
130
|
const newImplementationAddress = await hardhat_1.upgrades.prepareUpgrade(proxyAddress, contractFactory, {
|
|
131
|
+
"timeout": deployTimeout,
|
|
115
132
|
"txOverrides": {
|
|
116
133
|
"nonce": this.nonceProvider?.reserveNonce()
|
|
117
134
|
},
|
package/dist/src/upgrader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":";;;;;;AAAA,+DAA+E;AAC/E,qCAAkD;AAClD,gEAA0D;AAC1D,2CAAuC;AAEvC,mDAA8C;
|
|
1
|
+
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skalenetwork/upgrade-tools",
|
|
3
|
-
"version": "3.0.0-linter.
|
|
3
|
+
"version": "3.0.0-linter.39",
|
|
4
4
|
"description": "Scripts to support upgrades of smart contracts",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**/*"
|
|
@@ -43,7 +43,8 @@
|
|
|
43
43
|
"@safe-global/safe-core-sdk-types": "^5.0.1",
|
|
44
44
|
"@skalenetwork/skale-contracts-ethers-v6": "^1.0.0",
|
|
45
45
|
"axios": "^1.4.0",
|
|
46
|
-
"ethereumjs-util": "^7.1.4"
|
|
46
|
+
"ethereumjs-util": "^7.1.4",
|
|
47
|
+
"semaphore-async-await": "^1.5.1"
|
|
47
48
|
},
|
|
48
49
|
"peerDependencies": {
|
|
49
50
|
"@nomicfoundation/hardhat-ethers": "^3.0.0",
|