@hyperlane-xyz/sdk 4.1.0 → 4.2.0-beta.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.
Files changed (182) hide show
  1. package/dist/aws/validator.js +1 -1
  2. package/dist/aws/validator.js.map +1 -1
  3. package/dist/consts/multisigIsm.d.ts.map +1 -1
  4. package/dist/consts/multisigIsm.js +52 -19
  5. package/dist/consts/multisigIsm.js.map +1 -1
  6. package/dist/core/EvmCoreModule.d.ts +4 -0
  7. package/dist/core/EvmCoreModule.d.ts.map +1 -1
  8. package/dist/core/EvmCoreModule.js +8 -9
  9. package/dist/core/EvmCoreModule.js.map +1 -1
  10. package/dist/core/EvmIcaModule.d.ts +3 -1
  11. package/dist/core/EvmIcaModule.d.ts.map +1 -1
  12. package/dist/core/EvmIcaModule.js +2 -2
  13. package/dist/core/EvmIcaModule.js.map +1 -1
  14. package/dist/core/HyperlaneCore.d.ts +23 -7
  15. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  16. package/dist/core/HyperlaneCore.js +81 -21
  17. package/dist/core/HyperlaneCore.js.map +1 -1
  18. package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
  19. package/dist/core/HyperlaneCoreChecker.js +1 -1
  20. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  21. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  22. package/dist/core/HyperlaneCoreDeployer.js +6 -1
  23. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  24. package/dist/core/HyperlaneRelayer.d.ts +328 -0
  25. package/dist/core/HyperlaneRelayer.d.ts.map +1 -0
  26. package/dist/core/HyperlaneRelayer.js +144 -0
  27. package/dist/core/HyperlaneRelayer.js.map +1 -0
  28. package/dist/core/schemas.d.ts +842 -842
  29. package/dist/deploy/EvmModuleDeployer.d.ts +4 -3
  30. package/dist/deploy/EvmModuleDeployer.d.ts.map +1 -1
  31. package/dist/deploy/EvmModuleDeployer.js +11 -4
  32. package/dist/deploy/EvmModuleDeployer.js.map +1 -1
  33. package/dist/deploy/HyperlaneDeployer.d.ts +1 -1
  34. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  35. package/dist/deploy/HyperlaneDeployer.js +20 -9
  36. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  37. package/dist/deploy/proxy.d.ts +1 -0
  38. package/dist/deploy/proxy.d.ts.map +1 -1
  39. package/dist/deploy/proxy.js +6 -0
  40. package/dist/deploy/proxy.js.map +1 -1
  41. package/dist/deploy/schemas.d.ts +1 -0
  42. package/dist/deploy/schemas.d.ts.map +1 -1
  43. package/dist/deploy/verify/ContractVerifier.d.ts +20 -6
  44. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  45. package/dist/deploy/verify/ContractVerifier.js +187 -97
  46. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  47. package/dist/deploy/verify/types.d.ts +15 -4
  48. package/dist/deploy/verify/types.d.ts.map +1 -1
  49. package/dist/deploy/verify/types.js +4 -3
  50. package/dist/deploy/verify/types.js.map +1 -1
  51. package/dist/deploy/verify/utils.d.ts +9 -2
  52. package/dist/deploy/verify/utils.d.ts.map +1 -1
  53. package/dist/deploy/verify/utils.js +4 -3
  54. package/dist/deploy/verify/utils.js.map +1 -1
  55. package/dist/hook/EvmHookModule.d.ts +45 -6
  56. package/dist/hook/EvmHookModule.d.ts.map +1 -1
  57. package/dist/hook/EvmHookModule.hardhat-test.js +334 -106
  58. package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
  59. package/dist/hook/EvmHookModule.js +291 -68
  60. package/dist/hook/EvmHookModule.js.map +1 -1
  61. package/dist/hook/EvmHookReader.d.ts +5 -10
  62. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  63. package/dist/hook/EvmHookReader.js +21 -24
  64. package/dist/hook/EvmHookReader.js.map +1 -1
  65. package/dist/hook/schemas.d.ts +4 -4
  66. package/dist/hook/types.d.ts +1 -0
  67. package/dist/hook/types.d.ts.map +1 -1
  68. package/dist/hook/types.js +8 -0
  69. package/dist/hook/types.js.map +1 -1
  70. package/dist/index.d.ts +61 -58
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +46 -46
  73. package/dist/index.js.map +1 -1
  74. package/dist/ism/EvmIsmModule.d.ts +7 -7
  75. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  76. package/dist/ism/EvmIsmModule.hardhat-test.js +9 -28
  77. package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
  78. package/dist/ism/EvmIsmModule.js +38 -57
  79. package/dist/ism/EvmIsmModule.js.map +1 -1
  80. package/dist/ism/EvmIsmReader.d.ts +5 -4
  81. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  82. package/dist/ism/EvmIsmReader.js +56 -36
  83. package/dist/ism/EvmIsmReader.js.map +1 -1
  84. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  85. package/dist/ism/HyperlaneIsmFactory.js +2 -0
  86. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  87. package/dist/ism/metadata/aggregation.test.js +1 -1
  88. package/dist/ism/metadata/aggregation.test.js.map +1 -1
  89. package/dist/ism/metadata/builder.hardhat-test.js +29 -14
  90. package/dist/ism/metadata/builder.hardhat-test.js.map +1 -1
  91. package/dist/ism/metadata/multisig.d.ts.map +1 -1
  92. package/dist/ism/metadata/multisig.js +1 -1
  93. package/dist/ism/metadata/multisig.js.map +1 -1
  94. package/dist/ism/utils.js +2 -2
  95. package/dist/ism/utils.js.map +1 -1
  96. package/dist/metadata/ChainMetadataManager.d.ts +2 -0
  97. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  98. package/dist/metadata/ChainMetadataManager.js +6 -0
  99. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  100. package/dist/metadata/agentConfig.d.ts +46 -46
  101. package/dist/metadata/deploymentArtifacts.d.ts +2 -2
  102. package/dist/providers/MultiProvider.d.ts +7 -0
  103. package/dist/providers/MultiProvider.d.ts.map +1 -1
  104. package/dist/providers/MultiProvider.js +9 -1
  105. package/dist/providers/MultiProvider.js.map +1 -1
  106. package/dist/providers/SmartProvider/SmartProvider.d.ts +2 -1
  107. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  108. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +58 -0
  109. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -1
  110. package/dist/providers/SmartProvider/SmartProvider.js +34 -9
  111. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  112. package/dist/providers/transactions/schemas.d.ts +13 -0
  113. package/dist/providers/transactions/schemas.d.ts.map +1 -1
  114. package/dist/providers/transactions/schemas.js +1 -0
  115. package/dist/providers/transactions/schemas.js.map +1 -1
  116. package/dist/providers/transactions/submitter/builder/schemas.d.ts +67 -146
  117. package/dist/providers/transactions/submitter/builder/schemas.d.ts.map +1 -1
  118. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts +2 -2
  119. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts.map +1 -1
  120. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js.map +1 -1
  121. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.d.ts +2 -2
  122. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.d.ts.map +1 -1
  123. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.js.map +1 -1
  124. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts +2 -2
  125. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts.map +1 -1
  126. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.js.map +1 -1
  127. package/dist/providers/transactions/submitter/schemas.d.ts +9 -34
  128. package/dist/providers/transactions/submitter/schemas.d.ts.map +1 -1
  129. package/dist/providers/transactions/submitter/schemas.js +2 -3
  130. package/dist/providers/transactions/submitter/schemas.js.map +1 -1
  131. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts +2 -2
  132. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts.map +1 -1
  133. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js +5 -5
  134. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js.map +1 -1
  135. package/dist/providers/transactions/transformer/schemas.d.ts +36 -76
  136. package/dist/providers/transactions/transformer/schemas.d.ts.map +1 -1
  137. package/dist/providers/transactions/transformer/schemas.js +1 -1
  138. package/dist/providers/transactions/transformer/schemas.js.map +1 -1
  139. package/dist/providers/transactions/types.d.ts +2 -1
  140. package/dist/providers/transactions/types.d.ts.map +1 -1
  141. package/dist/router/schemas.d.ts +97 -90
  142. package/dist/router/schemas.d.ts.map +1 -1
  143. package/dist/router/schemas.js +6 -1
  144. package/dist/router/schemas.js.map +1 -1
  145. package/dist/router/types.d.ts +2 -1
  146. package/dist/router/types.d.ts.map +1 -1
  147. package/dist/router/types.js.map +1 -1
  148. package/dist/test/testUtils.js +1 -1
  149. package/dist/test/testUtils.js.map +1 -1
  150. package/dist/token/EvmERC20WarpModule.d.ts +20 -1
  151. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  152. package/dist/token/EvmERC20WarpModule.hardhat-test.js +123 -2
  153. package/dist/token/EvmERC20WarpModule.hardhat-test.js.map +1 -1
  154. package/dist/token/EvmERC20WarpModule.js +93 -21
  155. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  156. package/dist/token/EvmERC20WarpRouteReader.d.ts +4 -9
  157. package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
  158. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +27 -2
  159. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
  160. package/dist/token/EvmERC20WarpRouteReader.js +19 -21
  161. package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
  162. package/dist/token/IToken.d.ts +6 -6
  163. package/dist/token/TokenConnection.d.ts +2 -2
  164. package/dist/token/deploy.d.ts.map +1 -1
  165. package/dist/token/deploy.js +14 -5
  166. package/dist/token/deploy.js.map +1 -1
  167. package/dist/token/schemas.d.ts +96 -88
  168. package/dist/token/schemas.d.ts.map +1 -1
  169. package/dist/utils/HyperlaneReader.d.ts +17 -0
  170. package/dist/utils/HyperlaneReader.d.ts.map +1 -0
  171. package/dist/utils/HyperlaneReader.js +21 -0
  172. package/dist/utils/HyperlaneReader.js.map +1 -0
  173. package/dist/utils/cosmos.d.ts +5 -0
  174. package/dist/utils/cosmos.d.ts.map +1 -1
  175. package/dist/utils/cosmos.js +7 -1
  176. package/dist/utils/cosmos.js.map +1 -1
  177. package/dist/warp/WarpCore.d.ts +12 -0
  178. package/dist/warp/WarpCore.d.ts.map +1 -1
  179. package/dist/warp/WarpCore.js +63 -32
  180. package/dist/warp/WarpCore.js.map +1 -1
  181. package/dist/warp/types.d.ts +10 -10
  182. package/package.json +3 -3
@@ -13,8 +13,7 @@ export class ContractVerifier {
13
13
  constructor(multiProvider, apiKeys, buildArtifact, licenseType) {
14
14
  this.multiProvider = multiProvider;
15
15
  this.apiKeys = apiKeys;
16
- // Extract the standard input json and compiler version from the build artifact
17
- this.standardInputJson = JSON.stringify(buildArtifact.input);
16
+ this.standardInputJson = buildArtifact.input;
18
17
  const compilerversion = `v${buildArtifact.solcLongVersion}`;
19
18
  // double check compiler version matches expected format
20
19
  const versionRegex = /v(\d.\d.\d+)\+commit.\w+/;
@@ -42,29 +41,71 @@ export class ContractVerifier {
42
41
  }
43
42
  });
44
43
  }
44
+ async verifyContract(chain, input, logger = this.logger) {
45
+ const verificationLogger = logger.child({
46
+ chain,
47
+ name: input.name,
48
+ address: input.address,
49
+ });
50
+ const metadata = this.multiProvider.tryGetChainMetadata(chain);
51
+ const rpcUrl = metadata?.rpcUrls[0].http ?? '';
52
+ if (rpcUrl.includes('localhost') || rpcUrl.includes('127.0.0.1')) {
53
+ verificationLogger.debug('Skipping verification for local endpoints');
54
+ return;
55
+ }
56
+ const explorerApi = this.multiProvider.tryGetExplorerApi(chain);
57
+ if (!explorerApi) {
58
+ verificationLogger.debug('No explorer API set, skipping');
59
+ return;
60
+ }
61
+ if (!explorerApi.family) {
62
+ verificationLogger.debug(`No explorer family set, skipping`);
63
+ return;
64
+ }
65
+ if (explorerApi.family === ExplorerFamily.Other) {
66
+ verificationLogger.debug(`Unsupported explorer family, skipping`);
67
+ return;
68
+ }
69
+ if (input.address === ethers.constants.AddressZero)
70
+ return;
71
+ if (Array.isArray(input.constructorArguments)) {
72
+ verificationLogger.debug('Constructor arguments in legacy format, skipping');
73
+ return;
74
+ }
75
+ await this.verify(chain, input, verificationLogger);
76
+ }
45
77
  async submitForm(chain, action, verificationLogger, options) {
46
78
  const { apiUrl, family, apiKey = this.apiKeys[chain], } = this.multiProvider.getExplorerApi(chain);
47
79
  const params = new URLSearchParams();
48
80
  params.set('module', 'contract');
49
81
  params.set('action', action);
50
- // no need to provide every argument for every request
82
+ if (apiKey)
83
+ params.set('apikey', apiKey);
51
84
  for (const [key, value] of Object.entries(options ?? {})) {
52
85
  params.set(key, value);
53
86
  }
54
- // only include apikey if provided & not blockscout
55
- if (family !== ExplorerFamily.Blockscout && apiKey) {
56
- params.set('apikey', apiKey);
57
- }
87
+ let timeout = 1000;
58
88
  const url = new URL(apiUrl);
59
89
  const isGetRequest = EXPLORER_GET_ACTIONS.includes(action);
60
- if (isGetRequest) {
90
+ if (isGetRequest)
61
91
  url.search = params.toString();
92
+ switch (family) {
93
+ case ExplorerFamily.Etherscan:
94
+ timeout = 5000;
95
+ break;
96
+ case ExplorerFamily.Blockscout:
97
+ timeout = 1000;
98
+ url.searchParams.set('module', 'contract');
99
+ url.searchParams.set('action', action);
100
+ break;
101
+ case ExplorerFamily.Routescan:
102
+ timeout = 500;
103
+ break;
104
+ case ExplorerFamily.Other:
105
+ default:
106
+ throw new Error(`Unsupported explorer family: ${family}, ${chain}, ${apiUrl}`);
62
107
  }
63
- else if (family === ExplorerFamily.Blockscout) {
64
- // Blockscout requires module and action to be query params
65
- url.searchParams.set('module', 'contract');
66
- url.searchParams.set('action', action);
67
- }
108
+ verificationLogger.trace({ apiUrl, chain }, 'Sending request to explorer...');
68
109
  let response;
69
110
  if (isGetRequest) {
70
111
  response = await fetch(url.toString(), {
@@ -72,32 +113,47 @@ export class ContractVerifier {
72
113
  });
73
114
  }
74
115
  else {
75
- response = await fetch(url.toString(), {
116
+ const init = {
76
117
  method: 'POST',
77
118
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
78
119
  body: params,
79
- });
120
+ };
121
+ response = await fetch(url.toString(), init);
122
+ }
123
+ let responseJson;
124
+ try {
125
+ const responseTextString = await response.text();
126
+ verificationLogger.trace({ apiUrl, chain }, 'Parsing response from explorer...');
127
+ responseJson = JSON.parse(responseTextString);
128
+ }
129
+ catch (error) {
130
+ verificationLogger.trace({
131
+ failure: response.statusText,
132
+ status: response.status,
133
+ chain,
134
+ apiUrl,
135
+ family,
136
+ }, 'Failed to parse response from explorer.');
137
+ throw new Error(`Failed to parse response from explorer (${apiUrl}, ${chain}): ${response.statusText || 'UNKNOWN STATUS TEXT'} (${response.status || 'UNKNOWN STATUS'})`);
80
138
  }
81
- const responseText = await response.text();
82
- const result = JSON.parse(responseText);
83
- if (result.message !== 'OK') {
139
+ if (responseJson.message !== 'OK') {
84
140
  let errorMessage;
85
- switch (result.result) {
141
+ switch (responseJson.result) {
86
142
  case ExplorerApiErrors.VERIFICATION_PENDING:
87
- await sleep(5000); // wait 5 seconds
143
+ verificationLogger.trace({
144
+ result: responseJson.result,
145
+ }, 'Verification still pending');
146
+ await sleep(timeout);
88
147
  return this.submitForm(chain, action, verificationLogger, options);
89
148
  case ExplorerApiErrors.ALREADY_VERIFIED:
90
149
  case ExplorerApiErrors.ALREADY_VERIFIED_ALT:
91
- return;
150
+ case ExplorerApiErrors.NOT_VERIFIED:
92
151
  case ExplorerApiErrors.PROXY_FAILED:
93
- errorMessage = 'Proxy verification failed, try manually?';
94
- break;
95
152
  case ExplorerApiErrors.BYTECODE_MISMATCH:
96
- errorMessage =
97
- 'Compiled bytecode does not match deployed bytecode, check constructor arguments?';
153
+ errorMessage = `${responseJson.message}: ${responseJson.result}`;
98
154
  break;
99
155
  default:
100
- errorMessage = `Verification failed. ${JSON.stringify(result.result) ?? response.statusText}`;
156
+ errorMessage = `Verification failed: ${JSON.stringify(responseJson.result) ?? response.statusText}`;
101
157
  break;
102
158
  }
103
159
  if (errorMessage) {
@@ -105,105 +161,139 @@ export class ContractVerifier {
105
161
  throw new Error(`[${chain}] ${errorMessage}`);
106
162
  }
107
163
  }
108
- if (result.result === ExplorerApiErrors.UNKNOWN_UID) {
109
- await sleep(1000); // wait 1 second
164
+ if (responseJson.result === ExplorerApiErrors.UNKNOWN_UID) {
165
+ await sleep(timeout);
110
166
  return this.submitForm(chain, action, verificationLogger, options);
111
167
  }
112
- if (result.result === ExplorerApiErrors.UNABLE_TO_VERIFY) {
113
- const errorMessage = `Verification failed. ${JSON.stringify(result.result) ?? response.statusText}`;
168
+ if (responseJson.result === ExplorerApiErrors.UNABLE_TO_VERIFY) {
169
+ const errorMessage = `Verification failed. ${JSON.stringify(responseJson.result) ?? response.statusText}`;
114
170
  verificationLogger.debug(errorMessage);
115
171
  throw new Error(`[${chain}] ${errorMessage}`);
116
172
  }
117
- return result.result;
173
+ verificationLogger.trace({ apiUrl, chain, result: responseJson.result }, 'Returning result from explorer.');
174
+ await sleep(timeout);
175
+ return responseJson.result;
118
176
  }
119
- async isAlreadyVerified(chain, input, verificationLogger) {
177
+ async verify(chain, input, verificationLogger) {
178
+ const contractType = input.isProxy ? 'proxy' : 'implementation';
179
+ verificationLogger.debug(`📝 Verifying ${contractType}...`);
180
+ const data = input.isProxy
181
+ ? this.getProxyData(input)
182
+ : this.getImplementationData(chain, input, verificationLogger);
120
183
  try {
121
- const result = await this.submitForm(chain, ExplorerApiActions.GETSOURCECODE, verificationLogger, {
122
- address: input.address,
123
- });
124
- return !!result[0]?.SourceCode;
125
- }
126
- catch (error) {
127
- verificationLogger.debug(`Error checking if contract is already verified: ${error}`);
128
- return false;
129
- }
130
- }
131
- async verifyProxy(chain, input, verificationLogger) {
132
- if (!input.isProxy)
133
- return;
134
- try {
135
- const proxyGuid = await this.submitForm(chain, ExplorerApiActions.MARK_PROXY, verificationLogger, { address: input.address });
136
- if (!proxyGuid)
137
- return;
138
- await this.submitForm(chain, ExplorerApiActions.CHECK_PROXY_STATUS, verificationLogger, {
139
- guid: proxyGuid,
140
- });
184
+ const guid = await this.submitForm(chain, input.isProxy
185
+ ? ExplorerApiActions.VERIFY_PROXY
186
+ : ExplorerApiActions.VERIFY_IMPLEMENTATION, verificationLogger, data);
187
+ verificationLogger.trace({ guid }, `Retrieved guid from verified ${contractType}.`);
188
+ await this.checkStatus(chain, input, verificationLogger, guid, contractType);
141
189
  const addressUrl = await this.multiProvider.tryGetExplorerAddressUrl(chain, input.address);
142
- verificationLogger.debug(`Successfully verified proxy ${addressUrl}#readProxyContract`);
190
+ verificationLogger.debug({
191
+ addressUrl: addressUrl
192
+ ? `${addressUrl}#code`
193
+ : `Could not retrieve ${contractType} explorer URL.`,
194
+ }, `✅ Successfully verified ${contractType}.`);
143
195
  }
144
196
  catch (error) {
145
- verificationLogger.debug(`Verification of proxy at ${input.address} failed: ${error}`);
197
+ verificationLogger.debug({ error }, `Verification of ${contractType} failed`);
146
198
  throw error;
147
199
  }
148
200
  }
149
- async verifyImplementation(chain, input, verificationLogger) {
150
- verificationLogger.debug(`Verifying implementation at ${input.address}`);
201
+ async checkStatus(chain, input, verificationLogger, guid, contractType) {
202
+ verificationLogger.trace({ guid }, `Checking ${contractType} status...`);
203
+ await this.submitForm(chain, input.isProxy
204
+ ? ExplorerApiActions.CHECK_PROXY_STATUS
205
+ : ExplorerApiActions.CHECK_IMPLEMENTATION_STATUS, verificationLogger, {
206
+ guid: guid,
207
+ });
208
+ }
209
+ getProxyData(input) {
210
+ return {
211
+ address: input.address,
212
+ expectedimplementation: input.expectedimplementation,
213
+ };
214
+ }
215
+ getImplementationData(chain, input, verificationLogger) {
151
216
  const sourceName = this.contractSourceMap[input.name];
152
217
  if (!sourceName) {
153
218
  const errorMessage = `Contract '${input.name}' not found in provided build artifact`;
154
219
  verificationLogger.error(errorMessage);
155
220
  throw new Error(`[${chain}] ${errorMessage}`);
156
221
  }
157
- const data = {
158
- sourceCode: this.standardInputJson,
222
+ const filteredStandardInputJson = this.filterStandardInputJsonByContractName(input.name, this.standardInputJson, verificationLogger);
223
+ return {
224
+ sourceCode: JSON.stringify(filteredStandardInputJson),
159
225
  contractname: `${sourceName}:${input.name}`,
160
226
  contractaddress: input.address,
161
- // TYPO IS ENFORCED BY API
227
+ /* TYPO IS ENFORCED BY API */
162
228
  constructorArguements: strip0x(input.constructorArguments ?? ''),
163
229
  ...this.compilerOptions,
164
230
  };
165
- const guid = await this.submitForm(chain, ExplorerApiActions.VERIFY_IMPLEMENTATION, verificationLogger, data);
166
- if (!guid)
167
- return;
168
- await this.submitForm(chain, ExplorerApiActions.CHECK_STATUS, verificationLogger, { guid });
169
- const addressUrl = await this.multiProvider.tryGetExplorerAddressUrl(chain, input.address);
170
- verificationLogger.debug(`Successfully verified ${addressUrl}#code`);
171
231
  }
172
- async verifyContract(chain, input, logger = this.logger) {
173
- const verificationLogger = logger.child({ chain, name: input.name });
174
- const metadata = this.multiProvider.tryGetChainMetadata(chain);
175
- const rpcUrl = metadata?.rpcUrls[0].http ?? '';
176
- if (rpcUrl.includes('localhost') || rpcUrl.includes('127.0.0.1')) {
177
- verificationLogger.debug('Skipping verification for local endpoints');
178
- return;
179
- }
180
- const explorerApi = this.multiProvider.tryGetExplorerApi(chain);
181
- if (!explorerApi) {
182
- verificationLogger.debug('No explorer API set, skipping');
183
- return;
184
- }
185
- if (!explorerApi.family) {
186
- verificationLogger.debug(`No explorer family set, skipping`);
187
- return;
188
- }
189
- if (explorerApi.family === ExplorerFamily.Other) {
190
- verificationLogger.debug(`Unsupported explorer family, skipping`);
191
- return;
232
+ /**
233
+ * Filters the solidity standard input for a specific contract name.
234
+ *
235
+ * This is a BFS impl to traverse the source input dependency graph.
236
+ * 1. Named contract file is set as root node.
237
+ * 2. The next level is formed by the direct imports of the contract file.
238
+ * 3. Each subsequent level's dependencies form the next level, etc.
239
+ * 4. The queue tracks the next files to process, and ensures the dependency graph explorered level by level.
240
+ */
241
+ filterStandardInputJsonByContractName(contractName, input, verificationLogger) {
242
+ verificationLogger.trace({ contractName }, 'Filtering unused contracts from solidity standard input JSON....');
243
+ const filteredSources = {};
244
+ const sourceFiles = Object.keys(input.sources);
245
+ const contractFile = this.getContractFile(contractName, sourceFiles);
246
+ const queue = [contractFile];
247
+ const processed = new Set();
248
+ while (queue.length > 0) {
249
+ const file = queue.shift();
250
+ if (processed.has(file))
251
+ continue;
252
+ processed.add(file);
253
+ filteredSources[file] = input.sources[file];
254
+ const content = input.sources[file].content;
255
+ const importStatements = this.getAllImportStatements(content);
256
+ importStatements.forEach((importStatement) => {
257
+ const importPath = importStatement.match(/["']([^"']+)["']/)?.[1];
258
+ if (importPath) {
259
+ const resolvedPath = this.resolveImportPath(file, importPath);
260
+ if (sourceFiles.includes(resolvedPath))
261
+ queue.push(resolvedPath);
262
+ }
263
+ });
192
264
  }
193
- if (input.address === ethers.constants.AddressZero)
194
- return;
195
- if (Array.isArray(input.constructorArguments)) {
196
- verificationLogger.debug('Constructor arguments in legacy format, skipping');
197
- return;
265
+ return {
266
+ ...input,
267
+ sources: filteredSources,
268
+ };
269
+ }
270
+ getContractFile(contractName, sourceFiles) {
271
+ const contractFile = sourceFiles.find((file) => file.endsWith(`/${contractName}.sol`));
272
+ if (!contractFile) {
273
+ throw new Error(`Contract ${contractName} not found in sources.`);
198
274
  }
199
- if (await this.isAlreadyVerified(chain, input, verificationLogger)) {
200
- const addressUrl = await this.multiProvider.tryGetExplorerAddressUrl(chain, input.address);
201
- verificationLogger.debug(`Contract already verified at ${addressUrl}#code`);
202
- await sleep(200); // There is a rate limit of 5 requests per second
203
- return;
275
+ return contractFile;
276
+ }
277
+ getAllImportStatements(content) {
278
+ const importRegex = /import\s+(?:(?:(?:"[^"]+"|'[^']+')\s*;)|(?:{[^}]+}\s+from\s+(?:"[^"]+"|'[^']+')\s*;)|(?:\s*(?:"[^"]+"|'[^']+')\s*;))/g;
279
+ return content.match(importRegex) || [];
280
+ }
281
+ resolveImportPath(currentFile, importPath) {
282
+ /* Use as-is for external dependencies and absolute imports */
283
+ if (importPath.startsWith('@') || importPath.startsWith('http')) {
284
+ return importPath;
204
285
  }
205
- await this.verifyImplementation(chain, input, verificationLogger);
206
- await this.verifyProxy(chain, input, verificationLogger);
286
+ const currentDir = currentFile.split('/').slice(0, -1).join('/');
287
+ const resolvedPath = importPath.split('/').reduce((acc, part) => {
288
+ if (part === '..') {
289
+ acc.pop();
290
+ }
291
+ else if (part !== '.') {
292
+ acc.push(part);
293
+ }
294
+ return acc;
295
+ }, currentDir.split('/'));
296
+ return resolvedPath.join('/');
207
297
  }
208
298
  }
209
299
  //# sourceMappingURL=ContractVerifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContractVerifier.js","sourceRoot":"","sources":["../../../src/deploy/verify/ContractVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContractVerifier.js","sourceRoot":"","sources":["../../../src/deploy/verify/ContractVerifier.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export type ContractVerificationInput = {
3
3
  address: string;
4
4
  constructorArguments?: string;
5
5
  isProxy?: boolean;
6
+ expectedimplementation?: string;
6
7
  };
7
8
  export type VerificationInput = ContractVerificationInput[];
8
9
  export type SolidityStandardJsonInput = {
@@ -11,6 +12,14 @@ export type SolidityStandardJsonInput = {
11
12
  content: string;
12
13
  };
13
14
  };
15
+ language: string;
16
+ settings: {
17
+ optimizer: {
18
+ enabled: boolean;
19
+ runs: number;
20
+ };
21
+ outputSelection: any;
22
+ };
14
23
  };
15
24
  export type BuildArtifact = {
16
25
  input: SolidityStandardJsonInput;
@@ -40,14 +49,15 @@ export type CompilerOptions = {
40
49
  export declare enum ExplorerApiActions {
41
50
  GETSOURCECODE = "getsourcecode",
42
51
  VERIFY_IMPLEMENTATION = "verifysourcecode",
43
- MARK_PROXY = "verifyproxycontract",
44
- CHECK_STATUS = "checkverifystatus",
52
+ VERIFY_PROXY = "verifyproxycontract",
53
+ CHECK_IMPLEMENTATION_STATUS = "checkverifystatus",
45
54
  CHECK_PROXY_STATUS = "checkproxyverification"
46
55
  }
47
56
  export declare const EXPLORER_GET_ACTIONS: ExplorerApiActions[];
48
57
  export declare enum ExplorerApiErrors {
49
58
  ALREADY_VERIFIED = "Contract source code already verified",
50
59
  ALREADY_VERIFIED_ALT = "Already Verified",
60
+ NOT_VERIFIED = "Contract source code not verified",
51
61
  VERIFICATION_PENDING = "Pending in queue",
52
62
  PROXY_FAILED = "A corresponding implementation contract was unfortunately not detected for the proxy address.",
53
63
  BYTECODE_MISMATCH = "Fail - Unable to verify. Compiled contract deployment bytecode does NOT match the transaction deployment bytecode.",
@@ -61,9 +71,10 @@ export type FormOptions<Action extends ExplorerApiActions> = Action extends Expl
61
71
  sourceCode: string;
62
72
  contractname: string;
63
73
  constructorArguements?: string;
64
- } : Action extends ExplorerApiActions.MARK_PROXY ? {
74
+ } : Action extends ExplorerApiActions.VERIFY_PROXY ? {
65
75
  address: string;
66
- } : Action extends ExplorerApiActions.CHECK_STATUS ? {
76
+ expectedimplementation: string;
77
+ } : Action extends ExplorerApiActions.CHECK_IMPLEMENTATION_STATUS ? {
67
78
  guid: string;
68
79
  } : Action extends ExplorerApiActions.CHECK_PROXY_STATUS ? {
69
80
  guid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deploy/verify/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;AAE5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE;QACP,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,yBAAyB,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAGF,oBAAY,mBAAmB;IAC7B,UAAU,MAAM;IAChB,UAAU,MAAM;IAChB,GAAG,MAAM;IACT,IAAI,MAAM;IACV,IAAI,MAAM;IACV,KAAK,MAAM;IACX,KAAK,MAAM;IACX,IAAI,MAAM;IACV,IAAI,MAAM;IACV,IAAI,OAAO;IACX,IAAI,OAAO;IACX,OAAO,OAAO;IACd,KAAK,OAAO;IACZ,GAAG,OAAO;CACX;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,8BAA8B,CAAC;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC,CAAC;AAEF,oBAAY,kBAAkB;IAC5B,aAAa,kBAAkB;IAC/B,qBAAqB,qBAAqB;IAC1C,UAAU,wBAAwB;IAClC,YAAY,sBAAsB;IAClC,kBAAkB,2BAA2B;CAC9C;AAED,eAAO,MAAM,oBAAoB,sBAIhC,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,gBAAgB,0CAA0C;IAC1D,oBAAoB,qBAAqB;IACzC,oBAAoB,qBAAqB;IACzC,YAAY,kGAAkG;IAC9G,iBAAiB,uHAAuH;IACxI,gBAAgB,4BAA4B;IAC5C,WAAW,gBAAgB;CAC5B;AAED,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,kBAAkB,IACvD,MAAM,SAAS,kBAAkB,CAAC,aAAa,GAC3C;IACE,OAAO,EAAE,MAAM,CAAC;CACjB,GACD,MAAM,SAAS,kBAAkB,CAAC,qBAAqB,GACvD,eAAe,GAAG;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,GACD,MAAM,SAAS,kBAAkB,CAAC,UAAU,GAC5C;IACE,OAAO,EAAE,MAAM,CAAC;CACjB,GACD,MAAM,SAAS,kBAAkB,CAAC,YAAY,GAC9C;IACE,IAAI,EAAE,MAAM,CAAC;CACd,GACD,MAAM,SAAS,kBAAkB,CAAC,kBAAkB,GACpD;IACE,IAAI,EAAE,MAAM,CAAC;CACd,GACD,KAAK,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deploy/verify/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;AAE5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE;QACP,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,eAAe,EAAE,GAAG,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,yBAAyB,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAGF,oBAAY,mBAAmB;IAC7B,UAAU,MAAM;IAChB,UAAU,MAAM;IAChB,GAAG,MAAM;IACT,IAAI,MAAM;IACV,IAAI,MAAM;IACV,KAAK,MAAM;IACX,KAAK,MAAM;IACX,IAAI,MAAM;IACV,IAAI,MAAM;IACV,IAAI,OAAO;IACX,IAAI,OAAO;IACX,OAAO,OAAO;IACd,KAAK,OAAO;IACZ,GAAG,OAAO;CACX;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,8BAA8B,CAAC;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC,CAAC;AAEF,oBAAY,kBAAkB;IAC5B,aAAa,kBAAkB;IAC/B,qBAAqB,qBAAqB;IAC1C,YAAY,wBAAwB;IACpC,2BAA2B,sBAAsB;IACjD,kBAAkB,2BAA2B;CAC9C;AAED,eAAO,MAAM,oBAAoB,sBAIhC,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,gBAAgB,0CAA0C;IAC1D,oBAAoB,qBAAqB;IACzC,YAAY,sCAAsC;IAClD,oBAAoB,qBAAqB;IACzC,YAAY,kGAAkG;IAC9G,iBAAiB,uHAAuH;IACxI,gBAAgB,4BAA4B;IAC5C,WAAW,gBAAgB;CAC5B;AAED,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,kBAAkB,IACvD,MAAM,SAAS,kBAAkB,CAAC,aAAa,GAC3C;IACE,OAAO,EAAE,MAAM,CAAC;CACjB,GACD,MAAM,SAAS,kBAAkB,CAAC,qBAAqB,GACvD,eAAe,GAAG;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAErB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,GACD,MAAM,SAAS,kBAAkB,CAAC,YAAY,GAC9C;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;CAChC,GACD,MAAM,SAAS,kBAAkB,CAAC,2BAA2B,GAC7D;IACE,IAAI,EAAE,MAAM,CAAC;CACd,GACD,MAAM,SAAS,kBAAkB,CAAC,kBAAkB,GACpD;IACE,IAAI,EAAE,MAAM,CAAC;CACd,GACD,KAAK,CAAC"}
@@ -20,12 +20,12 @@ export var ExplorerApiActions;
20
20
  (function (ExplorerApiActions) {
21
21
  ExplorerApiActions["GETSOURCECODE"] = "getsourcecode";
22
22
  ExplorerApiActions["VERIFY_IMPLEMENTATION"] = "verifysourcecode";
23
- ExplorerApiActions["MARK_PROXY"] = "verifyproxycontract";
24
- ExplorerApiActions["CHECK_STATUS"] = "checkverifystatus";
23
+ ExplorerApiActions["VERIFY_PROXY"] = "verifyproxycontract";
24
+ ExplorerApiActions["CHECK_IMPLEMENTATION_STATUS"] = "checkverifystatus";
25
25
  ExplorerApiActions["CHECK_PROXY_STATUS"] = "checkproxyverification";
26
26
  })(ExplorerApiActions || (ExplorerApiActions = {}));
27
27
  export const EXPLORER_GET_ACTIONS = [
28
- ExplorerApiActions.CHECK_STATUS,
28
+ ExplorerApiActions.CHECK_IMPLEMENTATION_STATUS,
29
29
  ExplorerApiActions.CHECK_PROXY_STATUS,
30
30
  ExplorerApiActions.GETSOURCECODE,
31
31
  ];
@@ -33,6 +33,7 @@ export var ExplorerApiErrors;
33
33
  (function (ExplorerApiErrors) {
34
34
  ExplorerApiErrors["ALREADY_VERIFIED"] = "Contract source code already verified";
35
35
  ExplorerApiErrors["ALREADY_VERIFIED_ALT"] = "Already Verified";
36
+ ExplorerApiErrors["NOT_VERIFIED"] = "Contract source code not verified";
36
37
  ExplorerApiErrors["VERIFICATION_PENDING"] = "Pending in queue";
37
38
  ExplorerApiErrors["PROXY_FAILED"] = "A corresponding implementation contract was unfortunately not detected for the proxy address.";
38
39
  ExplorerApiErrors["BYTECODE_MISMATCH"] = "Fail - Unable to verify. Compiled contract deployment bytecode does NOT match the transaction deployment bytecode.";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/deploy/verify/types.ts"],"names":[],"mappings":"AAsBA,kDAAkD;AAClD,MAAM,CAAN,IAAY,mBAeX;AAfD,WAAY,mBAAmB;IAC7B,uCAAgB,CAAA;IAChB,uCAAgB,CAAA;IAChB,gCAAS,CAAA;IACT,iCAAU,CAAA;IACV,iCAAU,CAAA;IACV,kCAAW,CAAA;IACX,kCAAW,CAAA;IACX,iCAAU,CAAA;IACV,iCAAU,CAAA;IACV,kCAAW,CAAA;IACX,kCAAW,CAAA;IACX,qCAAc,CAAA;IACd,mCAAY,CAAA;IACZ,iCAAU,CAAA;AACZ,CAAC,EAfW,mBAAmB,KAAnB,mBAAmB,QAe9B;AAQD,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,qDAA+B,CAAA;IAC/B,gEAA0C,CAAA;IAC1C,wDAAkC,CAAA;IAClC,wDAAkC,CAAA;IAClC,mEAA6C,CAAA;AAC/C,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kBAAkB,CAAC,YAAY;IAC/B,kBAAkB,CAAC,kBAAkB;IACrC,kBAAkB,CAAC,aAAa;CACjC,CAAC;AAEF,MAAM,CAAN,IAAY,iBAQX;AARD,WAAY,iBAAiB;IAC3B,+EAA0D,CAAA;IAC1D,8DAAyC,CAAA;IACzC,8DAAyC,CAAA;IACzC,mIAA8G,CAAA;IAC9G,6JAAwI,CAAA;IACxI,iEAA4C,CAAA;IAC5C,gDAA2B,CAAA;AAC7B,CAAC,EARW,iBAAiB,KAAjB,iBAAiB,QAQ5B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/deploy/verify/types.ts"],"names":[],"mappings":"AA+BA,kDAAkD;AAClD,MAAM,CAAN,IAAY,mBAeX;AAfD,WAAY,mBAAmB;IAC7B,uCAAgB,CAAA;IAChB,uCAAgB,CAAA;IAChB,gCAAS,CAAA;IACT,iCAAU,CAAA;IACV,iCAAU,CAAA;IACV,kCAAW,CAAA;IACX,kCAAW,CAAA;IACX,iCAAU,CAAA;IACV,iCAAU,CAAA;IACV,kCAAW,CAAA;IACX,kCAAW,CAAA;IACX,qCAAc,CAAA;IACd,mCAAY,CAAA;IACZ,iCAAU,CAAA;AACZ,CAAC,EAfW,mBAAmB,KAAnB,mBAAmB,QAe9B;AAQD,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,qDAA+B,CAAA;IAC/B,gEAA0C,CAAA;IAC1C,0DAAoC,CAAA;IACpC,uEAAiD,CAAA;IACjD,mEAA6C,CAAA;AAC/C,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kBAAkB,CAAC,2BAA2B;IAC9C,kBAAkB,CAAC,kBAAkB;IACrC,kBAAkB,CAAC,aAAa;CACjC,CAAC;AAEF,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,+EAA0D,CAAA;IAC1D,8DAAyC,CAAA;IACzC,uEAAkD,CAAA;IAClD,8DAAyC,CAAA;IACzC,mIAA8G,CAAA;IAC9G,6JAAwI,CAAA;IACxI,iEAA4C,CAAA;IAC5C,gDAA2B,CAAA;AAC7B,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B"}
@@ -1,10 +1,17 @@
1
1
  import { ethers, utils } from 'ethers';
2
+ import { Address } from '@hyperlane-xyz/utils';
2
3
  import { ChainMap, ChainName } from '../../types.js';
3
4
  import { ContractVerificationInput } from './types.js';
4
5
  export declare function formatFunctionArguments(fragment: utils.Fragment, args: any[]): any;
5
6
  export declare function getConstructorArguments(contract: ethers.Contract, bytecode: string): any;
6
- export declare function buildVerificationInput(name: string, address: string, constructorArguments: string, isProxy?: boolean): ContractVerificationInput;
7
- export declare function getContractVerificationInput(name: string, contract: ethers.Contract, bytecode: string, isProxy?: boolean): ContractVerificationInput;
7
+ export declare function buildVerificationInput(name: string, address: string, constructorArguments: string, isProxy?: boolean, expectedimplementation?: string): ContractVerificationInput;
8
+ export declare function getContractVerificationInput({ name, contract, bytecode, isProxy, expectedimplementation, }: {
9
+ name: string;
10
+ contract: ethers.Contract;
11
+ bytecode: string;
12
+ isProxy?: boolean;
13
+ expectedimplementation?: Address;
14
+ }): ContractVerificationInput;
8
15
  /**
9
16
  * Check if the artifact should be added to the verification inputs.
10
17
  * @param verificationInputs - The verification inputs for the chain.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/deploy/verify/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,CAKL;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,GACf,GAAG,CAIL;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE,OAAgC,GACxC,yBAAyB,CAO3B;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,GAChB,yBAAyB,CAG3B;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,QAAQ,CAAC,yBAAyB,EAAE,CAAC,EACzD,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAQT"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/deploy/verify/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAa,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,CAKL;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,GACf,GAAG,CAIL;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE,OAAgC,EACzC,sBAAsB,CAAC,EAAE,MAAM,GAC9B,yBAAyB,CAQ3B;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,sBAAsB,GACvB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,yBAAyB,CAS5B;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,QAAQ,CAAC,yBAAyB,EAAE,CAAC,EACzD,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAQT"}
@@ -9,17 +9,18 @@ export function getConstructorArguments(contract, bytecode) {
9
9
  throw new Error('deploy transaction not found');
10
10
  return tx.data.replace(bytecode, '');
11
11
  }
12
- export function buildVerificationInput(name, address, constructorArguments, isProxy = name.endsWith('Proxy')) {
12
+ export function buildVerificationInput(name, address, constructorArguments, isProxy = name.endsWith('Proxy'), expectedimplementation) {
13
13
  return {
14
14
  name: name.charAt(0).toUpperCase() + name.slice(1),
15
15
  address,
16
16
  constructorArguments,
17
17
  isProxy,
18
+ expectedimplementation,
18
19
  };
19
20
  }
20
- export function getContractVerificationInput(name, contract, bytecode, isProxy) {
21
+ export function getContractVerificationInput({ name, contract, bytecode, isProxy, expectedimplementation, }) {
21
22
  const args = getConstructorArguments(contract, bytecode);
22
- return buildVerificationInput(name, contract.address, args, isProxy);
23
+ return buildVerificationInput(name, contract.address, args, isProxy, expectedimplementation);
23
24
  }
24
25
  /**
25
26
  * Check if the artifact should be added to the verification inputs.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/verify/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMjD,MAAM,UAAU,uBAAuB,CACrC,QAAwB,EACxB,IAAW;IAEX,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACjE,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAyB,EACzB,QAAgB;IAEhB,MAAM,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IACtC,IAAI,EAAE,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,OAAe,EACf,oBAA4B,EAC5B,UAAmB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,OAAO;QACP,oBAAoB;QACpB,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAAY,EACZ,QAAyB,EACzB,QAAgB,EAChB,OAAiB;IAEjB,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,kBAAyD,EACzD,KAAgB,EAChB,QAAmC;IAEnC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CACpC,CAAC,gBAAgB,EAAE,EAAE,CACnB,gBAAgB,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QACvC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;QACrD,gBAAgB,CAAC,oBAAoB,KAAK,QAAQ,CAAC,oBAAoB;QACvE,gBAAgB,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/verify/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAM1D,MAAM,UAAU,uBAAuB,CACrC,QAAwB,EACxB,IAAW;IAEX,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACjE,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAyB,EACzB,QAAgB;IAEhB,MAAM,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IACtC,IAAI,EAAE,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,OAAe,EACf,oBAA4B,EAC5B,UAAmB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EACzC,sBAA+B;IAE/B,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,OAAO;QACP,oBAAoB;QACpB,OAAO;QACP,sBAAsB;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAC3C,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,sBAAsB,GAOvB;IACC,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,sBAAsB,CAC3B,IAAI,EACJ,QAAQ,CAAC,OAAO,EAChB,IAAI,EACJ,OAAO,EACP,sBAAsB,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,kBAAyD,EACzD,KAAgB,EAChB,QAAmC;IAEnC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CACpC,CAAC,gBAAgB,EAAE,EAAE,CACnB,gBAAgB,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QACvC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;QACrD,gBAAgB,CAAC,oBAAoB,KAAK,QAAQ,CAAC,oBAAoB;QACvE,gBAAgB,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAChD,CAAC;AACJ,CAAC"}