@skalenetwork/upgrade-tools 3.0.0-update-deploy-lib.5 → 3.0.0-update-deploy-lib.7
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.
|
@@ -43,35 +43,23 @@ class ContractMigration {
|
|
|
43
43
|
async migrateData(valuesToUpdate) {
|
|
44
44
|
this.updateValues(valuesToUpdate);
|
|
45
45
|
const storageSetter = await hardhat_1.ethers.getContractAt("RawStorageSetter", this.newAddress);
|
|
46
|
+
const receipts = [];
|
|
47
|
+
let retries = 1;
|
|
46
48
|
for (const { key, value } of this.storage) {
|
|
47
49
|
if (key !== IMPL_ADDRESS_SLOT && key !== ADMIN_ADDRESS_SLOT) {
|
|
48
|
-
|
|
49
|
-
let retries = 0;
|
|
50
|
+
const tx = await storageSetter.setStorage(key, value);
|
|
50
51
|
// eslint-disable-next-line no-magic-numbers
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
catch (exception) {
|
|
58
|
-
// eslint-disable-next-line no-plusplus
|
|
59
|
-
++retries;
|
|
60
|
-
const dropped = await tx.provider.getTransaction(tx.hash);
|
|
61
|
-
// eslint-disable-next-line max-depth, no-negated-condition
|
|
62
|
-
if (!dropped) {
|
|
63
|
-
console.log("Transaction was dropped from the mempool. Restarting");
|
|
64
|
-
tx = await storageSetter.setStorage(key, value);
|
|
65
|
-
// eslint-disable-next-line no-magic-numbers
|
|
66
|
-
retries = 0;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
console.log(`Timeout? -> Attempt ${retries}...`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
52
|
+
receipts.push(tx.wait(1, 180000));
|
|
53
|
+
// eslint-disable-next-line no-magic-numbers
|
|
54
|
+
if (retries % 5 === 0) {
|
|
55
|
+
await Promise.all(receipts);
|
|
56
|
+
receipts.length = 0;
|
|
72
57
|
}
|
|
58
|
+
// eslint-disable-next-line no-plusplus
|
|
59
|
+
retries++;
|
|
73
60
|
}
|
|
74
61
|
}
|
|
62
|
+
await Promise.all(receipts);
|
|
75
63
|
console.log(`finished migrating data of: ${this.contractName}`);
|
|
76
64
|
}
|
|
77
65
|
async deployRawStorageSetter() {
|
|
@@ -90,7 +78,13 @@ class ContractMigration {
|
|
|
90
78
|
}
|
|
91
79
|
async verify() {
|
|
92
80
|
// TODO: check
|
|
93
|
-
|
|
81
|
+
try {
|
|
82
|
+
await (0, verification_1.verifyProxy)(this.contractName, this.newAddress, []);
|
|
83
|
+
console.log("Verified", this.contractName);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.log(`Failed verifying ${this.contractName}. Cause: ${error}`);
|
|
87
|
+
}
|
|
94
88
|
}
|
|
95
89
|
updateValues(valuesToUpdate) {
|
|
96
90
|
const filteredSlots = [];
|
|
@@ -1 +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;IAED,0CAA0C;IACnC,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,
|
|
1
|
+
{"version":3,"file":"contractMigration.js","sourceRoot":"","sources":["../../../src/migration/contractMigration.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export declare class Migrator {
|
|
|
16
16
|
setDefaultValuesToUpdate(): void;
|
|
17
17
|
addValueToUpdate(oldValue: string, newValue: string): void;
|
|
18
18
|
upgrade(): Promise<void>;
|
|
19
|
+
verify(): Promise<void>;
|
|
19
20
|
migrateData(): Promise<void>;
|
|
20
21
|
dumpStorage(): Promise<void>;
|
|
21
22
|
init(): Promise<void>;
|
|
@@ -48,7 +48,11 @@ class Migrator {
|
|
|
48
48
|
async upgrade() {
|
|
49
49
|
for (const migration of this.migrations) {
|
|
50
50
|
await migration.upgrade();
|
|
51
|
-
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async verify() {
|
|
54
|
+
for (const migration of this.migrations) {
|
|
55
|
+
await migration.verify();
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
async migrateData() {
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/migration/migrator.ts"],"names":[],"mappings":"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"}
|