@skalenetwork/upgrade-tools 3.0.0-linter.37 → 3.0.0-linter.38
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 +16 -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,25 @@ 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
|
+
try {
|
|
117
|
+
return this.deployNewImplementation(contract);
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
this.deploySemaphore.release();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
109
123
|
async deployNewImplementation(contract) {
|
|
110
124
|
const contractFactory = await (0, contractFactory_1.getContractFactoryAndUpdateManifest)(contract, this.nonceProvider);
|
|
111
125
|
const proxyAddress = await (await this.instance.getContract(contract)).getAddress();
|
|
112
126
|
console.log(`Prepare upgrade of ${contract}`);
|
|
113
127
|
const currentImplementationAddress = await (0, upgrades_core_1.getImplementationAddress)(hardhat_1.network.provider, proxyAddress);
|
|
114
128
|
const newImplementationAddress = await hardhat_1.upgrades.prepareUpgrade(proxyAddress, contractFactory, {
|
|
129
|
+
"timeout": deployTimeout,
|
|
115
130
|
"txOverrides": {
|
|
116
131
|
"nonce": this.nonceProvider?.reserveNonce()
|
|
117
132
|
},
|
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":";;;;;;AAAA,+DAA+E;AAC/E,qCAAkD;AAClD,gEAA0D;AAC1D,2CAAuC;AAEvC,mDAA8C;AAE9C,kFAA8C;AAE9C,mCAAmC;AACnC,kDAA0B;AAC1B,2BAAkC;AAClC,uDAAsE;AACtE,uCAAqC;AACrC,iDAAsC;AAgBtC,MAAM,WAAW,GAAG,CAAI,KAAsB,EAAE,EAAE,CAAC,KAAK;IACpD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAa,CAAC;AAEtD,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,gCAAgC;AAChC,MAAM,aAAa,GAAG,IAAI,CAAC;AAG3B,MAAsB,QAAQ;IAiB1B,YACI,OAAgB,EAChB,YAAuB,IAAI,8BAAa,EAAE;QAE1C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC;SACtD;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,+BAAS,CAAC,0BAA0B,CAAC,CAAC;IACrE,CAAC;IAcD,SAAS;IAET,KAAK,CAAC,OAAO;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5C,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEpC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEjE,MAAM,IAAI,CAAC,0BAA0B,CACjC,kBAAkB,EAClB,MAAM,QAAQ,CAAC,aAAa,EAAE,CACjC,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,gBAAgB;QAChB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/C,MAAM,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAE1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa;QACtB,MAAM,QAAQ,GAAG,MAAM,wBAAQ,CAAC,UAAU,CAAC,iBAAO,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;QACD,MAAM,OAAO,GAAG,MAAM,gBAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAe,CAAC;IACjE,CAAC;IAED,UAAU;IAEF,KAAK,CAAC,cAAc;QACxB,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,WAAW,EAAE;YACxC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;SAC3B;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAChC,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,WAAW,EAAE;YAChD,uBAAuB;YACvB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;SACnC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,GAAE,CAAC;QACnC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAE,OAAe;QAC5C,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,aAAE,CAAC,SAAS,CACd,qBAAqB,OAAO,IAAI,iBAAO,CAAC,IAAI,OAAO,EACnD,IAAI,CAAC,SAAS,CACV,IAAI,CAAC,YAAY,EACjB,IAAI,EACJ,WAAW,CACd,CACJ,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAE,kBAAuC;QAChE,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;SACpC;aAAM;YACH,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,qBAAM,EACzD,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,qBAAqB,EAC9B,EAAE,CACL,CAAC,CAAC,CAAC;SACP;IACL,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACpC,kBAAuC,EACvC,UAAsB;QAEtB,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QACxD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE;YACvC,MAAM,WAAW,GACb,kCAAkC,QAAQ,CAAC,IAAI,EAAE;gBACjD,OAAO,QAAQ,CAAC,YAAY,EAAE;gBAC9B,OAAO,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAW,CAAC,IAAI,CAAC;gBACpC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAC3C,SAAS,EACT;oBACI,QAAQ,CAAC,YAAY;oBACrB,QAAQ,CAAC,qBAAqB;iBACjC,CACJ;gBACD,IAAI,EAAE,iBAAiB;aAC1B,CAAC,CAAC,CAAC;SACP;IACL,CAAC;IAEO,KAAK,CAAC,wBAAwB;QAClC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,gBAAM,CAAC,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa,KAAlB,IAAI,CAAC,aAAa,GAAK,MAAM,6BAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAC;QACrE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB;YAC3D,GAAG,CACC,IAAI,CAAC,gCAAgC,EACrC,IAAI,CACP,CAAC,CAAC;QACP,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAAE,QAAgB;QAC5D,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI;YACA,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;SACjD;gBAAS;YACN,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClC;IACL,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAE,QAAgB;QACnD,MAAM,eAAe,GAAG,MAAM,IAAA,qDAAmC,EAC7D,QAAQ,EACR,IAAI,CAAC,aAAa,CACrB,CAAC;QACF,MAAM,YAAY,GAAG,MACb,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QAC9C,MAAM,4BAA4B,GAAG,MAAM,IAAA,wCAAwB,EAC/D,iBAAO,CAAC,QAAQ,EAChB,YAAY,CACf,CAAC;QACF,MAAM,wBAAwB,GAAG,MAAM,kBAAQ,CAAC,cAAc,CAC1D,YAAY,EACZ,eAAe,EACf;YACI,SAAS,EAAE,aAAa;YACxB,aAAa,EAAE;gBACX,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE;aAC9C;YACD,4BAA4B,EAAE,IAAI;YAClC,oBAAoB,EAAE,IAAI;SAC7B,CACM,CAAC;QACZ,IAAI,wBAAwB,KAAK,4BAA4B,EAAE;YAC3D,OAAO;gBACH,uBAAuB,EAAE,wBAAwB;gBACjD,MAAM,EAAE,QAAQ;gBAChB,YAAY;aACf,CAAC;SACL;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,gBAAgB,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,4BAA4B;QACtC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxD,IAAI,eAAe,EAAE;YACjB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAChC,OAAO,GAAG,eAAe,WAAW,CAAC;aACxC;YACD,OAAO,eAAe,CAAC;SAC1B;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,YAAY,CAAE,OAAe;QACvC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAClE,IAAI,eAAe,EAAE;YACjB,IAAI,eAAe,KAAK,IAAI,CAAC,aAAa,EAAE;gBACxC,MAAM,oBAAoB,GACtB,qCAAqC,eAAe,EAAE;oBACtD,OAAO,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,sBAAU,CAAC,WAAW,CAAC,CAAC;aACxC;SACJ;aAAM;YACH,MAAM,kBAAkB,GACpB,6CAA6C,IAAI,CAAC,WAAW,EAAE,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACjD;IACL,CAAC;CACJ;AA7OD,4BA6OC"}
|
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.38",
|
|
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",
|