@skalenetwork/upgrade-tools 3.0.0-linter.30 → 3.0.0-linter.32
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,3 +1,4 @@
|
|
|
1
1
|
import { LinkReferences } from "hardhat/types";
|
|
2
|
+
import { NonceProvider } from "./nonceProvider";
|
|
2
3
|
export declare const getLibrariesNames: (linkReferences: LinkReferences) => string[];
|
|
3
|
-
export declare const getContractFactoryAndUpdateManifest: (contract: string) => Promise<import("ethers").ContractFactory>;
|
|
4
|
+
export declare const getContractFactoryAndUpdateManifest: (contract: string, nonceProvider?: NonceProvider) => Promise<import("ethers").ContractFactory>;
|
|
@@ -69,14 +69,14 @@ const getLibrariesToUpgrade = async (manifest, linkReferences) => {
|
|
|
69
69
|
oldLibraries
|
|
70
70
|
};
|
|
71
71
|
};
|
|
72
|
-
const getContractFactoryAndUpdateManifest = async (contract) => {
|
|
72
|
+
const getContractFactoryAndUpdateManifest = async (contract, nonceProvider) => {
|
|
73
73
|
const { linkReferences } = await hardhat_1.artifacts.readArtifact(contract);
|
|
74
74
|
if (!Object.keys(linkReferences).length) {
|
|
75
75
|
return await hardhat_1.ethers.getContractFactory(contract);
|
|
76
76
|
}
|
|
77
77
|
const manifest = await getSkaleManifest();
|
|
78
78
|
const { librariesToUpgrade, oldLibraries } = await getLibrariesToUpgrade(manifest, linkReferences);
|
|
79
|
-
const libraries = await (0, deploy_1.deployLibraries)(librariesToUpgrade);
|
|
79
|
+
const libraries = await (0, deploy_1.deployLibraries)(librariesToUpgrade, nonceProvider);
|
|
80
80
|
await updateManifest(manifest, libraries, oldLibraries);
|
|
81
81
|
return await hardhat_1.ethers.getContractFactory(contract, { "libraries": Object.fromEntries(libraries) });
|
|
82
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractFactory.js","sourceRoot":"","sources":["../../src/contractFactory.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,qCAGkB;
|
|
1
|
+
{"version":3,"file":"contractFactory.js","sourceRoot":"","sources":["../../src/contractFactory.ts"],"names":[],"mappings":"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"}
|
package/dist/src/upgrader.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Instance } from "@skalenetwork/skale-contracts-ethers-v5";
|
|
2
|
+
import { NonceProvider } from "./nonceProvider";
|
|
2
3
|
import { Submitter } from "./submitters/submitter";
|
|
3
4
|
import { UnsignedTransaction } from "ethers";
|
|
4
5
|
interface Project {
|
|
@@ -14,6 +15,7 @@ export declare abstract class Upgrader {
|
|
|
14
15
|
projectName: string;
|
|
15
16
|
transactions: UnsignedTransaction[];
|
|
16
17
|
submitter: Submitter;
|
|
18
|
+
nonceProvider?: NonceProvider;
|
|
17
19
|
constructor(project: Project, submitter?: Submitter);
|
|
18
20
|
abstract getDeployedVersion: () => Promise<string | undefined>;
|
|
19
21
|
abstract setVersion: (newVersion: string) => Promise<void>;
|
package/dist/src/upgrader.js
CHANGED
|
@@ -30,6 +30,7 @@ exports.Upgrader = void 0;
|
|
|
30
30
|
const hardhat_1 = __importStar(require("hardhat"));
|
|
31
31
|
const auto_submitter_1 = require("./submitters/auto-submitter");
|
|
32
32
|
const exitCodes_1 = require("./exitCodes");
|
|
33
|
+
const nonceProvider_1 = require("./nonceProvider");
|
|
33
34
|
const chalk_1 = __importDefault(require("chalk"));
|
|
34
35
|
const fs_1 = require("fs");
|
|
35
36
|
const contractFactory_1 = require("./contractFactory");
|
|
@@ -112,16 +113,44 @@ class Upgrader {
|
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
async deployNewImplementations() {
|
|
115
|
-
const
|
|
116
|
-
|
|
116
|
+
const [deployer] = await hardhat_1.ethers.getSigners();
|
|
117
|
+
this.nonceProvider ?? (this.nonceProvider = await nonceProvider_1.NonceProvider.createForWallet(deployer));
|
|
118
|
+
/*
|
|
119
|
+
* TODO:
|
|
120
|
+
* 1. add explicit nonce in deployNewImplementation
|
|
121
|
+
* 2. replace for loop with Promise.all
|
|
122
|
+
*
|
|
123
|
+
* Const contracts = await Promise.all(this.contractNamesToUpgrade.
|
|
124
|
+
* map(
|
|
125
|
+
* this.deployNewImplementation,
|
|
126
|
+
* this
|
|
127
|
+
* ));
|
|
128
|
+
*/
|
|
129
|
+
const contracts = [];
|
|
130
|
+
for (const contract of this.contractNamesToUpgrade) {
|
|
131
|
+
// eslint-disable-next-line no-await-in-loop
|
|
132
|
+
contracts.push(await this.deployNewImplementation(contract));
|
|
133
|
+
}
|
|
134
|
+
/*
|
|
135
|
+
* TODO: End of TODO
|
|
136
|
+
*/
|
|
117
137
|
return withoutNull(contracts);
|
|
118
138
|
}
|
|
119
139
|
async deployNewImplementation(contract) {
|
|
120
|
-
const contractFactory = await (0, contractFactory_1.getContractFactoryAndUpdateManifest)(contract);
|
|
140
|
+
const contractFactory = await (0, contractFactory_1.getContractFactoryAndUpdateManifest)(contract, this.nonceProvider);
|
|
121
141
|
const proxyAddress = (await this.instance.getContract(contract)).address;
|
|
122
142
|
console.log(`Prepare upgrade of ${contract}`);
|
|
123
143
|
const currentImplementationAddress = await (0, upgrades_core_1.getImplementationAddress)(hardhat_1.network.provider, proxyAddress);
|
|
124
144
|
const newImplementationAddress = await hardhat_1.upgrades.prepareUpgrade(proxyAddress, contractFactory, {
|
|
145
|
+
/*
|
|
146
|
+
* TODO: Add txOverride to explicitly set nonce
|
|
147
|
+
* after updating of @openzeppelin/hardhat-upgrades
|
|
148
|
+
* to version 2.1.0 or newer.
|
|
149
|
+
*
|
|
150
|
+
* "txOverrides": {
|
|
151
|
+
* "nonce": this.nonceProvider?.reserveNonce()
|
|
152
|
+
* },
|
|
153
|
+
*/
|
|
125
154
|
"unsafeAllowLinkedLibraries": true,
|
|
126
155
|
"unsafeAllowRenames": true
|
|
127
156
|
});
|
package/dist/src/upgrader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
|