@hyperlane-xyz/sdk 4.0.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 (196) 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 +78 -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/EvmCoreReader.d.ts +1 -0
  11. package/dist/core/EvmCoreReader.d.ts.map +1 -1
  12. package/dist/core/EvmCoreReader.js +11 -2
  13. package/dist/core/EvmCoreReader.js.map +1 -1
  14. package/dist/core/EvmIcaModule.d.ts +3 -1
  15. package/dist/core/EvmIcaModule.d.ts.map +1 -1
  16. package/dist/core/EvmIcaModule.js +2 -2
  17. package/dist/core/EvmIcaModule.js.map +1 -1
  18. package/dist/core/HyperlaneCore.d.ts +23 -7
  19. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  20. package/dist/core/HyperlaneCore.js +82 -24
  21. package/dist/core/HyperlaneCore.js.map +1 -1
  22. package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
  23. package/dist/core/HyperlaneCoreChecker.js +1 -1
  24. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  25. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  26. package/dist/core/HyperlaneCoreDeployer.js +6 -1
  27. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  28. package/dist/core/HyperlaneRelayer.d.ts +328 -0
  29. package/dist/core/HyperlaneRelayer.d.ts.map +1 -0
  30. package/dist/core/HyperlaneRelayer.js +144 -0
  31. package/dist/core/HyperlaneRelayer.js.map +1 -0
  32. package/dist/core/schemas.d.ts +842 -842
  33. package/dist/deploy/EvmModuleDeployer.d.ts +4 -3
  34. package/dist/deploy/EvmModuleDeployer.d.ts.map +1 -1
  35. package/dist/deploy/EvmModuleDeployer.js +11 -4
  36. package/dist/deploy/EvmModuleDeployer.js.map +1 -1
  37. package/dist/deploy/HyperlaneDeployer.d.ts +1 -1
  38. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  39. package/dist/deploy/HyperlaneDeployer.js +20 -9
  40. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  41. package/dist/deploy/proxy.d.ts +1 -0
  42. package/dist/deploy/proxy.d.ts.map +1 -1
  43. package/dist/deploy/proxy.js +6 -0
  44. package/dist/deploy/proxy.js.map +1 -1
  45. package/dist/deploy/schemas.d.ts +20 -0
  46. package/dist/deploy/schemas.d.ts.map +1 -1
  47. package/dist/deploy/schemas.js +7 -0
  48. package/dist/deploy/schemas.js.map +1 -1
  49. package/dist/deploy/verify/ContractVerifier.d.ts +20 -6
  50. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  51. package/dist/deploy/verify/ContractVerifier.js +187 -97
  52. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  53. package/dist/deploy/verify/types.d.ts +15 -4
  54. package/dist/deploy/verify/types.d.ts.map +1 -1
  55. package/dist/deploy/verify/types.js +4 -3
  56. package/dist/deploy/verify/types.js.map +1 -1
  57. package/dist/deploy/verify/utils.d.ts +9 -2
  58. package/dist/deploy/verify/utils.d.ts.map +1 -1
  59. package/dist/deploy/verify/utils.js +4 -3
  60. package/dist/deploy/verify/utils.js.map +1 -1
  61. package/dist/hook/EvmHookModule.d.ts +45 -6
  62. package/dist/hook/EvmHookModule.d.ts.map +1 -1
  63. package/dist/hook/EvmHookModule.hardhat-test.js +334 -106
  64. package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
  65. package/dist/hook/EvmHookModule.js +293 -75
  66. package/dist/hook/EvmHookModule.js.map +1 -1
  67. package/dist/hook/EvmHookReader.d.ts +7 -12
  68. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  69. package/dist/hook/EvmHookReader.js +44 -41
  70. package/dist/hook/EvmHookReader.js.map +1 -1
  71. package/dist/hook/EvmHookReader.test.js +7 -3
  72. package/dist/hook/EvmHookReader.test.js.map +1 -1
  73. package/dist/hook/schemas.d.ts +4 -4
  74. package/dist/hook/types.d.ts +1 -0
  75. package/dist/hook/types.d.ts.map +1 -1
  76. package/dist/hook/types.js +8 -0
  77. package/dist/hook/types.js.map +1 -1
  78. package/dist/index.d.ts +61 -58
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +46 -46
  81. package/dist/index.js.map +1 -1
  82. package/dist/ism/EvmIsmModule.d.ts +7 -7
  83. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  84. package/dist/ism/EvmIsmModule.hardhat-test.js +30 -28
  85. package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
  86. package/dist/ism/EvmIsmModule.js +42 -60
  87. package/dist/ism/EvmIsmModule.js.map +1 -1
  88. package/dist/ism/EvmIsmReader.d.ts +5 -4
  89. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  90. package/dist/ism/EvmIsmReader.js +56 -36
  91. package/dist/ism/EvmIsmReader.js.map +1 -1
  92. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  93. package/dist/ism/HyperlaneIsmFactory.js +2 -0
  94. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  95. package/dist/ism/metadata/aggregation.test.js +1 -1
  96. package/dist/ism/metadata/aggregation.test.js.map +1 -1
  97. package/dist/ism/metadata/builder.hardhat-test.js +29 -14
  98. package/dist/ism/metadata/builder.hardhat-test.js.map +1 -1
  99. package/dist/ism/metadata/multisig.d.ts.map +1 -1
  100. package/dist/ism/metadata/multisig.js +1 -1
  101. package/dist/ism/metadata/multisig.js.map +1 -1
  102. package/dist/ism/utils.js +2 -2
  103. package/dist/ism/utils.js.map +1 -1
  104. package/dist/metadata/ChainMetadataManager.d.ts +2 -0
  105. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  106. package/dist/metadata/ChainMetadataManager.js +6 -0
  107. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  108. package/dist/metadata/agentConfig.d.ts +1968 -1723
  109. package/dist/metadata/agentConfig.d.ts.map +1 -1
  110. package/dist/metadata/chainMetadataTypes.d.ts +724 -618
  111. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  112. package/dist/metadata/chainMetadataTypes.js +63 -51
  113. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  114. package/dist/metadata/deploymentArtifacts.d.ts +2 -2
  115. package/dist/providers/MultiProvider.d.ts +7 -0
  116. package/dist/providers/MultiProvider.d.ts.map +1 -1
  117. package/dist/providers/MultiProvider.js +9 -1
  118. package/dist/providers/MultiProvider.js.map +1 -1
  119. package/dist/providers/SmartProvider/SmartProvider.d.ts +2 -1
  120. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  121. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +58 -0
  122. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -1
  123. package/dist/providers/SmartProvider/SmartProvider.js +34 -9
  124. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  125. package/dist/providers/transactions/schemas.d.ts +15 -2
  126. package/dist/providers/transactions/schemas.d.ts.map +1 -1
  127. package/dist/providers/transactions/schemas.js +1 -0
  128. package/dist/providers/transactions/schemas.js.map +1 -1
  129. package/dist/providers/transactions/submitter/builder/schemas.d.ts +67 -146
  130. package/dist/providers/transactions/submitter/builder/schemas.d.ts.map +1 -1
  131. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts +2 -2
  132. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts.map +1 -1
  133. package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js.map +1 -1
  134. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.d.ts +2 -2
  135. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.d.ts.map +1 -1
  136. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.js.map +1 -1
  137. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts +2 -2
  138. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts.map +1 -1
  139. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.js.map +1 -1
  140. package/dist/providers/transactions/submitter/schemas.d.ts +9 -34
  141. package/dist/providers/transactions/submitter/schemas.d.ts.map +1 -1
  142. package/dist/providers/transactions/submitter/schemas.js +2 -3
  143. package/dist/providers/transactions/submitter/schemas.js.map +1 -1
  144. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts +2 -2
  145. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts.map +1 -1
  146. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js +5 -5
  147. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js.map +1 -1
  148. package/dist/providers/transactions/transformer/schemas.d.ts +36 -76
  149. package/dist/providers/transactions/transformer/schemas.d.ts.map +1 -1
  150. package/dist/providers/transactions/transformer/schemas.js +1 -1
  151. package/dist/providers/transactions/transformer/schemas.js.map +1 -1
  152. package/dist/providers/transactions/types.d.ts +2 -1
  153. package/dist/providers/transactions/types.d.ts.map +1 -1
  154. package/dist/router/schemas.d.ts +196 -90
  155. package/dist/router/schemas.d.ts.map +1 -1
  156. package/dist/router/schemas.js +8 -1
  157. package/dist/router/schemas.js.map +1 -1
  158. package/dist/router/types.d.ts +2 -1
  159. package/dist/router/types.d.ts.map +1 -1
  160. package/dist/router/types.js.map +1 -1
  161. package/dist/test/testUtils.js +1 -1
  162. package/dist/test/testUtils.js.map +1 -1
  163. package/dist/token/EvmERC20WarpModule.d.ts +40 -5
  164. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  165. package/dist/token/EvmERC20WarpModule.hardhat-test.js +252 -1
  166. package/dist/token/EvmERC20WarpModule.hardhat-test.js.map +1 -1
  167. package/dist/token/EvmERC20WarpModule.js +136 -9
  168. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  169. package/dist/token/EvmERC20WarpRouteReader.d.ts +4 -9
  170. package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
  171. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +27 -2
  172. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
  173. package/dist/token/EvmERC20WarpRouteReader.js +19 -21
  174. package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
  175. package/dist/token/IToken.d.ts +6 -6
  176. package/dist/token/TokenConnection.d.ts +2 -2
  177. package/dist/token/deploy.d.ts +2 -2
  178. package/dist/token/deploy.d.ts.map +1 -1
  179. package/dist/token/deploy.js +20 -5
  180. package/dist/token/deploy.js.map +1 -1
  181. package/dist/token/schemas.d.ts +176 -88
  182. package/dist/token/schemas.d.ts.map +1 -1
  183. package/dist/utils/HyperlaneReader.d.ts +17 -0
  184. package/dist/utils/HyperlaneReader.d.ts.map +1 -0
  185. package/dist/utils/HyperlaneReader.js +21 -0
  186. package/dist/utils/HyperlaneReader.js.map +1 -0
  187. package/dist/utils/cosmos.d.ts +5 -0
  188. package/dist/utils/cosmos.d.ts.map +1 -1
  189. package/dist/utils/cosmos.js +7 -1
  190. package/dist/utils/cosmos.js.map +1 -1
  191. package/dist/warp/WarpCore.d.ts +12 -0
  192. package/dist/warp/WarpCore.d.ts.map +1 -1
  193. package/dist/warp/WarpCore.js +63 -32
  194. package/dist/warp/WarpCore.js.map +1 -1
  195. package/dist/warp/types.d.ts +10 -10
  196. package/package.json +3 -3
@@ -2,7 +2,6 @@
2
2
  import assert from 'assert';
3
3
  import { expect } from 'chai';
4
4
  import hre from 'hardhat';
5
- import { FallbackDomainRoutingHook__factory } from '@hyperlane-xyz/core';
6
5
  import { eqAddress, normalizeConfig } from '@hyperlane-xyz/utils';
7
6
  import { TestChainName, testChains } from '../consts/testChains.js';
8
7
  import { TestCoreDeployer } from '../core/TestCoreDeployer.js';
@@ -72,7 +71,6 @@ describe('EvmIsmModule', async () => {
72
71
  let multiProvider;
73
72
  let exampleRoutingConfig;
74
73
  let mailboxAddress;
75
- let newMailboxAddress;
76
74
  let fundingAccount;
77
75
  const chain = TestChainName.test4;
78
76
  let factoryAddresses;
@@ -93,12 +91,10 @@ describe('EvmIsmModule', async () => {
93
91
  const legacyIsmFactory = new HyperlaneIsmFactory(contractsMap, multiProvider);
94
92
  // mailbox
95
93
  mailboxAddress = (await new TestCoreDeployer(multiProvider, legacyIsmFactory).deployApp()).getContracts(chain).mailbox.address;
96
- // new mailbox
97
- newMailboxAddress = (await new TestCoreDeployer(multiProvider, legacyIsmFactory).deployApp()).getContracts(chain).mailbox.address;
98
94
  // example routing config
99
95
  exampleRoutingConfig = {
100
96
  type: IsmType.ROUTING,
101
- owner: await multiProvider.getSignerAddress(chain),
97
+ owner: (await multiProvider.getSignerAddress(chain)).toLowerCase(),
102
98
  domains: Object.fromEntries(testChains
103
99
  .filter((c) => c !== TestChainName.test4)
104
100
  .map((c) => [c, randomMultisigIsmConfig(3, 5)])),
@@ -179,14 +175,16 @@ describe('EvmIsmModule', async () => {
179
175
  it(`should skip deployment with warning if no chain metadata configured ${type}`, async () => {
180
176
  // create a new ISM
181
177
  const { ism } = await createIsm(exampleRoutingConfig);
182
- // add config for a domain the multiprovider doesn't have
183
- exampleRoutingConfig.domains['test5'] = {
184
- type: IsmType.MESSAGE_ID_MULTISIG,
185
- threshold: 1,
186
- validators: [randomAddress()],
178
+ // create an updated config with a domain the multiprovider doesn't have
179
+ const updatedRoutingConfig = {
180
+ ...exampleRoutingConfig,
181
+ domains: {
182
+ ...exampleRoutingConfig.domains,
183
+ test5: randomMultisigIsmConfig(3, 5),
184
+ },
187
185
  };
188
186
  // expect 0 txs, as adding test5 domain is no-op
189
- await expectTxsAndUpdate(ism, exampleRoutingConfig, 0);
187
+ await expectTxsAndUpdate(ism, updatedRoutingConfig, 0);
190
188
  });
191
189
  it(`update route in an existing ${type}`, async () => {
192
190
  // create a new ISM
@@ -224,7 +222,6 @@ describe('EvmIsmModule', async () => {
224
222
  await expectTxsAndUpdate(ism, exampleRoutingConfig, 1);
225
223
  // domains should have decreased by 1
226
224
  const numDomainsAfter = Object.keys((await ism.read()).domains).length;
227
- console.log(numDomainsBefore, numDomainsAfter);
228
225
  expect(numDomainsBefore - 1).to.equal(numDomainsAfter);
229
226
  });
230
227
  it(`updates owner in an existing ${type}`, async () => {
@@ -284,23 +281,28 @@ describe('EvmIsmModule', async () => {
284
281
  expect(eqAddress(initialIsmAddress, ism.serialize().deployedIsm)).to.be
285
282
  .true;
286
283
  });
284
+ it(`update threshold in an existing ${type} with Module creating using constructor`, async () => {
285
+ // create a an initial ISM
286
+ const { initialIsmAddress } = await createIsm(exampleRoutingConfig);
287
+ // update the threshold for a domain
288
+ exampleRoutingConfig.domains[TestChainName.test2].threshold = 2;
289
+ // create a new IsmModule using it's constructor. Set it's deployedIsm address to the initialIsmAddr
290
+ const ism = new EvmIsmModule(multiProvider, {
291
+ chain,
292
+ config: exampleRoutingConfig,
293
+ addresses: {
294
+ ...factoryAddresses,
295
+ mailbox: mailboxAddress,
296
+ deployedIsm: initialIsmAddress,
297
+ },
298
+ });
299
+ // expect 1 tx to update threshold for test2 domain
300
+ await expectTxsAndUpdate(ism, exampleRoutingConfig, 1);
301
+ // expect the ISM address to be the same
302
+ expect(eqAddress(initialIsmAddress, ism.serialize().deployedIsm)).to.be
303
+ .true;
304
+ });
287
305
  }
288
- it(`redeploy same config if the mailbox address changes for defaultFallbackRoutingIsm`, async () => {
289
- exampleRoutingConfig.type = IsmType.FALLBACK_ROUTING;
290
- // create a new ISM
291
- const { ism, initialIsmAddress } = await createIsm(exampleRoutingConfig);
292
- // point to new mailbox
293
- ism.setNewMailbox(newMailboxAddress);
294
- // expect a new ISM to be deployed, so no in-place updates to return
295
- await expectTxsAndUpdate(ism, exampleRoutingConfig, 0);
296
- // expect the ISM address to be different
297
- expect(eqAddress(initialIsmAddress, ism.serialize().deployedIsm)).to.be
298
- .false;
299
- // expect that the ISM is configured with the new mailbox
300
- const onchainIsm = FallbackDomainRoutingHook__factory.connect(ism.serialize().deployedIsm, multiProvider.getSigner(chain));
301
- const onchainMailbox = await onchainIsm['mailbox()']();
302
- expect(eqAddress(onchainMailbox, newMailboxAddress)).to.be.true;
303
- });
304
306
  });
305
307
  });
306
308
  //# sourceMappingURL=EvmIsmModule.hardhat-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmIsmModule.hardhat-test.js","sourceRoot":"","sources":["../../src/ism/EvmIsmModule.hardhat-test.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,OAAO,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAW,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAGL,OAAO,EACP,UAAU,GAIX,MAAM,YAAY,CAAC;AAEpB,MAAM,uBAAuB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAqB,EAAE;IAC1E,MAAM,UAAU,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IACzD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,oBAAoB;QAClC,UAAU;QACV,SAAS,EAAE,CAAC;KACb,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,gBAAgB;IACvB,MAAM,OAAO,GAAG;QACd,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,oBAAoB;QAC/B,UAAU,CAAC,OAAO;QAClB,UAAU,CAAC,IAAI;KAChB,CAAC;IACF,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAa,EAAE;IAC7D,MAAM,UAAU,GACd,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3E,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,KAAK,EAAE,aAAa,EAAE;gBACtB,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACvD;aACF,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC;iBACjC,IAAI,CAAC,CAAC,CAAC;iBACP,GAAG,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,MAAM,GAAyB;gBACnC,IAAI,EAAE,OAAO,CAAC,WAAW;gBACzB,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1B,OAAO;aACR,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACrB,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,OAAO,CAAC,eAAe;gBAC7B,OAAO,EAAE,aAAa,EAAE;aACzB,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC,CAAC;AAEF,QAAQ,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IAClC,IAAI,aAA4B,CAAC;IACjC,IAAI,oBAAsC,CAAC;IAC3C,IAAI,cAAuB,CAAC;IAC5B,IAAI,iBAA0B,CAAC;IAC/B,IAAI,cAAsB,CAAC;IAE3B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IAClC,IAAI,gBAA2D,CAAC;IAChE,IAAI,gBAA2D,CAAC;IAEhE,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,cAAc,GAAG,MAAM,CAAC;QACxB,aAAa,GAAG,aAAa,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,MAAM,YAAY,GAAG,MAAM,IAAI,6BAA6B,CAC1D,aAAa,CACd,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnD,2CAA2C;QAC3C,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACvC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnE,GAAG,CAAC,GAAG,CAAC;gBACN,YAAY,CAAC,KAAK,CAAC,CAAC,GAAkC,CAAC,CAAC,OAAO,CAAC;YAClE,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAA6B,CAA8C,CAAC;QAE/E,6DAA6D;QAC7D,MAAM,gBAAgB,GAAG,IAAI,mBAAmB,CAC9C,YAAY,EACZ,aAAa,CACd,CAAC;QAEF,UAAU;QACV,cAAc,GAAG,CACf,MAAM,IAAI,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,SAAS,EAAE,CACxE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAEtC,cAAc;QACd,iBAAiB,GAAG,CAClB,MAAM,IAAI,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,SAAS,EAAE,CACxE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAEtC,yBAAyB;QACzB,oBAAoB,GAAG;YACrB,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,KAAK,EAAE,MAAM,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAClD,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,UAAU;iBACP,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC;iBACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAClD;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,KAAK,UAAU,kBAAkB,CAAC,OAAgB;QAChD,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,MAAM,cAAc,CAAC,eAAe,CAAC;YACnC,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;SAC1C,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,uBAAuB,CAAC;YAC3C,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,0DAA0D;IAC1D,KAAK,UAAU,kBAAkB,CAC/B,GAAiB,EACjB,MAAiB,EACjB,CAAS;QAET,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAqB,CAAC;IAC1B,IAAI,UAAqB,CAAC;IAE1B,yDAAyD;IACzD,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,uBAAuB,GAAG,eAAe,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,CAAC,eAAe,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,KAAK,UAAU,SAAS,CACtB,MAAiB;QAEjB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;YACpC,KAAK;YACL,MAAM;YACN,qBAAqB,EAAE,gBAAgB;YACvC,OAAO,EAAE,cAAc;YACvB,aAAa;SACd,CAAC,CAAC;QACH,OAAO,GAAG,GAAG,CAAC;QACd,UAAU,GAAG,MAAM,CAAC;QACpB,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;IACjE,CAAC;IAED,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC5B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,GAAG,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;YAChC,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,OAAO,CAAC,eAAe;gBAC7B,OAAO;aACR,CAAC;YACF,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/D,EAAE,CAAC,WAAW,IAAI,iCAAiC,EAAE,KAAK,IAAI,EAAE;gBAC9D,oBAAoB,CAAC,IAAI,GAAG,IAEA,CAAC;gBAC7B,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,EAAE,CAAC,gCAAgC,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;gBACjD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;gBACjC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC5B,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/D,UAAU,CAAC,GAAG,EAAE;gBACd,oBAAoB,CAAC,IAAI,GAAG,IAEA,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uEAAuE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBAC3F,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC;gBAEtD,yDAAyD;gBACzD,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;oBACtC,IAAI,EAAE,OAAO,CAAC,mBAAmB;oBACjC,SAAS,EAAE,CAAC;oBACZ,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;iBAC9B,CAAC;gBAEF,gDAAgD;gBAChD,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+BAA+B,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBACnD,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,MAAM,SAAS,CAChD,oBAAoB,CACrB,CAAC;gBAEF,yDAAyD;gBAEvD,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CACjD,CAAC,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBAErC,qCAAqC;gBACrC,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAEvD,yCAAyC;gBACzC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACpE,IAAI,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gCAAgC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBACpD,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,MAAM,SAAS,CAChD,oBAAoB,CACrB,CAAC;gBAEF,iDAAiD;gBACjD,OAAO,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAEzD,uCAAuC;gBACvC,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAEvD,wCAAwC;gBACxC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACpE,IAAI,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gCAAgC,IAAI,+BAA+B,EAAE,KAAK,IAAI,EAAE;gBACjF,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC;gBAEtD,4CAA4C;gBAC5C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CACjC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC,OAAO,CACjD,CAAC,MAAM,CAAC;gBAET,iFAAiF;gBACjF,OAAO,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACzD,aAAa,GAAG,aAAa,CAAC,SAAS;gBACrC,kCAAkC;gBAClC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,CACpD,CAAC,MAAM,CAAC;gBAET,uCAAuC;gBACvC,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAEvD,qCAAqC;gBACrC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAChC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC,OAAO,CACjD,CAAC,MAAM,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;gBAC/C,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gCAAgC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBACpD,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,MAAM,SAAS,CAChD,oBAAoB,CACrB,CAAC;gBAEF,0BAA0B;gBAC1B,oBAAoB,CAAC,KAAK,GAAG,aAAa,EAAE,CAAC;gBAE7C,oCAAoC;gBACpC,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAEvD,wCAAwC;gBACxC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACpE,IAAI,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6BAA6B,IAAI,mCAAmC,EAAE,KAAK,IAAI,EAAE;gBAClF,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,MAAM,SAAS,CAChD,oBAAoB,CACrB,CAAC;gBAEF,mBAAmB;gBACnB,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAEvD,wCAAwC;gBACxC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACpE,IAAI,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+BAA+B,IAAI,wBAAwB,EAAE,KAAK,IAAI,EAAE;gBACzE,gCAAgC;gBAChC,oBAAoB,CAAC,KAAK,GAAG,aAAa,EAAE,CAAC;gBAC7C,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC;gBAEjD,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,MAAM,SAAS,CAChD,oBAAoB,CACrB,CAAC;gBAEF,6DAA6D;gBAC7D,oBAAoB,CAAC,KAAK,GAAG,aAAa,EAAE,CAAC;gBAC7C,aAAa,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;gBAExD,oCAAoC;gBACpC,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAEvD,yCAAyC;gBACzC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACpE,IAAI,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oCAAoC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBACxD,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,MAAM,SAAS,CAChD,oBAAoB,CACrB,CAAC;gBAEF,qCAAqC;gBAEnC,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CACjD,CAAC,UAAU,GAAG,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAElD,uDAAuD;gBACvD,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAEvD,wCAAwC;gBACxC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACpE,IAAI,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mCAAmC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBACvD,mBAAmB;gBACnB,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,MAAM,SAAS,CAChD,oBAAoB,CACrB,CAAC;gBAEF,oCAAoC;gBAElC,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CACjD,CAAC,SAAS,GAAG,CAAC,CAAC;gBAEhB,mDAAmD;gBACnD,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAEvD,wCAAwC;gBACxC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACpE,IAAI,CAAC;YACV,CAAC,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;YACjG,oBAAoB,CAAC,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAErD,mBAAmB;YACnB,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAEzE,uBAAuB;YACvB,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YAErC,oEAAoE;YACpE,MAAM,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;YAEvD,yCAAyC;YACzC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;iBACpE,KAAK,CAAC;YAET,yDAAyD;YACzD,MAAM,UAAU,GAAG,kCAAkC,CAAC,OAAO,CAC3D,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,EAC3B,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAC/B,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"EvmIsmModule.hardhat-test.js","sourceRoot":"","sources":["../../src/ism/EvmIsmModule.hardhat-test.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,18 @@
1
1
  import { ethers } from 'ethers';
2
- import { DefaultFallbackRoutingIsm__factory, DomainRoutingIsmFactory__factory, DomainRoutingIsm__factory, IAggregationIsm__factory, IInterchainSecurityModule__factory, IMultisigIsm__factory, MailboxClient__factory, OPStackIsm__factory, Ownable__factory, PausableIsm__factory, TestIsm__factory, TrustedRelayerIsm__factory, } from '@hyperlane-xyz/core';
3
- import { assert, configDeepEquals, eqAddress, normalizeConfig, objFilter, rootLogger, } from '@hyperlane-xyz/utils';
2
+ import { DefaultFallbackRoutingIsm__factory, DomainRoutingIsmFactory__factory, DomainRoutingIsm__factory, IAggregationIsm__factory, IInterchainSecurityModule__factory, IMultisigIsm__factory, OPStackIsm__factory, Ownable__factory, PausableIsm__factory, TestIsm__factory, TrustedRelayerIsm__factory, } from '@hyperlane-xyz/core';
3
+ import { assert, deepEquals, eqAddress, normalizeConfig, objFilter, rootLogger, } from '@hyperlane-xyz/utils';
4
4
  import { attachAndConnectContracts } from '../contracts/contracts.js';
5
5
  import { HyperlaneModule, } from '../core/AbstractHyperlaneModule.js';
6
6
  import { EvmModuleDeployer } from '../deploy/EvmModuleDeployer.js';
7
7
  import { proxyFactoryFactories, } from '../deploy/contracts.js';
8
8
  import { findMatchingLogEvents } from '../utils/logUtils.js';
9
9
  import { EvmIsmReader } from './EvmIsmReader.js';
10
+ import { IsmConfigSchema } from './schemas.js';
10
11
  import { IsmType, MUTABLE_ISM_TYPE, } from './types.js';
11
12
  import { calculateDomainRoutingDelta } from './utils.js';
12
13
  export class EvmIsmModule extends HyperlaneModule {
13
14
  multiProvider;
15
+ contractVerifier;
14
16
  logger = rootLogger.child({ module: 'EvmIsmModule' });
15
17
  reader;
16
18
  deployer;
@@ -21,8 +23,10 @@ export class EvmIsmModule extends HyperlaneModule {
21
23
  // return a number, and EVM the domainId and chainId are the same.
22
24
  domainId;
23
25
  constructor(multiProvider, params, contractVerifier) {
26
+ params.config = IsmConfigSchema.parse(params.config);
24
27
  super(params);
25
28
  this.multiProvider = multiProvider;
29
+ this.contractVerifier = contractVerifier;
26
30
  this.reader = new EvmIsmReader(multiProvider, params.chain);
27
31
  this.deployer = new EvmModuleDeployer(this.multiProvider, {}, this.logger, contractVerifier);
28
32
  this.factories = attachAndConnectContracts({
@@ -42,39 +46,29 @@ export class EvmIsmModule extends HyperlaneModule {
42
46
  }
43
47
  // whoever calls update() needs to ensure that targetConfig has a valid owner
44
48
  async update(targetConfig) {
49
+ targetConfig = IsmConfigSchema.parse(targetConfig);
50
+ // Do not support updating to a custom ISM address
51
+ if (typeof targetConfig === 'string') {
52
+ throw new Error('Invalid targetConfig: Updating to a custom ISM address is not supported. Please provide a valid ISM configuration.');
53
+ }
45
54
  // save current config for comparison
46
55
  // normalize the config to ensure it's in a consistent format for comparison
47
56
  const currentConfig = normalizeConfig(await this.read());
48
57
  // Update the config
49
58
  this.args.config = targetConfig;
50
- // moduleMatchesConfig expects any domain filtering to have been done already
51
- if (typeof targetConfig !== 'string' &&
52
- (targetConfig.type === IsmType.ROUTING ||
53
- targetConfig.type === IsmType.FALLBACK_ROUTING)) {
54
- // filter for known domains
55
- const { availableDomains } = this.filterRoutingIsmDomains({
56
- config: targetConfig,
57
- });
58
- targetConfig.domains = availableDomains;
59
- }
59
+ targetConfig = normalizeConfig(targetConfig);
60
+ assert(typeof targetConfig === 'object', 'normalized targetConfig should be an object');
61
+ // if it's a fallback routing ISM, do a mailbox diff check
60
62
  // If configs match, no updates needed
61
- if (configDeepEquals(currentConfig, targetConfig)) {
63
+ if (deepEquals(currentConfig, targetConfig)) {
62
64
  return [];
63
65
  }
64
66
  // Else, we have to figure out what an update for this ISM entails
65
- // If target config is an address ISM, just update the address
66
- // if config -> address ISM, update address
67
- // if address ISM -> address ISM, update address
68
- if (typeof targetConfig === 'string') {
69
- // TODO: https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3773
70
- this.args.addresses.deployedIsm = targetConfig;
71
- return [];
72
- }
73
67
  // Check if we need to deploy a new ISM
74
68
  if (
75
- // if address ISM -> config, do a new deploy
69
+ // if updating from an address/custom config to a proper ISM config, do a new deploy
76
70
  typeof currentConfig === 'string' ||
77
- // if config -> config, AND types are different, do a new deploy
71
+ // if updating a proper ISM config whose types are different, do a new deploy
78
72
  currentConfig.type !== targetConfig.type ||
79
73
  // if it is not a mutable ISM, do a new deploy
80
74
  !MUTABLE_ISM_TYPE.includes(targetConfig.type)) {
@@ -94,24 +88,7 @@ export class EvmIsmModule extends HyperlaneModule {
94
88
  destination: this.chain,
95
89
  ismType: targetConfig.type,
96
90
  });
97
- const provider = this.multiProvider.getProvider(this.chain);
98
91
  logger.debug(`Updating ${targetConfig.type} on ${this.chain}`);
99
- // if it's a fallback routing ISM, do a mailbox diff check and deploy a new ISM if needed
100
- if (targetConfig.type === IsmType.FALLBACK_ROUTING) {
101
- // can only retrieve mailbox address if current ISM type is also Fallback Routing
102
- const mailboxAddress = currentConfig.type === IsmType.FALLBACK_ROUTING
103
- ? await MailboxClient__factory.connect(this.args.addresses.deployedIsm, provider).mailbox()
104
- : ''; // empty string to force a mailbox diff
105
- // if mailbox delta, deploy new routing ISM before updating
106
- // this will always be the case if the current ISM is not a fallback routing ISM
107
- if (!eqAddress(mailboxAddress, this.args.addresses.mailbox)) {
108
- const newIsm = await this.deployRoutingIsm({
109
- config: targetConfig,
110
- logger,
111
- });
112
- this.args.addresses.deployedIsm = newIsm.address;
113
- }
114
- }
115
92
  // if it's either of the routing ISMs, update their submodules
116
93
  let updateTxs = [];
117
94
  if (targetConfig.type === IsmType.ROUTING ||
@@ -123,6 +100,7 @@ export class EvmIsmModule extends HyperlaneModule {
123
100
  });
124
101
  }
125
102
  // Lastly, check if the resolved owner is different from the current owner
103
+ const provider = this.multiProvider.getProvider(this.chain);
126
104
  const owner = await Ownable__factory.connect(this.args.addresses.deployedIsm, provider).owner();
127
105
  // Return an ownership transfer transaction if required
128
106
  if (!eqAddress(targetConfig.owner, owner)) {
@@ -136,8 +114,7 @@ export class EvmIsmModule extends HyperlaneModule {
136
114
  return updateTxs;
137
115
  }
138
116
  // manually write static create function
139
- static async create({ chain, config, proxyFactoryFactories, mailbox, multiProvider, }) {
140
- // instantiate new EvmIsmModule
117
+ static async create({ chain, config, proxyFactoryFactories, mailbox, multiProvider, contractVerifier, }) {
141
118
  const module = new EvmIsmModule(multiProvider, {
142
119
  addresses: {
143
120
  ...proxyFactoryFactories,
@@ -146,8 +123,7 @@ export class EvmIsmModule extends HyperlaneModule {
146
123
  },
147
124
  chain,
148
125
  config,
149
- });
150
- // deploy ISM and assign address to module
126
+ }, contractVerifier);
151
127
  const deployedIsm = await module.deploy({ config });
152
128
  module.args.addresses.deployedIsm = deployedIsm.address;
153
129
  return module;
@@ -155,6 +131,19 @@ export class EvmIsmModule extends HyperlaneModule {
155
131
  async updateRoutingIsm({ current, target, logger, }) {
156
132
  const routingIsmInterface = DomainRoutingIsm__factory.createInterface();
157
133
  const updateTxs = [];
134
+ // filter out domains which are not part of the multiprovider
135
+ current = {
136
+ ...current,
137
+ domains: this.filterRoutingIsmDomains({
138
+ config: current,
139
+ }).availableDomains,
140
+ };
141
+ target = {
142
+ ...target,
143
+ domains: this.filterRoutingIsmDomains({
144
+ config: target,
145
+ }).availableDomains,
146
+ };
158
147
  const { domainsToEnroll, domainsToUnenroll } = calculateDomainRoutingDelta(current, target);
159
148
  // Enroll domains
160
149
  for (const origin of domainsToEnroll) {
@@ -188,6 +177,7 @@ export class EvmIsmModule extends HyperlaneModule {
188
177
  return updateTxs;
189
178
  }
190
179
  async deploy({ config, }) {
180
+ config = IsmConfigSchema.parse(config);
191
181
  // If it's an address ISM, just return a base ISM
192
182
  if (typeof config === 'string') {
193
183
  // TODO: https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3773
@@ -269,14 +259,18 @@ export class EvmIsmModule extends HyperlaneModule {
269
259
  const { availableDomains, availableDomainIds } = this.filterRoutingIsmDomains({
270
260
  config,
271
261
  });
272
- config.domains = availableDomains;
262
+ config = {
263
+ ...config,
264
+ domains: availableDomains,
265
+ };
273
266
  // deploy the submodules first
274
- const submoduleAddresses = await Promise.all(Object.keys(config.domains).map(async (origin) => {
267
+ const submoduleAddresses = [];
268
+ for (const origin of Object.keys(config.domains)) {
275
269
  const { address } = await this.deploy({
276
270
  config: config.domains[origin],
277
271
  });
278
- return address;
279
- }));
272
+ submoduleAddresses.push(address);
273
+ }
280
274
  if (config.type === IsmType.FALLBACK_ROUTING) {
281
275
  // deploy the fallback routing ISM
282
276
  logger.debug('Deploying fallback routing ISM ...');
@@ -334,18 +328,6 @@ export class EvmIsmModule extends HyperlaneModule {
334
328
  const signer = this.multiProvider.getSigner(this.args.chain);
335
329
  return IAggregationIsm__factory.connect(address, signer);
336
330
  }
337
- // Updates the mailbox address if it is different from the current one.
338
- // Logs changes and updates the internal state of the module.
339
- setNewMailbox(newMailboxAddress) {
340
- const currentMailboxAddress = this.args.addresses.mailbox;
341
- if (currentMailboxAddress === newMailboxAddress) {
342
- this.logger.debug(`Mailbox address is already set to ${newMailboxAddress}`);
343
- return;
344
- }
345
- this.logger.debug(`Setting new mailbox address from ${currentMailboxAddress} to ${newMailboxAddress}`);
346
- // Update the mailbox address in the arguments
347
- this.args.addresses.mailbox = newMailboxAddress;
348
- }
349
331
  // filtering out domains which are not part of the multiprovider
350
332
  filterRoutingIsmDomains({ config }) {
351
333
  const availableDomainIds = [];
@@ -1 +1 @@
1
- {"version":3,"file":"EvmIsmModule.js","sourceRoot":"","sources":["../../src/ism/EvmIsmModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmIsmModule.js","sourceRoot":"","sources":["../../src/ism/EvmIsmModule.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { providers } from 'ethers';
2
1
  import { Address, WithAddress } from '@hyperlane-xyz/utils';
3
2
  import { MultiProvider } from '../providers/MultiProvider.js';
4
3
  import { ChainNameOrId } from '../types.js';
5
- import { AggregationIsmConfig, IsmConfig, MultisigIsmConfig, NullIsmConfig, RoutingIsmConfig } from './types.js';
4
+ import { HyperlaneReader } from '../utils/HyperlaneReader.js';
5
+ import { AggregationIsmConfig, IsmConfig, ModuleType, MultisigIsmConfig, NullIsmConfig, RoutingIsmConfig } from './types.js';
6
6
  export type DerivedIsmConfig = WithAddress<Exclude<IsmConfig, Address>>;
7
7
  export interface IsmReader {
8
8
  deriveIsmConfig(address: Address): Promise<DerivedIsmConfig>;
@@ -10,12 +10,12 @@ export interface IsmReader {
10
10
  deriveAggregationConfig(address: Address): Promise<WithAddress<AggregationIsmConfig>>;
11
11
  deriveMultisigConfig(address: Address): Promise<WithAddress<MultisigIsmConfig>>;
12
12
  deriveNullConfig(address: Address): Promise<WithAddress<NullIsmConfig>>;
13
+ assertModuleType(moduleType: ModuleType, expectedModuleType: ModuleType): void;
13
14
  }
14
- export declare class EvmIsmReader implements IsmReader {
15
+ export declare class EvmIsmReader extends HyperlaneReader implements IsmReader {
15
16
  protected readonly multiProvider: MultiProvider;
16
17
  protected readonly chain: ChainNameOrId;
17
18
  protected readonly concurrency: number;
18
- protected readonly provider: providers.Provider;
19
19
  protected readonly logger: import("pino").default.Logger<never>;
20
20
  constructor(multiProvider: MultiProvider, chain: ChainNameOrId, concurrency?: number);
21
21
  deriveIsmConfig(address: Address): Promise<DerivedIsmConfig>;
@@ -23,5 +23,6 @@ export declare class EvmIsmReader implements IsmReader {
23
23
  deriveAggregationConfig(address: Address): Promise<WithAddress<AggregationIsmConfig>>;
24
24
  deriveMultisigConfig(address: string): Promise<WithAddress<MultisigIsmConfig>>;
25
25
  deriveNullConfig(address: Address): Promise<WithAddress<NullIsmConfig>>;
26
+ assertModuleType(moduleType: ModuleType, expectedModuleType: ModuleType): void;
26
27
  }
27
28
  //# sourceMappingURL=EvmIsmReader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmIsmReader.d.ts","sourceRoot":"","sources":["../../src/ism/EvmIsmReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAE,MAAM,QAAQ,CAAC;AAY3C,OAAO,EACL,OAAO,EACP,WAAW,EAIZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,oBAAoB,EACpB,SAAS,EAGT,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAExE,MAAM,WAAW,SAAS;IACxB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7D,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC9E,uBAAuB,CACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,oBAAoB,CAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3C,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;CACzE;AAED,qBAAa,YAAa,YAAW,SAAS;IAK1C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;IANxC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,uCAAgD;gBAGpD,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa,EACpB,WAAW,GAAE,MAEM;IAKlC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8B5D,mBAAmB,CACvB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IA2CnC,uBAAuB,CAC3B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAsBvC,oBAAoB,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAyBpC,gBAAgB,CACpB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;CAkEvC"}
1
+ {"version":3,"file":"EvmIsmReader.d.ts","sourceRoot":"","sources":["../../src/ism/EvmIsmReader.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,OAAO,EACP,WAAW,EAKZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EACL,oBAAoB,EACpB,SAAS,EAET,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAExE,MAAM,WAAW,SAAS;IACxB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7D,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC9E,uBAAuB,CACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,oBAAoB,CAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3C,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IACxE,gBAAgB,CACd,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,UAAU,GAC7B,IAAI,CAAC;CACT;AAED,qBAAa,YAAa,SAAQ,eAAgB,YAAW,SAAS;IAIlE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;IALxC,SAAS,CAAC,QAAQ,CAAC,MAAM,uCAAgD;gBAGpD,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa,EACpB,WAAW,GAAE,MAEM;IAKlC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkD5D,mBAAmB,CACvB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IA2CnC,uBAAuB,CAC3B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAsBvC,oBAAoB,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IA0BpC,gBAAgB,CACpB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAqEtC,gBAAgB,CACd,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,UAAU,GAC7B,IAAI;CAMR"}
@@ -1,49 +1,69 @@
1
1
  import { ethers } from 'ethers';
2
- import { DefaultFallbackRoutingIsm__factory, IInterchainSecurityModule__factory, IMultisigIsm__factory, OPStackIsm__factory, PausableIsm__factory, StaticAggregationIsm__factory, TestIsm__factory, TrustedRelayerIsm__factory, } from '@hyperlane-xyz/core';
3
- import { assert, concurrentMap, rootLogger, } from '@hyperlane-xyz/utils';
2
+ import { DefaultFallbackRoutingIsm__factory, IInterchainSecurityModule__factory, IMultisigIsm__factory, OPStackIsm__factory, PausableIsm__factory, StaticAggregationIsm__factory, TrustedRelayerIsm__factory, } from '@hyperlane-xyz/core';
3
+ import { assert, concurrentMap, getLogLevel, rootLogger, } from '@hyperlane-xyz/utils';
4
4
  import { DEFAULT_CONTRACT_READ_CONCURRENCY } from '../consts/concurrency.js';
5
+ import { HyperlaneReader } from '../utils/HyperlaneReader.js';
5
6
  import { IsmType, ModuleType, } from './types.js';
6
- export class EvmIsmReader {
7
+ export class EvmIsmReader extends HyperlaneReader {
7
8
  multiProvider;
8
9
  chain;
9
10
  concurrency;
10
- provider;
11
11
  logger = rootLogger.child({ module: 'EvmIsmReader' });
12
12
  constructor(multiProvider, chain, concurrency = multiProvider.tryGetRpcConcurrency(chain) ?? DEFAULT_CONTRACT_READ_CONCURRENCY) {
13
+ super(multiProvider, chain);
13
14
  this.multiProvider = multiProvider;
14
15
  this.chain = chain;
15
16
  this.concurrency = concurrency;
16
- this.provider = multiProvider.getProvider(chain);
17
17
  }
18
18
  async deriveIsmConfig(address) {
19
- const ism = IInterchainSecurityModule__factory.connect(address, this.provider);
20
- const moduleType = await ism.moduleType();
21
- this.logger.debug('Deriving ISM config', { address, moduleType });
22
- switch (moduleType) {
23
- case ModuleType.UNUSED:
24
- throw new Error('UNUSED does not have a corresponding IsmType');
25
- case ModuleType.ROUTING:
26
- // IsmType is either ROUTING or FALLBACK_ROUTING, but that's determined inside deriveRoutingConfig
27
- return this.deriveRoutingConfig(address);
28
- case ModuleType.AGGREGATION:
29
- return this.deriveAggregationConfig(address);
30
- case ModuleType.LEGACY_MULTISIG:
31
- throw new Error('LEGACY_MULTISIG is deprecated and not supported');
32
- case ModuleType.MERKLE_ROOT_MULTISIG:
33
- case ModuleType.MESSAGE_ID_MULTISIG:
34
- return this.deriveMultisigConfig(address);
35
- case ModuleType.NULL:
36
- return this.deriveNullConfig(address);
37
- case ModuleType.CCIP_READ:
38
- throw new Error('CCIP_READ does not have a corresponding IsmType');
39
- default:
40
- throw new Error('Unknown ModuleType');
19
+ let moduleType = undefined;
20
+ let derivedIsmConfig;
21
+ try {
22
+ const ism = IInterchainSecurityModule__factory.connect(address, this.provider);
23
+ this.logger.debug('Deriving IsmConfig:', { address });
24
+ // Temporarily turn off SmartProvider logging
25
+ // Provider errors are expected because deriving will call methods that may not exist in the Bytecode
26
+ this.setSmartProviderLogLevel('silent');
27
+ moduleType = await ism.moduleType();
28
+ switch (moduleType) {
29
+ case ModuleType.UNUSED:
30
+ throw new Error('UNUSED does not have a corresponding IsmType');
31
+ case ModuleType.ROUTING:
32
+ // IsmType is either ROUTING or FALLBACK_ROUTING, but that's determined inside deriveRoutingConfig
33
+ derivedIsmConfig = await this.deriveRoutingConfig(address);
34
+ break;
35
+ case ModuleType.AGGREGATION:
36
+ derivedIsmConfig = await this.deriveAggregationConfig(address);
37
+ break;
38
+ case ModuleType.LEGACY_MULTISIG:
39
+ throw new Error('LEGACY_MULTISIG is deprecated and not supported');
40
+ case ModuleType.MERKLE_ROOT_MULTISIG:
41
+ case ModuleType.MESSAGE_ID_MULTISIG:
42
+ derivedIsmConfig = await this.deriveMultisigConfig(address);
43
+ break;
44
+ case ModuleType.NULL:
45
+ derivedIsmConfig = await this.deriveNullConfig(address);
46
+ break;
47
+ case ModuleType.CCIP_READ:
48
+ throw new Error('CCIP_READ does not have a corresponding IsmType');
49
+ default:
50
+ throw new Error(`Unknown ISM ModuleType: ${moduleType}`);
51
+ }
41
52
  }
53
+ catch (e) {
54
+ const errorMessage = `Failed to derive ISM module type ${moduleType} (${address}):\n\t${e}`;
55
+ this.logger.debug(errorMessage);
56
+ throw new Error(errorMessage);
57
+ }
58
+ finally {
59
+ this.setSmartProviderLogLevel(getLogLevel()); // returns to original level defined by rootLogger
60
+ }
61
+ return derivedIsmConfig;
42
62
  }
43
63
  async deriveRoutingConfig(address) {
44
64
  const ism = DefaultFallbackRoutingIsm__factory.connect(address, this.provider);
45
65
  const owner = await ism.owner();
46
- assert((await ism.moduleType()) === ModuleType.ROUTING);
66
+ this.assertModuleType(await ism.moduleType(), ModuleType.ROUTING);
47
67
  const domains = {};
48
68
  const domainIds = await ism.domains();
49
69
  await concurrentMap(this.concurrency, domainIds, async (domainId) => {
@@ -73,7 +93,7 @@ export class EvmIsmReader {
73
93
  }
74
94
  async deriveAggregationConfig(address) {
75
95
  const ism = StaticAggregationIsm__factory.connect(address, this.provider);
76
- assert((await ism.moduleType()) === ModuleType.AGGREGATION);
96
+ this.assertModuleType(await ism.moduleType(), ModuleType.AGGREGATION);
77
97
  const [modules, threshold] = await ism.modulesAndThreshold(ethers.constants.AddressZero);
78
98
  const ismConfigs = await concurrentMap(this.concurrency, modules, async (module) => this.deriveIsmConfig(module));
79
99
  return {
@@ -87,7 +107,7 @@ export class EvmIsmReader {
87
107
  const ism = IMultisigIsm__factory.connect(address, this.provider);
88
108
  const moduleType = await ism.moduleType();
89
109
  assert(moduleType === ModuleType.MERKLE_ROOT_MULTISIG ||
90
- moduleType === ModuleType.MESSAGE_ID_MULTISIG);
110
+ moduleType === ModuleType.MESSAGE_ID_MULTISIG, `expected module type to be ${ModuleType.MERKLE_ROOT_MULTISIG} or ${ModuleType.MESSAGE_ID_MULTISIG}, got ${moduleType}`);
91
111
  const ismType = moduleType === ModuleType.MERKLE_ROOT_MULTISIG
92
112
  ? IsmType.MERKLE_ROOT_MULTISIG
93
113
  : IsmType.MESSAGE_ID_MULTISIG;
@@ -100,11 +120,12 @@ export class EvmIsmReader {
100
120
  };
101
121
  }
102
122
  async deriveNullConfig(address) {
103
- // if it has trustedRelayer() property --> TrustedRelayer ISM
123
+ const ism = IInterchainSecurityModule__factory.connect(address, this.provider);
124
+ this.assertModuleType(await ism.moduleType(), ModuleType.NULL);
125
+ // if it has trustedRelayer() property --> TRUSTED_RELAYER
104
126
  const trustedRelayerIsm = TrustedRelayerIsm__factory.connect(address, this.provider);
105
127
  try {
106
128
  const relayer = await trustedRelayerIsm.trustedRelayer();
107
- assert((await trustedRelayerIsm.moduleType()) === ModuleType.NULL);
108
129
  return {
109
130
  address,
110
131
  relayer,
@@ -119,7 +140,6 @@ export class EvmIsmReader {
119
140
  try {
120
141
  const paused = await pausableIsm.paused();
121
142
  const owner = await pausableIsm.owner();
122
- assert((await pausableIsm.moduleType()) === ModuleType.NULL);
123
143
  return {
124
144
  address,
125
145
  owner,
@@ -133,7 +153,6 @@ export class EvmIsmReader {
133
153
  // if it has VERIFIED_MASK_INDEX, it's AbstractMessageIdAuthorizedIsm which means OPStackIsm
134
154
  const opStackIsm = OPStackIsm__factory.connect(address, this.provider);
135
155
  try {
136
- assert((await opStackIsm.moduleType()) === ModuleType.NULL);
137
156
  await opStackIsm.VERIFIED_MASK_INDEX();
138
157
  return {
139
158
  address,
@@ -146,12 +165,13 @@ export class EvmIsmReader {
146
165
  this.logger.debug('Error accessing "VERIFIED_MASK_INDEX" property, implying this is not an OP Stack ISM.', address);
147
166
  }
148
167
  // no specific properties, must be Test ISM
149
- const testIsm = TestIsm__factory.connect(address, this.provider);
150
- assert((await testIsm.moduleType()) === ModuleType.NULL);
151
168
  return {
152
169
  address,
153
170
  type: IsmType.TEST_ISM,
154
171
  };
155
172
  }
173
+ assertModuleType(moduleType, expectedModuleType) {
174
+ assert(moduleType === expectedModuleType, `expected module type to be ${expectedModuleType}, got ${moduleType}`);
175
+ }
156
176
  }
157
177
  //# sourceMappingURL=EvmIsmReader.js.map