@skalenetwork/upgrade-tools 3.0.0-linter.40 → 3.0.0-linter.42
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.
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Signer } from "ethers";
|
|
2
2
|
export declare class NonceProvider {
|
|
3
3
|
currentNonce: number;
|
|
4
|
+
releasedNonces: number[];
|
|
4
5
|
constructor(nonce: number);
|
|
5
6
|
static createForWallet(signer: Signer): Promise<NonceProvider>;
|
|
6
|
-
reserveNonce(): number;
|
|
7
|
+
reserveNonce(): number | undefined;
|
|
8
|
+
releaseNonce(nonce: number): void;
|
|
9
|
+
private static next;
|
|
7
10
|
}
|
|
@@ -4,14 +4,30 @@ exports.NonceProvider = void 0;
|
|
|
4
4
|
class NonceProvider {
|
|
5
5
|
constructor(nonce) {
|
|
6
6
|
this.currentNonce = nonce;
|
|
7
|
+
this.releasedNonces = [];
|
|
7
8
|
}
|
|
8
9
|
static async createForWallet(signer) {
|
|
9
10
|
return new NonceProvider(await signer.getNonce());
|
|
10
11
|
}
|
|
11
12
|
reserveNonce() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
if (!this.releasedNonces) {
|
|
14
|
+
const nonce = this.currentNonce;
|
|
15
|
+
this.currentNonce += 1;
|
|
16
|
+
return nonce;
|
|
17
|
+
}
|
|
18
|
+
return this.releasedNonces.shift();
|
|
19
|
+
}
|
|
20
|
+
releaseNonce(nonce) {
|
|
21
|
+
if (NonceProvider.next(nonce) === this.currentNonce) {
|
|
22
|
+
this.currentNonce -= 1;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.releasedNonces.push(nonce);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
static next(nonce) {
|
|
29
|
+
const nextDiff = 1;
|
|
30
|
+
return nonce + nextDiff;
|
|
15
31
|
}
|
|
16
32
|
}
|
|
17
33
|
exports.NonceProvider = NonceProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonceProvider.js","sourceRoot":"","sources":["../../src/nonceProvider.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"nonceProvider.js","sourceRoot":"","sources":["../../src/nonceProvider.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAItB,YAAa,KAAa;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAE,MAAc;QACxC,OAAO,IAAI,aAAa,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,YAAY,CAAE,KAAa;QACvB,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;SAC1B;aAAM;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;IACL,CAAC;IAEO,MAAM,CAAC,IAAI,CAAE,KAAa;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,OAAO,KAAK,GAAG,QAAQ,CAAC;IAC5B,CAAC;CACJ;AAlCD,sCAkCC"}
|
package/dist/src/upgrader.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { Transaction } from "ethers";
|
|
1
2
|
import { Instance } from "@skalenetwork/skale-contracts-ethers-v6";
|
|
2
3
|
import { NonceProvider } from "./nonceProvider";
|
|
3
4
|
import { ProxyAdmin } from "../typechain-types";
|
|
4
5
|
import Semaphore from 'semaphore-async-await';
|
|
5
6
|
import { Submitter } from "./submitters/submitter";
|
|
6
|
-
import { Transaction } from "ethers";
|
|
7
7
|
interface Project {
|
|
8
8
|
name: string;
|
|
9
9
|
instance: Instance;
|
|
@@ -35,6 +35,7 @@ export declare abstract class Upgrader {
|
|
|
35
35
|
private deployNewImplementations;
|
|
36
36
|
private protectedDeployNewImplementation;
|
|
37
37
|
private deployNewImplementation;
|
|
38
|
+
private prepareUpgrade;
|
|
38
39
|
private getNormalizedDeployedVersion;
|
|
39
40
|
private checkVersion;
|
|
40
41
|
}
|
package/dist/src/upgrader.js
CHANGED
|
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Upgrader = void 0;
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
7
8
|
const upgrades_core_1 = require("@openzeppelin/upgrades-core");
|
|
8
9
|
const hardhat_1 = require("hardhat");
|
|
9
10
|
const auto_submitter_1 = require("./submitters/auto-submitter");
|
|
10
11
|
const exitCodes_1 = require("./exitCodes");
|
|
11
12
|
const nonceProvider_1 = require("./nonceProvider");
|
|
12
13
|
const semaphore_async_await_1 = __importDefault(require("semaphore-async-await"));
|
|
13
|
-
const ethers_1 = require("ethers");
|
|
14
14
|
const chalk_1 = __importDefault(require("chalk"));
|
|
15
15
|
const fs_1 = require("fs");
|
|
16
16
|
const contractFactory_1 = require("./contractFactory");
|
|
@@ -18,7 +18,8 @@ const version_1 = require("./version");
|
|
|
18
18
|
const verification_1 = require("./verification");
|
|
19
19
|
const withoutNull = (array) => array.
|
|
20
20
|
filter((element) => element !== null);
|
|
21
|
-
|
|
21
|
+
// TODO: Set to 8 when upgrade plugins become thread safe
|
|
22
|
+
const maxSimultaneousDeployments = 1;
|
|
22
23
|
// 10 minutes
|
|
23
24
|
const deployTimeout = 60e4;
|
|
24
25
|
class Upgrader {
|
|
@@ -126,11 +127,15 @@ class Upgrader {
|
|
|
126
127
|
const contractFactory = await (0, contractFactory_1.getContractFactoryAndUpdateManifest)(contract, this.nonceProvider);
|
|
127
128
|
const proxyAddress = await (await this.instance.getContract(contract)).getAddress();
|
|
128
129
|
console.log(`Prepare upgrade of ${contract}`);
|
|
130
|
+
return this.prepareUpgrade(contract, proxyAddress, contractFactory);
|
|
131
|
+
}
|
|
132
|
+
async prepareUpgrade(contractName, proxyAddress, contractFactory) {
|
|
129
133
|
const currentImplementationAddress = await (0, upgrades_core_1.getImplementationAddress)(hardhat_1.network.provider, proxyAddress);
|
|
134
|
+
const nonce = this.nonceProvider?.reserveNonce();
|
|
130
135
|
const newImplementationAddress = await hardhat_1.upgrades.prepareUpgrade(proxyAddress, contractFactory, {
|
|
131
136
|
"timeout": deployTimeout,
|
|
132
137
|
"txOverrides": {
|
|
133
|
-
|
|
138
|
+
nonce
|
|
134
139
|
},
|
|
135
140
|
"unsafeAllowLinkedLibraries": true,
|
|
136
141
|
"unsafeAllowRenames": true
|
|
@@ -138,11 +143,14 @@ class Upgrader {
|
|
|
138
143
|
if (newImplementationAddress !== currentImplementationAddress) {
|
|
139
144
|
return {
|
|
140
145
|
"implementationAddress": newImplementationAddress,
|
|
141
|
-
"name":
|
|
146
|
+
"name": contractName,
|
|
142
147
|
proxyAddress
|
|
143
148
|
};
|
|
144
149
|
}
|
|
145
|
-
console.log(chalk_1.default.gray(`Contract ${
|
|
150
|
+
console.log(chalk_1.default.gray(`Contract ${contractName} is up to date`));
|
|
151
|
+
if (nonce) {
|
|
152
|
+
this.nonceProvider?.releaseNonce(nonce);
|
|
153
|
+
}
|
|
146
154
|
return null;
|
|
147
155
|
}
|
|
148
156
|
async getNormalizedDeployedVersion() {
|
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;AAE9C,kFAA8C;AAE9C,
|
|
1
|
+
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
|