@skalenetwork/upgrade-tools 4.0.0-develop.1 → 4.0.0-develop.11

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.
Files changed (78) hide show
  1. package/README.md +3 -1
  2. package/dist/src/contractFactory.js +1 -1
  3. package/dist/src/contractFactory.js.map +1 -1
  4. package/dist/src/contractVerifier.d.ts +1 -0
  5. package/dist/src/contractVerifier.js.map +1 -1
  6. package/dist/src/deploy.d.ts +1 -0
  7. package/dist/src/deploy.js +16 -9
  8. package/dist/src/deploy.js.map +1 -1
  9. package/dist/src/gnosis-safe.js +6 -37
  10. package/dist/src/gnosis-safe.js.map +1 -1
  11. package/dist/src/index.d.ts +4 -0
  12. package/dist/src/index.js +4 -0
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/ownership-transfer/constants.d.ts +8 -0
  15. package/dist/src/ownership-transfer/constants.js +33 -0
  16. package/dist/src/ownership-transfer/constants.js.map +1 -0
  17. package/dist/src/ownership-transfer/contractAdmin.d.ts +55 -0
  18. package/dist/src/ownership-transfer/contractAdmin.js +211 -0
  19. package/dist/src/ownership-transfer/contractAdmin.js.map +1 -0
  20. package/dist/src/ownership-transfer/instanceAdmin.d.ts +51 -0
  21. package/dist/src/ownership-transfer/instanceAdmin.js +221 -0
  22. package/dist/src/ownership-transfer/instanceAdmin.js.map +1 -0
  23. package/dist/src/ownership-transfer/permission-utils.d.ts +37 -0
  24. package/dist/src/ownership-transfer/permission-utils.js +191 -0
  25. package/dist/src/ownership-transfer/permission-utils.js.map +1 -0
  26. package/dist/src/ownership-transfer/utils.d.ts +19 -0
  27. package/dist/src/ownership-transfer/utils.js +201 -0
  28. package/dist/src/ownership-transfer/utils.js.map +1 -0
  29. package/dist/src/proxyUpgrader.d.ts +19 -0
  30. package/dist/src/proxyUpgrader.js +89 -0
  31. package/dist/src/proxyUpgrader.js.map +1 -0
  32. package/dist/src/submitters/auto-submitter.d.ts +3 -0
  33. package/dist/src/submitters/auto-submitter.js +11 -2
  34. package/dist/src/submitters/auto-submitter.js.map +1 -1
  35. package/dist/src/submitters/eoa-submitter.js +0 -1
  36. package/dist/src/submitters/eoa-submitter.js.map +1 -1
  37. package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js +0 -4
  38. package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js.map +1 -1
  39. package/dist/src/submitters/safe-ima-marionette-submitter.d.ts +1 -0
  40. package/dist/src/submitters/safe-ima-marionette-submitter.js +1 -0
  41. package/dist/src/submitters/safe-ima-marionette-submitter.js.map +1 -1
  42. package/dist/src/submitters/safe-submitter.d.ts +2 -0
  43. package/dist/src/submitters/safe-submitter.js +3 -0
  44. package/dist/src/submitters/safe-submitter.js.map +1 -1
  45. package/dist/src/submitters/safe-to-ima-submitter.d.ts +1 -0
  46. package/dist/src/submitters/safe-to-ima-submitter.js +4 -4
  47. package/dist/src/submitters/safe-to-ima-submitter.js.map +1 -1
  48. package/dist/src/submitters/submitter.d.ts +3 -1
  49. package/dist/src/submitters/submitter.js +5 -17
  50. package/dist/src/submitters/submitter.js.map +1 -1
  51. package/dist/src/upgrader.d.ts +12 -6
  52. package/dist/src/upgrader.js +80 -61
  53. package/dist/src/upgrader.js.map +1 -1
  54. package/dist/src/upgraders/abstractTransparentProxyUpgrader.d.ts +19 -0
  55. package/dist/src/upgraders/abstractTransparentProxyUpgrader.js +57 -0
  56. package/dist/src/upgraders/abstractTransparentProxyUpgrader.js.map +1 -0
  57. package/dist/src/upgraders/beaconUpgrader.d.ts +8 -0
  58. package/dist/src/upgraders/beaconUpgrader.js +37 -0
  59. package/dist/src/upgraders/beaconUpgrader.js.map +1 -0
  60. package/dist/src/upgraders/transparentProxyUpgrader.d.ts +5 -0
  61. package/dist/src/upgraders/transparentProxyUpgrader.js +20 -0
  62. package/dist/src/upgraders/transparentProxyUpgrader.js.map +1 -0
  63. package/dist/src/upgraders/v4TransparentProxyUpgrader.d.ts +5 -0
  64. package/dist/src/upgraders/v4TransparentProxyUpgrader.js +19 -0
  65. package/dist/src/upgraders/v4TransparentProxyUpgrader.js.map +1 -0
  66. package/dist/src/verification.d.ts +2 -1
  67. package/dist/src/verification.js +25 -12
  68. package/dist/src/verification.js.map +1 -1
  69. package/dist/src/verifiers/blockscoutVerifier.js +20 -0
  70. package/dist/src/verifiers/blockscoutVerifier.js.map +1 -1
  71. package/dist/src/verifiers/etherscanVerifier.js +1 -1
  72. package/dist/src/verifiers/etherscanVerifier.js.map +1 -1
  73. package/dist/src/verifiers/skaleBlockscoutVerifier.js +2 -2
  74. package/dist/src/verifiers/skaleBlockscoutVerifier.js.map +1 -1
  75. package/package.json +6 -6
  76. package/dist/src/proxyAdmin.d.ts +0 -4
  77. package/dist/src/proxyAdmin.js +0 -56
  78. package/dist/src/proxyAdmin.js.map +0 -1
@@ -5,25 +5,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Upgrader = void 0;
7
7
  const hardhat_1 = require("hardhat");
8
- const proxyAdmin_1 = require("./proxyAdmin");
8
+ const abstractTransparentProxyUpgrader_1 = require("./upgraders/abstractTransparentProxyUpgrader");
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
12
  const semaphore_async_await_1 = __importDefault(require("semaphore-async-await"));
13
+ const transparentProxyUpgrader_1 = require("./upgraders/transparentProxyUpgrader");
14
+ const v4TransparentProxyUpgrader_1 = require("./upgraders/v4TransparentProxyUpgrader");
13
15
  const chalk_1 = __importDefault(require("chalk"));
14
16
  const fs_1 = require("fs");
15
- const contractFactory_1 = require("./contractFactory");
16
- const upgrades_core_1 = require("@openzeppelin/upgrades-core");
17
17
  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
22
  const maxSimultaneousDeployments = 1;
23
- // 10 minutes
24
- const deployTimeout = 60e4;
25
23
  class Upgrader {
26
24
  constructor(project, submitter) {
25
+ this.proxyUpgraders = [];
27
26
  this.targetVersion = project.version;
28
27
  if (!project.version.includes("-")) {
29
28
  this.targetVersion = `${project.version}-stable.0`;
@@ -35,24 +34,47 @@ class Upgrader {
35
34
  this.submitter = submitter ?? new auto_submitter_1.AutoSubmitter(this);
36
35
  this.deploySemaphore = new semaphore_async_await_1.default(maxSimultaneousDeployments);
37
36
  }
37
+ async createProxyUpgrader(contractName) {
38
+ const proxyAddress = await this.instance.getContractAddress(contractName);
39
+ const proxyAdmin = await abstractTransparentProxyUpgrader_1.AbstractTransparentProxyUpgrader.getProxyAdmin(proxyAddress);
40
+ const proxyAdminVersion = await abstractTransparentProxyUpgrader_1.AbstractTransparentProxyUpgrader.getProxyAdminVersion(proxyAdmin);
41
+ const defaultProxyAdminVersion = "5.0.0";
42
+ if (proxyAdminVersion === defaultProxyAdminVersion) {
43
+ console.log(chalk_1.default.gray(`${contractName} uses ProxyAdmin version ${proxyAdminVersion}`));
44
+ return new transparentProxyUpgrader_1.TransparentProxyUpgrader({
45
+ contractName,
46
+ nonceProvider: this.nonceProvider,
47
+ proxyAddress,
48
+ proxyAdmin
49
+ });
50
+ }
51
+ else if (proxyAdminVersion === null) {
52
+ console.log(chalk_1.default.gray(`${contractName} uses old ProxyAdmin (v4 or lower)`));
53
+ return new v4TransparentProxyUpgrader_1.V4TransparentProxyUpgrader({
54
+ contractName,
55
+ nonceProvider: this.nonceProvider,
56
+ proxyAddress,
57
+ proxyAdmin
58
+ });
59
+ }
60
+ throw new Error(`Unsupported ProxyAdmin version: ${proxyAdminVersion}`);
61
+ }
38
62
  // Public
39
63
  async upgrade() {
40
64
  const version = await this.prepareVersion();
41
65
  await this.callDeployNewContracts();
42
- const contractsToUpgrade = await this.deployNewImplementations();
43
- await this.switchToNewImplementations(contractsToUpgrade);
66
+ await this.upgradeOldContracts();
44
67
  await this.callInitialize();
45
68
  // Write version
46
69
  await this.setVersion(version);
47
70
  await this.writeTransactions(version);
71
+ await this.verifySubmitter();
48
72
  await this.submitter.submit(this.transactions);
49
- await Upgrader.verify(contractsToUpgrade);
73
+ await this.verify();
50
74
  console.log("Done");
51
75
  }
52
76
  async getOwner() {
53
- const proxyAddresses = await Promise.all(this.contractNamesToUpgrade.map((contract) => this.instance.getContractAddress(contract), this));
54
- const admins = await Promise.all(proxyAddresses.map((proxy) => (0, proxyAdmin_1.getProxyAdmin)(proxy)));
55
- const owners = await Promise.all(admins.map((admin) => admin.owner()));
77
+ const owners = await Promise.all(this.proxyUpgraders.map((upgrader) => upgrader.getOwner()));
56
78
  return owners.reduce((owner1, owner2) => {
57
79
  if (owner1 !== owner2) {
58
80
  throw Error("Proxies have different owners");
@@ -60,9 +82,26 @@ class Upgrader {
60
82
  return owner1;
61
83
  });
62
84
  }
85
+ async upgradeOldContracts() {
86
+ await this.createProxyUpgraders();
87
+ await this.deployNewImplementations();
88
+ await this.switchToNewImplementations();
89
+ }
63
90
  // Private
91
+ getChangedContracts() {
92
+ return this.proxyUpgraders.filter((upgrader) => upgrader.needsUpgrade());
93
+ }
94
+ async createProxyUpgraders() {
95
+ const [deployer] = await hardhat_1.ethers.getSigners();
96
+ this.nonceProvider ?? (this.nonceProvider = await nonceProvider_1.NonceProvider.createForWallet(deployer));
97
+ this.proxyUpgraders = await Promise.all(this.contractNamesToUpgrade.map(this.createProxyUpgrader, this));
98
+ }
64
99
  async callInitialize() {
65
- if (typeof this.initialize !== "undefined") {
100
+ if (typeof this.initialize === "undefined") {
101
+ console.log(chalk_1.default.gray("No initialize function defined, skipping"));
102
+ }
103
+ else {
104
+ console.log("Generating initialize transaction(s)");
66
105
  await this.initialize();
67
106
  }
68
107
  }
@@ -82,72 +121,35 @@ class Upgrader {
82
121
  const indentation = 4;
83
122
  await fs_1.promises.writeFile(`data/transactions-${version}-${hardhat_1.network.name}.json`, JSON.stringify(this.transactions, null, indentation));
84
123
  }
85
- static async verify(contractsToUpgrade) {
124
+ async verify() {
86
125
  if (process.env.NO_VERIFY) {
87
126
  console.log("Skip verification");
88
127
  }
89
128
  else {
90
129
  console.log("Start verification");
91
- await Promise.all(contractsToUpgrade.map((contract) => (0, verification_1.verify)(contract.name, contract.implementationAddress)));
130
+ // Try all, don't fail if one fails
131
+ await Promise.allSettled(this.getChangedContracts().map((upgrader) => (0, verification_1.verify)(upgrader.getContractName(), upgrader.getNewImplementationAddress())));
92
132
  }
93
133
  }
94
- async switchToNewImplementations(contractsToUpgrade) {
95
- const upgradeTransactions = await Promise.all(contractsToUpgrade.map((contract) => (0, proxyAdmin_1.getUpgradeTransaction)(contract.proxyAddress, contract.implementationAddress)));
96
- contractsToUpgrade.forEach((contract, index) => {
97
- const infoMessage = `Prepare transaction to upgrade ${contract.name}` +
98
- ` at ${contract.proxyAddress}` +
99
- ` to ${contract.implementationAddress}`;
100
- console.log(chalk_1.default.yellowBright(infoMessage));
101
- this.transactions.push(upgradeTransactions[index]);
102
- });
134
+ async switchToNewImplementations() {
135
+ this.transactions = [
136
+ ...this.transactions,
137
+ ...await Promise.all(this.getChangedContracts().map((upgrader) => upgrader.getUpgradeTransaction()))
138
+ ];
103
139
  }
104
140
  async deployNewImplementations() {
105
- const [deployer] = await hardhat_1.ethers.getSigners();
106
- this.nonceProvider ?? (this.nonceProvider = await nonceProvider_1.NonceProvider.createForWallet(deployer));
107
- const contracts = await Promise.all(this.contractNamesToUpgrade.
108
- map(this.protectedDeployNewImplementation, this));
141
+ const contracts = await Promise.all(this.proxyUpgraders.
142
+ map((upgrader) => this.protectedDeployNewImplementation(upgrader), this));
109
143
  return withoutNull(contracts);
110
144
  }
111
- async protectedDeployNewImplementation(contract) {
145
+ async protectedDeployNewImplementation(upgrader) {
112
146
  await this.deploySemaphore.acquire();
113
- let result = null;
114
147
  try {
115
- result = await this.deployNewImplementation(contract);
148
+ await upgrader.deployNewImplementation();
116
149
  }
117
150
  finally {
118
151
  this.deploySemaphore.release();
119
152
  }
120
- return result;
121
- }
122
- async deployNewImplementation(contract) {
123
- const contractFactory = await (0, contractFactory_1.getContractFactoryAndUpdateManifest)(contract, this.nonceProvider);
124
- const proxyAddress = await (await this.instance.getContract(contract)).getAddress();
125
- console.log(`Prepare upgrade of ${contract}`);
126
- return this.prepareUpgrade(contract, proxyAddress, contractFactory);
127
- }
128
- async prepareUpgrade(contractName, proxyAddress, contractFactory) {
129
- const currentImplementationAddress = await (0, upgrades_core_1.getImplementationAddress)(hardhat_1.network.provider, proxyAddress);
130
- const nonce = this.nonceProvider?.reserveNonce();
131
- const newImplementationAddress = await hardhat_1.upgrades.prepareUpgrade(proxyAddress, contractFactory, {
132
- "timeout": deployTimeout,
133
- "txOverrides": {
134
- nonce
135
- },
136
- "unsafeAllowLinkedLibraries": true,
137
- "unsafeAllowRenames": true
138
- });
139
- if (newImplementationAddress !== currentImplementationAddress) {
140
- return {
141
- "implementationAddress": newImplementationAddress,
142
- "name": contractName,
143
- proxyAddress
144
- };
145
- }
146
- console.log(chalk_1.default.gray(`Contract ${contractName} is up to date`));
147
- if (nonce) {
148
- this.nonceProvider?.releaseNonce(nonce);
149
- }
150
- return null;
151
153
  }
152
154
  async getNormalizedDeployedVersion() {
153
155
  const deployedVersion = await this.getDeployedVersion();
@@ -174,6 +176,23 @@ class Upgrader {
174
176
  console.log(chalk_1.default.yellow(cannotCheckMessage));
175
177
  }
176
178
  }
179
+ async verifySubmitter() {
180
+ const maxTransactionsForAtomicUpgrade = 1;
181
+ if (this.transactions.length <= maxTransactionsForAtomicUpgrade ||
182
+ await this.submitter.isAtomicSubmitter()) {
183
+ console.log(chalk_1.default.yellow("Atomic upgrade is performing."));
184
+ return;
185
+ }
186
+ if (process.env.ALLOW_NOT_ATOMIC_UPGRADE) {
187
+ console.log(chalk_1.default.yellow("Not atomic upgrade is performing."));
188
+ return;
189
+ }
190
+ console.log(chalk_1.default.red("The upgrade will consist" +
191
+ " of multiple transactions and will not be atomic"));
192
+ console.log(chalk_1.default.red("If not atomic upgrade is OK" +
193
+ " set ALLOW_NOT_ATOMIC_UPGRADE environment variable"));
194
+ process.exit(exitCodes_1.EXIT_CODES.NOT_ATOMIC_UPGRADE);
195
+ }
177
196
  }
178
197
  exports.Upgrader = Upgrader;
179
198
  //# sourceMappingURL=upgrader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":";;;;;;AAEA,qCAAkD;AAClD,6CAAkE;AAClE,gEAA0D;AAC1D,2CAAuC;AAEvC,mDAA8C;AAC9C,kFAA8C;AAE9C,kDAA0B;AAC1B,2BAAkC;AAClC,uDAAsE;AACtE,+DAAqE;AACrE,uCAAqC;AACrC,iDAAsC;AAGtC,MAAM,WAAW,GAAG,CAAI,KAAsB,EAAE,EAAE,CAAC,KAAK;IACpD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAa,CAAC;AAEtD,yDAAyD;AACzD,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,gCAAgC;AAChC,MAAM,aAAa,GAAG,IAAI,CAAC;AAG3B,MAAsB,QAAQ;IAW1B,YACI,OAAgB,EAChB,SAAqB;QAErB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC;QACvD,CAAC;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,IAAI,IAAI,8BAAa,CAAC,IAAI,CAAC,CAAC;QACtD,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;QAC5C,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACjE,MAAM,IAAI,CAAC,0BAA0B,CACjC,kBAAkB,CACrB,CAAC;QACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,gBAAgB;QAChB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAC3B,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EACxD,IAAI,CACP,CACJ,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,cAAc,CAAC,GAAG,CACd,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,0BAAa,EAAC,KAAK,CAAC,CAClC,CACJ,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,MAAM,CAAC,GAAG,CACN,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAqB,CAC9C,CACJ,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,UAAU;IAEF,KAAK,CAAC,cAAc;QACxB,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAChC,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,WAAW,EAAE,CAAC;YACjD,uBAAuB;YACvB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpC,CAAC;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,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,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,CACjC,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACpC,kBAAuC;QAEvC,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CACzC,kBAAkB,CAAC,GAAG,CAClB,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,kCAAqB,EAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAC7F,CACJ,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC3C,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,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,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,MAAM,GAA6B,IAAI,CAAC;QAC5C,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,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;QACjE,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,YAAoB,EAAE,eAAgC;QACrG,MAAM,4BAA4B,GAAG,MAAM,IAAA,wCAAwB,EAC/D,iBAAO,CAAC,QAAQ,EAChB,YAAY,CACf,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;QAEjD,MAAM,wBAAwB,GAAG,MAAM,kBAAQ,CAAC,cAAc,CAC1D,YAAY,EACZ,eAAe,EACf;YACI,SAAS,EAAE,aAAa;YACxB,aAAa,EAAE;gBACX,KAAK;aACR;YACD,4BAA4B,EAAE,IAAI;YAClC,oBAAoB,EAAE,IAAI;SAC7B,CACM,CAAC;QACZ,IAAI,wBAAwB,KAAK,4BAA4B,EAAE,CAAC;YAC5D,OAAO;gBACH,uBAAuB,EAAE,wBAAwB;gBACjD,MAAM,EAAE,YAAY;gBACpB,YAAY;aACf,CAAC;QACN,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,YAAY,gBAAgB,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,4BAA4B;QACtC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxD,IAAI,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,eAAe,WAAW,CAAC;YACzC,CAAC;YACD,OAAO,eAAe,CAAC;QAC3B,CAAC;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,CAAC;YAClB,IAAI,eAAe,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzC,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;YACzC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,kBAAkB,GACpB,6CAA6C,IAAI,CAAC,WAAW,EAAE,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;CACJ;AAhPD,4BAgPC"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAwC;AACxC,mGAA8F;AAC9F,gEAA0D;AAC1D,2CAAuC;AAEvC,mDAA8C;AAG9C,kFAA8C;AAG9C,mFAA8E;AAC9E,uFAAkF;AAClF,kDAA0B;AAC1B,2BAAkC;AAClC,uCAAqC;AACrC,iDAAsC;AAGtC,MAAM,WAAW,GAAG,CAAI,KAAsB,EAAE,EAAE,CAAC,KAAK;IACpD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAa,CAAC;AAEtD,yDAAyD;AACzD,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAErC,MAAsB,QAAQ;IAY1B,YACI,OAAgB,EAChB,SAAqB;QARjB,mBAAc,GAAoB,EAAE,CAAC;QAUzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC;QACvD,CAAC;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,IAAI,IAAI,8BAAa,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,+BAAS,CAAC,0BAA0B,CAAC,CAAC;IACrE,CAAC;IAcS,KAAK,CAAC,mBAAmB,CAAC,YAAoB;QACpD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,MAAM,mEAAgC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtF,MAAM,iBAAiB,GAAG,MAAM,mEAAgC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAClG,MAAM,wBAAwB,GAAG,OAAO,CAAC;QACzC,IAAI,iBAAiB,KAAK,wBAAwB,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,YAAY,4BAA4B,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACxF,OAAO,IAAI,mDAAwB,CAAC;gBAChC,YAAY;gBACZ,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY;gBACZ,UAAU;aACb,CAAkB,CAAC;QACxB,CAAC;aAAM,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,YAAY,oCAAoC,CAAC,CAAC,CAAC;YAC7E,OAAO,IAAI,uDAA0B,CAAC;gBAClC,YAAY;gBACZ,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY;gBACZ,UAAU;aACb,CAAkB,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,KAAK,CACX,mCAAmC,iBAAiB,EAAE,CACzD,CAAC;IACN,CAAC;IAED,SAAS;IAET,KAAK,CAAC,OAAO;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,gBAAgB;QAChB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CACpC,CACJ,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC7B,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAC5C,CAAC;IAED,UAAU;IAEF,mBAAmB;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAC7B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CACxC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAC9B,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,IAAI,CAAC,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAC3B,IAAI,CAAC,mBAAmB,EACxB,IAAI,CACP,CACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAChC,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,WAAW,EAAE,CAAC;YACjD,uBAAuB;YACvB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpC,CAAC;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,KAAK,CAAC,MAAM;QAChB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,mCAAmC;YACnC,MAAM,OAAO,CAAC,UAAU,CACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAC1B,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,qBAAM,EAChB,QAAQ,CAAC,eAAe,EAAE,EAC1B,QAAQ,CAAC,2BAA2B,EAAE,CACzC,CACJ,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,0BAA0B;QACpC,IAAI,CAAC,YAAY,GAAG;YAChB,GAAG,IAAI,CAAC,YAAY;YACpB,GAAG,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAC1B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CACjD,CACJ;SACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,wBAAwB;QAClC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc;YACnD,GAAG,CACC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,EAC7D,IAAI,CACP,CAAC,CAAC;QACP,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAAE,QAAuB;QACnE,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC;YACD,MAAM,QAAQ,CAAC,uBAAuB,EAAE,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,4BAA4B;QACtC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxD,IAAI,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,eAAe,WAAW,CAAC;YACzC,CAAC;YACD,OAAO,eAAe,CAAC;QAC3B,CAAC;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,CAAC;YAClB,IAAI,eAAe,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzC,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;YACzC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,kBAAkB,GACpB,6CAA6C,IAAI,CAAC,WAAW,EAAE,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe;QACzB,MAAM,+BAA+B,GAAG,CAAC,CAAC;QAC1C,IACI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,+BAA+B;YAC3D,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAC1C,CAAC;YACC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC3D,OAAO;QACX,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC/D,OAAO;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B;YAC5C,kDAAkD,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B;YAC/C,oDAAoD,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,sBAAU,CAAC,kBAAkB,CAAC,CAAC;IAChD,CAAC;CACJ;AA3PD,4BA2PC"}
@@ -0,0 +1,19 @@
1
+ import { AddressLike, Contract } from "ethers";
2
+ import { NonceProvider } from "../nonceProvider";
3
+ import { ProxyUpgrader } from "../proxyUpgrader";
4
+ interface TransparentProxyUpgraderConstructorArguments {
5
+ contractName: string;
6
+ proxyAddress: AddressLike;
7
+ proxyAdmin: Contract;
8
+ nonceProvider?: NonceProvider;
9
+ }
10
+ export declare abstract class AbstractTransparentProxyUpgrader extends ProxyUpgrader {
11
+ protected proxyAdmin: Contract;
12
+ constructor(options: TransparentProxyUpgraderConstructorArguments);
13
+ getOwner(): Promise<string>;
14
+ static getProxyAdmin(proxy: AddressLike): Promise<Contract>;
15
+ static getProxyAdminVersion(proxyAdmin: Contract): Promise<string | null>;
16
+ static isNewProxyAdmin(proxyAdmin: Contract): Promise<boolean>;
17
+ protected getCurrentImplementationAddress(): Promise<AddressLike>;
18
+ }
19
+ export {};
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AbstractTransparentProxyUpgrader = void 0;
7
+ const hardhat_1 = require("hardhat");
8
+ const proxyUpgrader_1 = require("../proxyUpgrader");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const upgrades_core_1 = require("@openzeppelin/upgrades-core");
11
+ class AbstractTransparentProxyUpgrader extends proxyUpgrader_1.ProxyUpgrader {
12
+ constructor(options) {
13
+ super(options.contractName, options.proxyAddress, options.nonceProvider);
14
+ this.proxyAdmin = options.proxyAdmin;
15
+ }
16
+ async getOwner() {
17
+ return await this.proxyAdmin.owner();
18
+ }
19
+ static async getProxyAdmin(proxy) {
20
+ const proxyAdminAddress = await hardhat_1.upgrades.erc1967.getAdminAddress(await hardhat_1.ethers.resolveAddress(proxy));
21
+ const generalProxyAdminAbi = [
22
+ "function UPGRADE_INTERFACE_VERSION() view returns (string)",
23
+ "function upgrade(address,address)",
24
+ "function upgradeAndCall(address,address,bytes) payable",
25
+ "function owner() view returns (address)"
26
+ ];
27
+ return new hardhat_1.ethers.Contract(proxyAdminAddress, generalProxyAdminAbi, await hardhat_1.ethers.provider.getSigner());
28
+ }
29
+ static async getProxyAdminVersion(proxyAdmin) {
30
+ try {
31
+ // This function name is set in external library
32
+ // eslint-disable-next-line new-cap
33
+ return await proxyAdmin.UPGRADE_INTERFACE_VERSION();
34
+ }
35
+ catch (error) {
36
+ return null;
37
+ }
38
+ }
39
+ static async isNewProxyAdmin(proxyAdmin) {
40
+ try {
41
+ console.log(chalk_1.default.gray(`ProxyAdmin version ${
42
+ // This function name is set in external library
43
+ // eslint-disable-next-line new-cap
44
+ await proxyAdmin.UPGRADE_INTERFACE_VERSION()}`));
45
+ return true;
46
+ }
47
+ catch (error) {
48
+ console.log(chalk_1.default.gray("Use old ProxyAdmin"));
49
+ return false;
50
+ }
51
+ }
52
+ async getCurrentImplementationAddress() {
53
+ return await (0, upgrades_core_1.getImplementationAddress)(hardhat_1.network.provider, await hardhat_1.ethers.resolveAddress(this.proxyAddress));
54
+ }
55
+ }
56
+ exports.AbstractTransparentProxyUpgrader = AbstractTransparentProxyUpgrader;
57
+ //# sourceMappingURL=abstractTransparentProxyUpgrader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractTransparentProxyUpgrader.js","sourceRoot":"","sources":["../../../src/upgraders/abstractTransparentProxyUpgrader.ts"],"names":[],"mappings":";;;;;;AACA,qCAAkD;AAElD,oDAA+C;AAC/C,kDAA0B;AAC1B,+DAAqE;AASrE,MAAsB,gCAAiC,SAAQ,6BAAa;IAGxE,YACI,OAAqD;QAErD,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,QAAQ;QACjB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAkB;QAChD,MAAM,iBAAiB,GAAG,MAAM,kBAAQ,CAAC,OAAO,CAAC,eAAe,CAC5D,MAAM,gBAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CACrC,CAAC;QACF,MAAM,oBAAoB,GAAG;YACzB,4DAA4D;YAC5D,mCAAmC;YACnC,wDAAwD;YACxD,yCAAyC;SAC5C,CAAC;QACF,OAAO,IAAI,gBAAM,CAAC,QAAQ,CACtB,iBAAiB,EACjB,oBAAoB,EACpB,MAAM,gBAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CACpC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAoB;QACzD,IAAI,CAAC;YACD,gDAAgD;YAChD,mCAAmC;YACnC,OAAO,MAAM,UAAU,CAAC,yBAAyB,EAAY,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,UAAoB;QACpD,IAAI,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB;YACzC,gDAAgD;YAChD,mCAAmC;YACnC,MAAM,UAAU,CAAC,yBAAyB,EAC9C,EAAE,CAAC,CAAC,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAES,KAAK,CAAC,+BAA+B;QAC3C,OAAO,MAAM,IAAA,wCAAwB,EACjC,iBAAO,CAAC,QAAQ,EAChB,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CACjD,CAAC;IACN,CAAC;CACJ;AA7DD,4EA6DC"}
@@ -0,0 +1,8 @@
1
+ import { AddressLike, Transaction } from "ethers";
2
+ import { ProxyUpgrader } from "../proxyUpgrader";
3
+ export declare class BeaconUpgrader extends ProxyUpgrader {
4
+ getOwner(): Promise<string>;
5
+ protected makeUpgradeTransaction(): Promise<Transaction>;
6
+ protected getCurrentImplementationAddress(): Promise<AddressLike>;
7
+ private getBeacon;
8
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BeaconUpgrader = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const proxyUpgrader_1 = require("../proxyUpgrader");
6
+ const hardhat_1 = require("hardhat");
7
+ class BeaconUpgrader extends proxyUpgrader_1.ProxyUpgrader {
8
+ async getOwner() {
9
+ const beacon = await this.getBeacon();
10
+ return await beacon.owner();
11
+ }
12
+ async makeUpgradeTransaction() {
13
+ const beacon = await this.getBeacon();
14
+ return ethers_1.Transaction.from({
15
+ "data": beacon.interface.encodeFunctionData("upgradeTo", [
16
+ await hardhat_1.ethers.resolveAddress(this.newImplementationAddress),
17
+ ]),
18
+ "to": await hardhat_1.ethers.resolveAddress(beacon)
19
+ });
20
+ }
21
+ // Protected
22
+ async getCurrentImplementationAddress() {
23
+ const beacon = await this.getBeacon();
24
+ return await beacon.implementation();
25
+ }
26
+ // Private
27
+ async getBeacon() {
28
+ const generalUpgradeableBeaconAbi = [
29
+ "function implementation() view returns (address)",
30
+ "function owner() view returns (address)",
31
+ "function upgradeTo(address newImplementation)",
32
+ ];
33
+ return new hardhat_1.ethers.Contract(await hardhat_1.ethers.resolveAddress(this.proxyAddress), generalUpgradeableBeaconAbi, await hardhat_1.ethers.provider.getSigner());
34
+ }
35
+ }
36
+ exports.BeaconUpgrader = BeaconUpgrader;
37
+ //# sourceMappingURL=beaconUpgrader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beaconUpgrader.js","sourceRoot":"","sources":["../../../src/upgraders/beaconUpgrader.ts"],"names":[],"mappings":";;;AAAA,mCAAgD;AAChD,oDAA+C;AAC/C,qCAA+B;AAG/B,MAAa,cAAe,SAAQ,6BAAa;IACtC,KAAK,CAAC,QAAQ;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAES,KAAK,CAAC,sBAAsB;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,oBAAW,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB,CACvC,WAAW,EACX;gBACI,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAyB,CAAC;aAC9D,CACJ;YACD,IAAI,EAAE,MAAM,gBAAM,CAAC,cAAc,CAAC,MAAM,CAAC;SAC5C,CAAC,CAAC;IACP,CAAC;IAED,YAAY;IAEF,KAAK,CAAC,+BAA+B;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;IACzC,CAAC;IAED,UAAU;IAEF,KAAK,CAAC,SAAS;QACnB,MAAM,2BAA2B,GAAG;YAChC,kDAAkD;YAClD,yCAAyC;YACzC,+CAA+C;SAClD,CAAC;QACF,OAAO,IAAI,gBAAM,CAAC,QAAQ,CACtB,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAC9C,2BAA2B,EAC3B,MAAM,gBAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CACpC,CAAC;IACN,CAAC;CACJ;AAxCD,wCAwCC"}
@@ -0,0 +1,5 @@
1
+ import { AbstractTransparentProxyUpgrader } from "./abstractTransparentProxyUpgrader";
2
+ import { Transaction } from "ethers";
3
+ export declare class TransparentProxyUpgrader extends AbstractTransparentProxyUpgrader {
4
+ protected makeUpgradeTransaction(): Promise<Transaction>;
5
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransparentProxyUpgrader = void 0;
4
+ const abstractTransparentProxyUpgrader_1 = require("./abstractTransparentProxyUpgrader");
5
+ const ethers_1 = require("ethers");
6
+ const hardhat_1 = require("hardhat");
7
+ class TransparentProxyUpgrader extends abstractTransparentProxyUpgrader_1.AbstractTransparentProxyUpgrader {
8
+ async makeUpgradeTransaction() {
9
+ return ethers_1.Transaction.from({
10
+ "data": this.proxyAdmin.interface.encodeFunctionData("upgradeAndCall", [
11
+ await hardhat_1.ethers.resolveAddress(this.proxyAddress),
12
+ await hardhat_1.ethers.resolveAddress(this.newImplementationAddress),
13
+ "0x"
14
+ ]),
15
+ "to": await hardhat_1.ethers.resolveAddress(this.proxyAdmin)
16
+ });
17
+ }
18
+ }
19
+ exports.TransparentProxyUpgrader = TransparentProxyUpgrader;
20
+ //# sourceMappingURL=transparentProxyUpgrader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transparentProxyUpgrader.js","sourceRoot":"","sources":["../../../src/upgraders/transparentProxyUpgrader.ts"],"names":[],"mappings":";;;AAAA,yFAAoF;AACpF,mCAAmC;AACnC,qCAA+B;AAE/B,MAAa,wBAAyB,SAAQ,mEAAgC;IAChE,KAAK,CAAC,sBAAsB;QAClC,OAAO,oBAAW,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,IAAI,CAAC,UAAW,CAAC,SAAS,CAAC,kBAAkB,CACjD,gBAAgB,EAChB;gBACI,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC9C,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAyB,CAAC;gBAC3D,IAAI;aACP,CACJ;YACD,IAAI,EAAE,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAW,CAAC;SACtD,CAAC,CAAC;IACP,CAAC;CACJ;AAdD,4DAcC"}
@@ -0,0 +1,5 @@
1
+ import { AbstractTransparentProxyUpgrader } from "./abstractTransparentProxyUpgrader";
2
+ import { Transaction } from "ethers";
3
+ export declare class V4TransparentProxyUpgrader extends AbstractTransparentProxyUpgrader {
4
+ protected makeUpgradeTransaction(): Promise<Transaction>;
5
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.V4TransparentProxyUpgrader = void 0;
4
+ const abstractTransparentProxyUpgrader_1 = require("./abstractTransparentProxyUpgrader");
5
+ const ethers_1 = require("ethers");
6
+ const hardhat_1 = require("hardhat");
7
+ class V4TransparentProxyUpgrader extends abstractTransparentProxyUpgrader_1.AbstractTransparentProxyUpgrader {
8
+ async makeUpgradeTransaction() {
9
+ return ethers_1.Transaction.from({
10
+ "data": this.proxyAdmin.interface.encodeFunctionData("upgrade", [
11
+ await hardhat_1.ethers.resolveAddress(this.proxyAddress),
12
+ await hardhat_1.ethers.resolveAddress(this.newImplementationAddress),
13
+ ]),
14
+ "to": await hardhat_1.ethers.resolveAddress(this.proxyAdmin)
15
+ });
16
+ }
17
+ }
18
+ exports.V4TransparentProxyUpgrader = V4TransparentProxyUpgrader;
19
+ //# sourceMappingURL=v4TransparentProxyUpgrader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4TransparentProxyUpgrader.js","sourceRoot":"","sources":["../../../src/upgraders/v4TransparentProxyUpgrader.ts"],"names":[],"mappings":";;;AAAA,yFAAoF;AACpF,mCAAmC;AACnC,qCAA+B;AAE/B,MAAa,0BAA2B,SAAQ,mEAAgC;IAClE,KAAK,CAAC,sBAAsB;QAClC,OAAO,oBAAW,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,IAAI,CAAC,UAAW,CAAC,SAAS,CAAC,kBAAkB,CACjD,SAAS,EACT;gBACI,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC9C,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAyB,CAAC;aAC9D,CACJ;YACD,IAAI,EAAE,MAAM,gBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAW,CAAC;SACtD,CAAC,CAAC;IACP,CAAC;CACJ;AAbD,gEAaC"}
@@ -1,2 +1,3 @@
1
- export declare const verify: (contractName: string, contractAddress: string) => Promise<void>;
1
+ import { AddressLike } from "ethers";
2
+ export declare const verify: (contractName: string, contractAddress: AddressLike, constructorArguments?: string) => Promise<void>;
2
3
  export declare const verifyProxy: (contractName: string, proxyAddress: string) => Promise<void>;
@@ -7,6 +7,7 @@ exports.verifyProxy = exports.verify = void 0;
7
7
  const hardhat_1 = require("hardhat");
8
8
  const blockscoutVerifier_1 = require("./verifiers/blockscoutVerifier");
9
9
  const etherscanVerifier_1 = require("./verifiers/etherscanVerifier");
10
+ const semaphore_async_await_1 = __importDefault(require("semaphore-async-await"));
10
11
  const skaleBlockscoutVerifier_1 = require("./verifiers/skaleBlockscoutVerifier");
11
12
  const chalk_1 = __importDefault(require("chalk"));
12
13
  const upgrades_core_1 = require("@openzeppelin/upgrades-core");
@@ -55,22 +56,34 @@ const setupSkale = async () => {
55
56
  };
56
57
  const verifiers = [];
57
58
  let verifiersSetup = false;
59
+ // Semaphore to limit concurrent creation of verifiers
60
+ const MAX_CONCURRENCY = 1;
61
+ const lock = new semaphore_async_await_1.default(MAX_CONCURRENCY);
58
62
  const setupVerifiers = async () => {
59
- if (!verifiersSetup) {
60
- verifiersSetup = true;
61
- const { chainId } = await hardhat_1.ethers.provider.getNetwork();
62
- const candidates = [
63
- await setupEtherscan(chainId),
64
- setupBlockscout(chainId),
65
- await setupSkale()
66
- ];
67
- verifiers.push(...candidates.filter(item => item !== null));
63
+ try {
64
+ await lock.acquire();
65
+ if (!verifiersSetup) {
66
+ verifiersSetup = true;
67
+ const { chainId } = await hardhat_1.ethers.provider.getNetwork();
68
+ const candidates = [
69
+ await setupEtherscan(chainId),
70
+ setupBlockscout(chainId),
71
+ await setupSkale()
72
+ ];
73
+ verifiers.push(...candidates.filter(item => item !== null));
74
+ }
75
+ }
76
+ finally {
77
+ lock.release();
68
78
  }
69
79
  };
70
- const verify = async (contractName, contractAddress) => {
80
+ const verify = async (contractName, contractAddress, constructorArguments) => {
71
81
  await setupVerifiers();
72
- await Promise.all(verifiers.map(verifier => verifier.verify({
73
- contractAddress,
82
+ const contractAddressString = await hardhat_1.ethers.resolveAddress(contractAddress);
83
+ // Try all, don't fail if one fails
84
+ await Promise.allSettled(verifiers.map(verifier => verifier.verify({
85
+ constructorArguments,
86
+ contractAddress: contractAddressString,
74
87
  contractName
75
88
  })));
76
89
  };
@@ -1 +1 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/verification.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,22 @@ const BLOCKSCOUT_CHAINS = [
36
36
  apiURL: "https://eth-hoodi.blockscout.com/api",
37
37
  browserURL: "https://eth-hoodi.blockscout.com",
38
38
  }
39
+ },
40
+ {
41
+ chainId: 8453,
42
+ network: "base",
43
+ urls: {
44
+ apiURL: "https://base.blockscout.com/api",
45
+ browserURL: "https://base.blockscout.com",
46
+ }
47
+ },
48
+ {
49
+ chainId: 84532,
50
+ network: "base-sepolia",
51
+ urls: {
52
+ apiURL: "https://base-sepolia.blockscout.com/api",
53
+ browserURL: "https://base-sepolia.blockscout.com",
54
+ }
39
55
  }
40
56
  ];
41
57
  class BlockscoutVerifier extends contractVerifier_1.ContractVerifier {
@@ -55,6 +71,10 @@ class BlockscoutVerifier extends contractVerifier_1.ContractVerifier {
55
71
  return await this.blockscout.isVerified(verificationTarget.contractAddress);
56
72
  }
57
73
  async submitVerificationRequest(target, params) {
74
+ if (target.constructorArguments) {
75
+ // TODO: remove this when Blockscout supports constructor arguments
76
+ console.log(`Ignoring constructor arguments for Blockscout verification of ${target.contractAddress}`);
77
+ }
58
78
  return await this.blockscout.verify(target.contractAddress, params.solcInputJson, params.fullContractName, params.compilerVersion);
59
79
  }
60
80
  getContractUrl(verificationTarget) {
@@ -1 +1 @@
1
- {"version":3,"file":"blockscoutVerifier.js","sourceRoot":"","sources":["../../../src/verifiers/blockscoutVerifier.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;AAE7B,0DAAwG;AACxG,2EAAsE;AAItE,MAAM,iBAAiB,GAAkB;IACrC;QACI,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE;YACF,MAAM,EAAE,gCAAgC;YACxC,UAAU,EAAE,4BAA4B;SAC3C;KACJ;IACD;QACI,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE;YACF,MAAM,EAAE,wCAAwC;YAChD,UAAU,EAAE,oCAAoC;SACnD;KACJ;IACD;QACI,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE;YACF,MAAM,EAAE,wCAAwC;YAChD,UAAU,EAAE,oCAAoC;SACnD;KACJ;IACD;QACI,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACF,MAAM,EAAE,sCAAsC;YAC9C,UAAU,EAAE,kCAAkC;SACjD;KACJ;CACJ,CAAA;AAED,MAAa,kBAAmB,SAAQ,mCAAgB;IAIpD,YAAY,MAAc,EAAE,UAAkB;QAC1C,KAAK,EAAE,CAAC;QAJL,SAAI,GAAG,YAAY,CAAC;QAKvB,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,OAAe;QAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,kBAAsC;QACpE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAChF,CAAC;IAES,KAAK,CAAC,yBAAyB,CAAC,MAA0B,EAAE,MAAqC;QACvG,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAC/B,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,eAAe,CACzB,CAAC;IACN,CAAC;IAES,cAAc,CAAC,kBAAsC;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC9E,CAAC;CACJ;AAjCD,gDAiCC"}
1
+ {"version":3,"file":"blockscoutVerifier.js","sourceRoot":"","sources":["../../../src/verifiers/blockscoutVerifier.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;AAE7B,0DAAwG;AACxG,2EAAsE;AAItE,MAAM,iBAAiB,GAAkB;IACrC;QACI,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE;YACF,MAAM,EAAE,gCAAgC;YACxC,UAAU,EAAE,4BAA4B;SAC3C;KACJ;IACD;QACI,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE;YACF,MAAM,EAAE,wCAAwC;YAChD,UAAU,EAAE,oCAAoC;SACnD;KACJ;IACD;QACI,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE;YACF,MAAM,EAAE,wCAAwC;YAChD,UAAU,EAAE,oCAAoC;SACnD;KACJ;IACD;QACI,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACF,MAAM,EAAE,sCAAsC;YAC9C,UAAU,EAAE,kCAAkC;SACjD;KACJ;IACD;QACI,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,MAAM;QACf,IAAI,EAAE;YACF,MAAM,EAAE,iCAAiC;YACzC,UAAU,EAAE,6BAA6B;SAC5C;KACJ;IACD;QACI,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE;YACF,MAAM,EAAE,yCAAyC;YACjD,UAAU,EAAE,qCAAqC;SACpD;KACJ;CACJ,CAAA;AAED,MAAa,kBAAmB,SAAQ,mCAAgB;IAIpD,YAAY,MAAc,EAAE,UAAkB;QAC1C,KAAK,EAAE,CAAC;QAJL,SAAI,GAAG,YAAY,CAAC;QAKvB,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,OAAe;QAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,kBAAsC;QACpE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAChF,CAAC;IAES,KAAK,CAAC,yBAAyB,CAAC,MAA0B,EAAE,MAAqC;QACvG,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC9B,mEAAmE;YACnE,OAAO,CAAC,GAAG,CAAC,iEAAiE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAC/B,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,eAAe,CACzB,CAAC;IACN,CAAC;IAES,cAAc,CAAC,kBAAsC;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC9E,CAAC;CACJ;AArCD,gDAqCC"}
@@ -35,7 +35,7 @@ class EtherscanVerifier extends contractVerifier_1.ContractVerifier {
35
35
  async submitVerificationRequest(target, params, retries = DEFAULT_RETRIES_AMOUNT) {
36
36
  try {
37
37
  await lock.acquire();
38
- return await this.etherscan.verify(target.contractAddress, params.solcInputJson, params.fullContractName, params.compilerVersion, "");
38
+ return await this.etherscan.verify(target.contractAddress, params.solcInputJson, params.fullContractName, params.compilerVersion, target.constructorArguments || "");
39
39
  }
40
40
  catch (error) {
41
41
  if (error instanceof Error && error.name === 'ContractVerificationMissingBytecodeError') {
@@ -1 +1 @@
1
- {"version":3,"file":"etherscanVerifier.js","sourceRoot":"","sources":["../../../src/verifiers/etherscanVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"etherscanVerifier.js","sourceRoot":"","sources":["../../../src/verifiers/etherscanVerifier.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;;;;AAE9C,0DAAwG;AAGxG,yEAAoE;AACpE,kFAA8C;AAE9C,kDAA0B;AAC1B,qCAA+B;AAG/B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,IAAI,GAAG,IAAI,+BAAS,CAAC,eAAe,CAAC,CAAC;AAO5C,MAAa,iBAAkB,SAAQ,mCAAgB;IAKnD,YAAY,MAAc,EAAE,OAAe;QACvC,KAAK,EAAE,CAAC;QALI,SAAI,GAAG,WAAW,CAAC;QAM/B,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAC1B,MAAM;QACN,2DAA2D;QAC3D,EAAE,EACF,sBAAsB,EACtB,MAAM,CAAC,OAAO,CAAC,CAClB,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAChD,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,4BAA4B,EAAE,CAAC;QAC/E,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,YAAY;IAEF,KAAK,CAAC,iBAAiB,CAAC,kBAAsC;QACpE,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC/E,CAAC;IAES,KAAK,CAAC,yBAAyB,CACrC,MAA0B,EAC1B,MAAqC,EACrC,OAAO,GAAG,sBAAsB;QAEhC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAC9B,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,oBAAoB,IAAI,EAAE,CACpC,CAAC;QACN,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,0CAA0C,EAAE,CAAC;gBACtF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,MAAM,IAAI,CAAC,+CAA+C,CAC7D,KAAiD,EACjD,EAAC,MAAM,EAAE,MAAM,EAAC,EAChB,OAAO,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACL,CAAC;IAES,cAAc,CAAC,kBAAsC;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7E,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,YAAoB;QACpD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACjE,OAAO,EAAC,GAAG,UAAU,EAAE,eAAe,EAAE,IAAI,UAAU,CAAC,eAAe,EAAE,EAAC,CAAC;IAC9E,CAAC;IAED,UAAU;IAEF,MAAM,CAAC,KAAK,CAAC,4BAA4B;QAC7C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAClB,CAAC,OAKA,EAAE,EAAE,CAAC,CAAC;gBACC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtC,OAAO,EAAE,OAAO,CAAC,SAAS;gBAC1B,IAAI,EAAE;oBACF,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,UAAU,EAAE,OAAO,CAAC,aAAa;iBACpC;aACY,CAAA,CACxB,CAAC;QACN,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,+CAA+C,CACzD,KAA+C,EAC/C,IAA6B,EAC7B,OAAe;QACX,IAAI,OAAO,GAAG,aAAa,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,cAAc,4BAA4B,CAAC,CAAC,CAAC;YACnF,MAAM,iBAAiB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,KAAK,CAAC;IACpB,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,SAAiB;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,gBAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,EAAE;gBACzD,MAAM,WAAW,GAAG,kBAAkB,GAAG,SAAS,CAAC;gBAEnD,MAAM,QAAQ,GAAG,CAAC,WAAmB,EAAE,EAAE;oBACrC,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;wBAC7B,gBAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;wBAClD,OAAO,EAAE,CAAC;oBACd,CAAC;gBACL,CAAC,CAAC;gBAEF,gBAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA3HD,8CA2HC"}