@skalenetwork/upgrade-tools 3.0.0-update-deploy-lib.1 → 3.0.0-update-deploy-lib.2

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,6 +1,15 @@
1
1
  import { LinkReferences } from "hardhat/types";
2
2
  import { NonceProvider } from "./nonceProvider";
3
- type DeployLibrariesFunc = (libs: string[], nonceProvider?: NonceProvider) => Promise<Map<string, string>>;
3
+ import { SkaleManifestData } from "./types/SkaleManifestData";
4
+ export declare const getSkaleManifest: () => Promise<SkaleManifestData>;
5
+ export declare const updateManifest: (manifest: SkaleManifestData, libraries: Map<string, string>, oldLibraries: {
6
+ [k: string]: string;
7
+ }) => Promise<void>;
4
8
  export declare const getLibrariesNames: (linkReferences: LinkReferences) => string[];
5
- export declare const getContractFactoryAndUpdateManifest: (contract: string, nonceProvider?: NonceProvider, customDeploy?: DeployLibrariesFunc) => Promise<import("ethers").ContractFactory<any[], import("ethers").BaseContract>>;
6
- export {};
9
+ export declare const getLibrariesToUpgrade: (manifest: SkaleManifestData, linkReferences: LinkReferences) => Promise<{
10
+ librariesToUpgrade: string[];
11
+ oldLibraries: {
12
+ [k: string]: string;
13
+ };
14
+ }>;
15
+ export declare const getContractFactoryAndUpdateManifest: (contract: string, nonceProvider?: NonceProvider) => Promise<import("ethers").ContractFactory<any[], import("ethers").BaseContract>>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getContractFactoryAndUpdateManifest = exports.getLibrariesNames = void 0;
3
+ exports.getContractFactoryAndUpdateManifest = exports.getLibrariesToUpgrade = exports.getLibrariesNames = exports.updateManifest = exports.getSkaleManifest = void 0;
4
4
  const hardhat_1 = require("hardhat");
5
5
  const deploy_1 = require("./deploy");
6
6
  const fs_1 = require("fs");
@@ -12,6 +12,7 @@ const getSkaleManifest = async () => {
12
12
  }
13
13
  return manifest;
14
14
  };
15
+ exports.getSkaleManifest = getSkaleManifest;
15
16
  const loadBytesCodes = async (libraryNames) => {
16
17
  const byteCodes = new Map();
17
18
  (await Promise.
@@ -38,6 +39,7 @@ const updateManifest = async (manifest, libraries, oldLibraries) => {
38
39
  const indentation = 4;
39
40
  await fs_1.promises.writeFile(await (0, deploy_1.getManifestFile)(), JSON.stringify(manifest, null, indentation));
40
41
  };
42
+ exports.updateManifest = updateManifest;
41
43
  const getLibrariesNames = (linkReferences) => {
42
44
  const libraryNames = [];
43
45
  for (const libraryFile of Object.values(linkReferences)) {
@@ -69,15 +71,16 @@ const getLibrariesToUpgrade = async (manifest, linkReferences) => {
69
71
  oldLibraries
70
72
  };
71
73
  };
72
- const getContractFactoryAndUpdateManifest = async (contract, nonceProvider, customDeploy = deploy_1.deployLibraries) => {
74
+ exports.getLibrariesToUpgrade = getLibrariesToUpgrade;
75
+ const getContractFactoryAndUpdateManifest = async (contract, nonceProvider) => {
73
76
  const { linkReferences } = await hardhat_1.artifacts.readArtifact(contract);
74
77
  if (!Object.keys(linkReferences).length) {
75
78
  return await hardhat_1.ethers.getContractFactory(contract);
76
79
  }
77
- const manifest = await getSkaleManifest();
78
- const { librariesToUpgrade, oldLibraries } = await getLibrariesToUpgrade(manifest, linkReferences);
79
- const libraries = await customDeploy(librariesToUpgrade, nonceProvider);
80
- await updateManifest(manifest, libraries, oldLibraries);
80
+ const manifest = await (0, exports.getSkaleManifest)();
81
+ const { librariesToUpgrade, oldLibraries } = await (0, exports.getLibrariesToUpgrade)(manifest, linkReferences);
82
+ const libraries = await (0, deploy_1.deployLibraries)(librariesToUpgrade, nonceProvider);
83
+ await (0, exports.updateManifest)(manifest, libraries, oldLibraries);
81
84
  return await hardhat_1.ethers.getContractFactory(contract, { "libraries": Object.fromEntries(libraries) });
82
85
  };
83
86
  exports.getContractFactoryAndUpdateManifest = getContractFactoryAndUpdateManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"contractFactory.js","sourceRoot":"","sources":["../../src/contractFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contractFactory.js","sourceRoot":"","sources":["../../src/contractFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { GethClientStrategy } from "./gethClientStrategy";
2
+ import { JsonRpcProvider } from "ethers";
3
+ export declare enum Client {
4
+ GETH = "geth"
5
+ }
6
+ export declare const clientStrategyFactory: (clientType: Client, provider: JsonRpcProvider) => GethClientStrategy;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clientStrategyFactory = exports.Client = void 0;
4
+ const gethClientStrategy_1 = require("./gethClientStrategy");
5
+ var Client;
6
+ (function (Client) {
7
+ Client["GETH"] = "geth";
8
+ })(Client || (exports.Client = Client = {}));
9
+ const clientStrategyFactory = (clientType, provider) => {
10
+ switch (clientType) {
11
+ case Client.GETH:
12
+ return new gethClientStrategy_1.GethClientStrategy(provider);
13
+ default:
14
+ throw Error(`Unable to create Client ${clientType}`);
15
+ }
16
+ };
17
+ exports.clientStrategyFactory = clientStrategyFactory;
18
+ //# sourceMappingURL=clientStrategyFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientStrategyFactory.js","sourceRoot":"","sources":["../../../../src/migration/clients/clientStrategyFactory.ts"],"names":[],"mappings":";;;AAAA,6DAAwD;AAGxD,IAAY,MAEX;AAFD,WAAY,MAAM;IACd,uBAAa,CAAA;AACjB,CAAC,EAFW,MAAM,sBAAN,MAAM,QAEjB;AAEM,MAAM,qBAAqB,GAAG,CAAC,UAAkB,EAAE,QAAyB,EAAE,EAAE;IACnF,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI;YACZ,OAAO,IAAI,uCAAkB,CAAC,QAAQ,CAAC,CAAC;QAE5C;YACI,MAAM,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC,CAAA;AARY,QAAA,qBAAqB,yBAQjC"}
@@ -0,0 +1,7 @@
1
+ import { IClientStrategy, Slot } from "./iClientStrategy";
2
+ import { JsonRpcProvider } from "ethers";
3
+ export declare class GethClientStrategy implements IClientStrategy {
4
+ private provider;
5
+ constructor(provider: JsonRpcProvider);
6
+ dumpStorageForContract(contractAddress: string, blockHash: string): Promise<Slot[]>;
7
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GethClientStrategy = void 0;
4
+ const iClientStrategy_1 = require("./iClientStrategy");
5
+ const DEFAULT_TX_INDEX = 0;
6
+ const DEFAULT_N_SLOTS_TO_FETCH = 1;
7
+ class GethClientStrategy {
8
+ constructor(provider) {
9
+ this.provider = provider;
10
+ }
11
+ async dumpStorageForContract(contractAddress, blockHash) {
12
+ let hashedKey = iClientStrategy_1.ZERO_KEY;
13
+ const slots = [];
14
+ // eslint-disable-next-line no-constant-condition
15
+ while (hashedKey) {
16
+ // eslint-disable-next-line no-await-in-loop
17
+ const { storage, nextKey } = await this.provider.send('debug_storageRangeAt', [
18
+ blockHash,
19
+ DEFAULT_TX_INDEX,
20
+ contractAddress,
21
+ hashedKey,
22
+ DEFAULT_N_SLOTS_TO_FETCH
23
+ ]);
24
+ // eslint-disable-next-line no-magic-numbers
25
+ const slot = Object.entries(storage)[0][1];
26
+ if (slot.key !== null) {
27
+ slots.push(slot);
28
+ }
29
+ hashedKey = nextKey;
30
+ }
31
+ return slots;
32
+ }
33
+ }
34
+ exports.GethClientStrategy = GethClientStrategy;
35
+ //# sourceMappingURL=gethClientStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gethClientStrategy.js","sourceRoot":"","sources":["../../../../src/migration/clients/gethClientStrategy.ts"],"names":[],"mappings":";;;AAAA,uDAAkE;AAElE,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAEnC,MAAa,kBAAkB;IAG3B,YAAY,QAAyB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,sBAAsB,CACxB,eAAuB,EACvB,SAAiB;QAEjB,IAAI,SAAS,GAAG,0BAAQ,CAAC;QACzB,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,iDAAiD;QACjD,OAAO,SAAS,EAAE,CAAC;YACf,4CAA4C;YAC5C,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC/C,sBAAsB,EACtB;gBACI,SAAS;gBACT,gBAAgB;gBAChB,eAAe;gBACf,SAAS;gBACT,wBAAwB;aAC3B,CACJ,CAAC;YAEF,4CAA4C;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAS,CAAC;YACnD,IAAK,IAAI,CAAC,GAAG,KAAK,IAAI,EAAG,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YACD,SAAS,GAAG,OAAO,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AApCD,gDAoCC"}
@@ -0,0 +1,8 @@
1
+ export type Slot = {
2
+ key: string;
3
+ value: string;
4
+ };
5
+ export declare const ZERO_KEY: string;
6
+ export interface IClientStrategy {
7
+ dumpStorageForContract(contractAddress: string, blockHash: string): Promise<Slot[]>;
8
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZERO_KEY = void 0;
4
+ // eslint-disable-next-line no-magic-numbers
5
+ exports.ZERO_KEY = `0x${"0".repeat(64)}`;
6
+ //# sourceMappingURL=iClientStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iClientStrategy.js","sourceRoot":"","sources":["../../../../src/migration/clients/iClientStrategy.ts"],"names":[],"mappings":";;;AACA,4CAA4C;AAC/B,QAAA,QAAQ,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { IClientStrategy, Slot } from "./clients/iClientStrategy";
2
+ export interface IContractMigrationOptions {
3
+ contractName: string;
4
+ oldAddress: string;
5
+ client: IClientStrategy;
6
+ blockHash: string;
7
+ }
8
+ export declare class ContractMigration {
9
+ contractName: string;
10
+ oldAddress: string;
11
+ newAddress: string | undefined;
12
+ storage: Slot[];
13
+ client: IClientStrategy;
14
+ blockHash: string;
15
+ constructor(options: IContractMigrationOptions);
16
+ init(): Promise<this>;
17
+ dumpStorage(): Promise<Slot[]>;
18
+ migrateData(valuesToUpdate: Map<string, string>): Promise<void>;
19
+ private deployRawStorageSetter;
20
+ upgrade(): Promise<void>;
21
+ verify(): Promise<void>;
22
+ private updateValues;
23
+ private getContractFactoryAndUpdateManifest;
24
+ }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /* eslint-disable no-await-in-loop */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ContractMigration = void 0;
5
+ const hardhat_1 = require("hardhat");
6
+ const contractFactory_1 = require("../contractFactory");
7
+ const ethers_1 = require("ethers");
8
+ const verification_1 = require("../verification");
9
+ // Constant slots defined by EIP-1967 (do not override)
10
+ const IMPL_ADDRESS_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
11
+ const ADMIN_ADDRESS_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
12
+ const ADDRESS_SIZE = 32;
13
+ const deployLibraries = async (libraryNames) => {
14
+ const libraries = new Map();
15
+ for (const lib of libraryNames) {
16
+ const Library = await hardhat_1.ethers.getContractFactory(lib);
17
+ const library = await Library.
18
+ deploy();
19
+ await library.waitForDeployment();
20
+ const address = await library.getAddress();
21
+ libraries.set(lib, address);
22
+ }
23
+ return libraries;
24
+ };
25
+ class ContractMigration {
26
+ constructor(options) {
27
+ this.storage = [];
28
+ this.contractName = options.contractName;
29
+ this.oldAddress = options.oldAddress;
30
+ this.client = options.client;
31
+ this.blockHash = options.blockHash;
32
+ }
33
+ async init() {
34
+ await this.deployRawStorageSetter();
35
+ return this;
36
+ }
37
+ async dumpStorage() {
38
+ this.storage = await this.client.dumpStorageForContract(this.oldAddress, this.blockHash);
39
+ console.log("Found", this.storage.length, "entries for", this.contractName);
40
+ return this.storage;
41
+ }
42
+ async migrateData(valuesToUpdate) {
43
+ this.updateValues(valuesToUpdate);
44
+ const storageSetter = await hardhat_1.ethers.getContractAt("RawStorageSetter", this.newAddress);
45
+ for (const { key, value } of this.storage) {
46
+ if (key !== IMPL_ADDRESS_SLOT && key !== ADMIN_ADDRESS_SLOT) {
47
+ const tx = await storageSetter.setStorage(key, value);
48
+ await tx.wait();
49
+ }
50
+ }
51
+ console.log(`finished migrating data of: ${this.contractName}`);
52
+ }
53
+ async deployRawStorageSetter() {
54
+ const rawStorageSetter = await hardhat_1.ethers.getContractFactory("RawStorageSetter");
55
+ const contractProxy = await hardhat_1.upgrades.deployProxy(rawStorageSetter, []);
56
+ await contractProxy.waitForDeployment();
57
+ this.newAddress = await (0, ethers_1.resolveAddress)(contractProxy);
58
+ console.log("Deployed new proxy for", this.contractName, "at", this.newAddress);
59
+ }
60
+ async upgrade() {
61
+ const realContractFactory = await this.getContractFactoryAndUpdateManifest();
62
+ await hardhat_1.upgrades.upgradeProxy(this.newAddress, realContractFactory, {
63
+ unsafeAllowLinkedLibraries: true
64
+ });
65
+ console.log("Upgraded", this.contractName);
66
+ }
67
+ async verify() {
68
+ // TODO: check
69
+ await (0, verification_1.verifyProxy)(this.contractName, this.newAddress, []);
70
+ }
71
+ updateValues(valuesToUpdate) {
72
+ const filteredSlots = [];
73
+ for (const slot of this.storage) {
74
+ for (const [oldVal, newVal] of valuesToUpdate.entries()) {
75
+ /*
76
+ * For each place where the slot value corresponded to the contract address in the old chain
77
+ * Replace with the address of the New deployment
78
+ */
79
+ if (slot.value === (0, ethers_1.zeroPadValue)(oldVal, ADDRESS_SIZE)) {
80
+ slot.value = (0, ethers_1.zeroPadValue)(newVal, ADDRESS_SIZE);
81
+ }
82
+ }
83
+ filteredSlots.push(slot);
84
+ }
85
+ this.storage = filteredSlots;
86
+ }
87
+ async getContractFactoryAndUpdateManifest() {
88
+ const { linkReferences } = await hardhat_1.artifacts.readArtifact(this.contractName);
89
+ if (!Object.keys(linkReferences).length) {
90
+ return await hardhat_1.ethers.getContractFactory(this.contractName);
91
+ }
92
+ const manifest = await (0, contractFactory_1.getSkaleManifest)();
93
+ const { librariesToUpgrade, oldLibraries } = await (0, contractFactory_1.getLibrariesToUpgrade)(manifest, linkReferences);
94
+ const libraries = await deployLibraries(librariesToUpgrade);
95
+ await (0, contractFactory_1.updateManifest)(manifest, libraries, oldLibraries);
96
+ return await hardhat_1.ethers.getContractFactory(this.contractName, { "libraries": Object.fromEntries(libraries) });
97
+ }
98
+ }
99
+ exports.ContractMigration = ContractMigration;
100
+ //# sourceMappingURL=contractMigration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractMigration.js","sourceRoot":"","sources":["../../../src/migration/contractMigration.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAIrC,qCAAoD;AACpD,wDAA2F;AAC3F,mCAAoD;AACpD,kDAA4C;AAK5C,uDAAuD;AACvD,MAAM,iBAAiB,GAAG,oEAAoE,CAAC;AAC/F,MAAM,kBAAkB,GAAG,oEAAoE,CAAC;AAChG,MAAM,YAAY,GAAG,EAAE,CAAC;AASxB,MAAM,eAAe,GAAG,KAAK,EACzB,YAAsB,EACxB,EAAE;IACA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,gBAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,OAAO;YACzB,MAAM,EAAE,CAAC;QACb,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3C,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA;AAED,MAAa,iBAAiB;IAQ1B,YAAY,OAAkC;QAJvC,YAAO,GAAW,EAAE,CAAC;QAKxB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,WAAW;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,cAAmC;QACxD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,gBAAM,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAoB,CAAC,CAAC;QAChG,KAAK,MAAM,EAAC,GAAG,EAAE,KAAK,EAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;gBAC1D,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACtD,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAChC,MAAM,gBAAgB,GAAG,MAAM,gBAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,MAAM,kBAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAEvE,MAAM,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAExC,IAAI,CAAC,UAAU,GAAG,MAAM,IAAA,uBAAc,EAAC,aAAa,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpF,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,mCAAmC,EAAE,CAAC;QAE7E,MAAM,kBAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAoB,EAAE,mBAAmB,EAAE;YACxE,0BAA0B,EAAE,IAAI;SACnC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,cAAc;QACd,MAAM,IAAA,0BAAW,EAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAoB,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAEO,YAAY,CAAC,cAAmC;QACpD,MAAM,aAAa,GAAG,EAAE,CAAA;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAC,CAAC;gBACrD;;;mBAGG;gBACH,IAAI,IAAI,CAAC,KAAK,KAAK,IAAA,qBAAY,EAAC,MAAM,EAAE,YAAY,CAAC,EAAC,CAAC;oBACnD,IAAI,CAAC,KAAK,GAAG,IAAA,qBAAY,EAAC,MAAgB,EAAE,YAAY,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,mCAAmC;QAC7C,MAAM,EAAC,cAAc,EAAC,GAAG,MAAM,mBAAS,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,MAAM,gBAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,kCAAgB,GAAE,CAAC;QAE1C,MAAM,EACF,kBAAkB,EAClB,YAAY,EACf,GAAG,MAAM,IAAA,uCAAqB,EAC3B,QAAQ,EACR,cAAc,CACjB,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,eAAe,CACnC,kBAAkB,CACrB,CAAC;QACF,MAAM,IAAA,gCAAc,EAChB,QAAQ,EACR,SAAS,EACT,YAAY,CACf,CAAC;QACF,OAAO,MAAM,gBAAM,CAAC,kBAAkB,CAClC,IAAI,CAAC,YAAY,EACjB,EAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAAC,CAC/C,CAAC;IACN,CAAC;CACJ;AA7GD,8CA6GC"}
@@ -0,0 +1,23 @@
1
+ import { Client } from "./clients/clientStrategyFactory";
2
+ import { ContractMigration } from "./contractMigration";
3
+ import { JsonRpcProvider } from "ethers";
4
+ import { Project } from "../types/upgrader";
5
+ export interface IMigratorOptions {
6
+ blockHash: string;
7
+ migrations: ContractMigration[];
8
+ valuesToReplace?: Map<string, string>;
9
+ }
10
+ export declare class Migrator {
11
+ private migrations;
12
+ private blockHash;
13
+ private valuesToReplace;
14
+ constructor(options: IMigratorOptions);
15
+ static createFromProject(project: Project, provider: JsonRpcProvider, clientType?: Client): Promise<Migrator>;
16
+ setDefaultValuesToUpdate(): void;
17
+ addValueToUpdate(oldValue: string, newValue: string): void;
18
+ upgrade(): Promise<void>;
19
+ migrateData(): Promise<void>;
20
+ dumpStorage(): Promise<void>;
21
+ init(): Promise<void>;
22
+ getContractNewAddress(name: string): string | undefined;
23
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migrator = void 0;
4
+ /* eslint-disable no-await-in-loop */
5
+ const clientStrategyFactory_1 = require("./clients/clientStrategyFactory");
6
+ const contractMigration_1 = require("./contractMigration");
7
+ class Migrator {
8
+ constructor(options) {
9
+ this.migrations = [];
10
+ this.blockHash = options.blockHash;
11
+ this.migrations = options.migrations;
12
+ this.valuesToReplace = options.valuesToReplace ?? new Map();
13
+ }
14
+ static async createFromProject(project, provider, clientType = clientStrategyFactory_1.Client.GETH) {
15
+ const client = (0, clientStrategyFactory_1.clientStrategyFactory)(clientType, provider);
16
+ const blockHash = (await provider.getBlock("latest"))?.hash;
17
+ if (!blockHash) {
18
+ throw Error("Unable to get blockHash for latest block");
19
+ }
20
+ const migrations = [];
21
+ for (const contract of project.contractNamesToUpgrade) {
22
+ const address = await project.instance.getContractAddress(contract);
23
+ const migrationOptions = {
24
+ blockHash,
25
+ client,
26
+ contractName: contract,
27
+ oldAddress: address,
28
+ };
29
+ const migration = new contractMigration_1.ContractMigration(migrationOptions);
30
+ migrations.push(migration);
31
+ }
32
+ return new Migrator({ blockHash, migrations });
33
+ }
34
+ setDefaultValuesToUpdate() {
35
+ /*
36
+ * By default, values that contain contract addresses from old instance
37
+ * must be replaced by the addresses on the new instance
38
+ */
39
+ for (const migration of this.migrations) {
40
+ if (migration.newAddress) {
41
+ this.addValueToUpdate(migration.oldAddress, migration.newAddress);
42
+ }
43
+ }
44
+ }
45
+ addValueToUpdate(oldValue, newValue) {
46
+ this.valuesToReplace.set(oldValue, newValue);
47
+ }
48
+ async upgrade() {
49
+ for (const migration of this.migrations) {
50
+ await migration.upgrade();
51
+ // A await migration.verify(); - Skip for now
52
+ }
53
+ }
54
+ async migrateData() {
55
+ for (const migration of this.migrations) {
56
+ await migration.migrateData(this.valuesToReplace);
57
+ }
58
+ }
59
+ async dumpStorage() {
60
+ await Promise.all(this.migrations.map(migration => migration.dumpStorage()));
61
+ }
62
+ async init() {
63
+ for (const migration of this.migrations) {
64
+ await migration.init();
65
+ }
66
+ }
67
+ getContractNewAddress(name) {
68
+ const migration = this.migrations.find(mig => mig.contractName === name);
69
+ return migration?.newAddress;
70
+ }
71
+ }
72
+ exports.Migrator = Migrator;
73
+ //# sourceMappingURL=migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/migration/migrator.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,2EAA8E;AAC9E,2DAAiF;AAUjF,MAAa,QAAQ;IAKjB,YAAY,OAAyB;QAJ7B,eAAU,GAAwB,EAAE,CAAC;QAKzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,GAAG,EAAkB,CAAC;IAChF,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAG1B,OAAgB,EAChB,QAAyB,EACzB,aAAqB,8BAAM,CAAC,IAAI;QAEhC,MAAM,MAAM,GAAG,IAAA,6CAAqB,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,UAAU,GAAwB,EAAE,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,gBAAgB,GAA8B;gBAChD,SAAS;gBACT,MAAM;gBACN,YAAY,EAAE,QAAQ;gBACtB,UAAU,EAAE,OAAO;aACtB,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,qCAAiB,CAAC,gBAAgB,CAAC,CAAC;YAC1D,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,EAAC,SAAS,EAAE,UAAU,EAAC,CAAC,CAAC;IACjD,CAAC;IAED,wBAAwB;QACpB;;;WAGG;QACH,KAAI,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAC,CAAC;YACpC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QAC/C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,OAAO;QACT,KAAI,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAE1B,6CAA6C;QACjD,CAAC;IACL,CAAC;IACD,KAAK,CAAC,WAAW;QACb,KAAI,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACb,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,KAAK,CAAC,IAAI;QACN,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAC,CAAC;YACrC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,IAAY;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;QACzE,OAAO,SAAS,EAAE,UAAU,CAAC;IACjC,CAAC;CACJ;AA/ED,4BA+EC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skalenetwork/upgrade-tools",
3
- "version": "3.0.0-update-deploy-lib.1",
3
+ "version": "3.0.0-update-deploy-lib.2",
4
4
  "description": "Scripts to support upgrades of smart contracts",
5
5
  "files": [
6
6
  "dist/**/*"