@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
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/router/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIpC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEhC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/router/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKpC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AAIH,eAAO,MAAM,mBAAmB,uCAG/B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEhC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { ProxyFactoryFactoriesSchema } from '../deploy/schemas.js';
2
3
  import { HookConfigSchema } from '../hook/schemas.js';
3
4
  import { IsmConfigSchema } from '../ism/schemas.js';
4
5
  import { ZHash } from '../metadata/customZodTypes.js';
@@ -7,11 +8,17 @@ export const MailboxClientConfigSchema = OwnableSchema.extend({
7
8
  mailbox: ZHash,
8
9
  hook: HookConfigSchema.optional(),
9
10
  interchainSecurityModule: IsmConfigSchema.optional(),
11
+ ismFactoryAddresses: ProxyFactoryFactoriesSchema.optional(),
10
12
  });
11
13
  export const ForeignDeploymentConfigSchema = z.object({
12
14
  foreignDeployment: z.string().optional(),
13
15
  });
14
- export const RouterConfigSchema = MailboxClientConfigSchema.merge(ForeignDeploymentConfigSchema);
16
+ const RemoteRouterDomain = z.string();
17
+ const RemoteRouterRouter = z.string().startsWith('0x');
18
+ export const RemoteRoutersSchema = z.record(RemoteRouterDomain, RemoteRouterRouter);
19
+ export const RouterConfigSchema = MailboxClientConfigSchema.merge(ForeignDeploymentConfigSchema).merge(z.object({
20
+ remoteRouters: RemoteRoutersSchema.optional(),
21
+ }));
15
22
  export const GasRouterConfigSchema = RouterConfigSchema.extend({
16
23
  gas: z.number().optional(),
17
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/router/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,aAAa,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,wBAAwB,EAAE,eAAe,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,KAAK,CAC/D,6BAA6B,CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAC7D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/router/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,aAAa,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,wBAAwB,EAAE,eAAe,CAAC,QAAQ,EAAE;IACpD,mBAAmB,EAAE,2BAA2B,CAAC,QAAQ,EAAE;CAC5D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACtC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CACzC,kBAAkB,EAClB,kBAAkB,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,KAAK,CAC/D,6BAA6B,CAC9B,CAAC,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;IACP,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAC7D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC"}
@@ -4,7 +4,7 @@ import { Address } from '@hyperlane-xyz/utils';
4
4
  import { HyperlaneFactories } from '../contracts/types.js';
5
5
  import { UpgradeConfig } from '../deploy/proxy.js';
6
6
  import { CheckerViolation } from '../deploy/types.js';
7
- import { GasRouterConfigSchema, MailboxClientConfigSchema, RouterConfigSchema } from './schemas.js';
7
+ import { GasRouterConfigSchema, MailboxClientConfigSchema, RemoteRoutersSchema, RouterConfigSchema } from './schemas.js';
8
8
  export type RouterAddress = {
9
9
  router: Address;
10
10
  };
@@ -38,4 +38,5 @@ export interface RouterViolation extends CheckerViolation {
38
38
  expected: string;
39
39
  description?: string;
40
40
  }
41
+ export type RemoteRouters = z.infer<typeof RemoteRoutersSchema>;
41
42
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,UAAU,EAAE,mBAAmB,CAAC;IAChC,kBAAkB,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC;AAEF,oBAAY,mBAAmB;IAC7B,wBAAwB,cAAc;IACtC,OAAO,kBAAkB;IACzB,IAAI,eAAe;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,mBAAmB;IAC7B,cAAc,mBAAmB;CAClC;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,UAAU,EAAE,mBAAmB,CAAC;IAChC,kBAAkB,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC;AAEF,oBAAY,mBAAmB;IAC7B,wBAAwB,cAAc;IACtC,OAAO,kBAAkB;IACzB,IAAI,eAAe;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,mBAAmB;IAC7B,cAAc,mBAAmB;CAClC;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EAEnB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AA2B7B,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,UAAU,EAAE,IAAI,mBAAmB,EAAE;IACrC,kBAAkB,EAAE,IAAI,2BAA2B,EAAE;CACtD,CAAC;AAEF,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,6DAAsC,CAAA;IACtC,gDAAyB,CAAA;IACzB,0CAAmB,CAAA;AACrB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAQD,MAAM,CAAN,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,wDAAiC,CAAA;AACnC,CAAC,EAFW,mBAAmB,KAAnB,mBAAmB,QAE9B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EAEnB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AA4B7B,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,UAAU,EAAE,IAAI,mBAAmB,EAAE;IACrC,kBAAkB,EAAE,IAAI,2BAA2B,EAAE;CACtD,CAAC;AAEF,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,6DAAsC,CAAA;IACtC,gDAAyB,CAAA;IACzB,0CAAmB,CAAA;AACrB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAQD,MAAM,CAAN,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,wDAAiC,CAAA;AACnC,CAAC,EAFW,mBAAmB,KAAnB,mBAAmB,QAE9B"}
@@ -6,7 +6,7 @@ export function randomInt(max, min = 0) {
6
6
  return Math.floor(Math.random() * (max - min)) + min;
7
7
  }
8
8
  export function randomAddress() {
9
- return ethers.utils.hexlify(ethers.utils.randomBytes(20));
9
+ return ethers.utils.hexlify(ethers.utils.randomBytes(20)).toLowerCase();
10
10
  }
11
11
  export function createRouterConfigMap(owner, coreContracts, igpContracts) {
12
12
  return objMap(coreContracts, (chain, contracts) => {
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/test/testUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/test/testUtils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Address, ProtocolType } from '@hyperlane-xyz/utils';
1
+ import { ContractVerifier } from '@hyperlane-xyz/sdk';
2
+ import { Address, Domain, ProtocolType } from '@hyperlane-xyz/utils';
2
3
  import { HyperlaneModule, HyperlaneModuleParams } from '../core/AbstractHyperlaneModule.js';
3
4
  import { MultiProvider } from '../providers/MultiProvider.js';
4
5
  import { AnnotatedEV5Transaction } from '../providers/ProviderType.js';
@@ -9,11 +10,13 @@ export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Eth
9
10
  deployedTokenRoute: Address;
10
11
  }> {
11
12
  protected readonly multiProvider: MultiProvider;
13
+ protected readonly contractVerifier?: ContractVerifier | undefined;
12
14
  protected logger: import("pino").default.Logger<never>;
13
15
  reader: EvmERC20WarpRouteReader;
16
+ readonly domainId: Domain;
14
17
  constructor(multiProvider: MultiProvider, args: HyperlaneModuleParams<TokenRouterConfig, {
15
18
  deployedTokenRoute: Address;
16
- }>);
19
+ }>, contractVerifier?: ContractVerifier | undefined);
17
20
  /**
18
21
  * Retrieves the token router configuration for the specified address.
19
22
  *
@@ -24,12 +27,43 @@ export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Eth
24
27
  /**
25
28
  * Updates the Warp Route contract with the provided configuration.
26
29
  *
27
- * @remark Currently only supports updating ISM or hook.
28
- *
29
30
  * @param expectedConfig - The configuration for the token router to be updated.
30
31
  * @returns An array of Ethereum transactions that were executed to update the contract, or an error if the update failed.
31
32
  */
32
- update(_expectedConfig: TokenRouterConfig): Promise<AnnotatedEV5Transaction[]>;
33
+ update(expectedConfig: TokenRouterConfig): Promise<AnnotatedEV5Transaction[]>;
34
+ /**
35
+ * Updates the remote routers for the Warp Route contract.
36
+ *
37
+ * @param actualConfig - The on-chain router configuration, including the remoteRouters array.
38
+ * @param expectedConfig - The expected token router configuration.
39
+ * @returns A array with a single Ethereum transaction that need to be executed to enroll the routers
40
+ */
41
+ updateRemoteRouters(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): AnnotatedEV5Transaction[];
42
+ /**
43
+ * Updates an existing Warp route ISM with a given config.
44
+ *
45
+ * @param actualConfig - The on-chain router configuration, including the ISM configuration, and address.
46
+ * @param expectedConfig - The expected token router configuration, including the ISM configuration.
47
+ * @returns Ethereum transaction that need to be executed to update the ISM configuration.
48
+ */
49
+ updateIsm(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): Promise<AnnotatedEV5Transaction[]>;
50
+ /**
51
+ * Transfer ownership of an existing Warp route with a given config.
52
+ *
53
+ * @param actualConfig - The on-chain router configuration.
54
+ * @param expectedConfig - The expected token router configuration.
55
+ * @returns Ethereum transaction that need to be executed to update the owner.
56
+ */
57
+ updateOwnership(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): AnnotatedEV5Transaction[];
58
+ /**
59
+ * Updates or deploys the ISM using the provided configuration.
60
+ *
61
+ * @returns Object with deployedIsm address, and update Transactions
62
+ */
63
+ deployOrUpdateIsm(actualConfig: TokenRouterConfig, expectedConfig: TokenRouterConfig): Promise<{
64
+ deployedIsm: Address;
65
+ updateTransactions: AnnotatedEV5Transaction[];
66
+ }>;
33
67
  /**
34
68
  * Deploys the Warp Route.
35
69
  *
@@ -42,6 +76,7 @@ export declare class EvmERC20WarpModule extends HyperlaneModule<ProtocolType.Eth
42
76
  chain: ChainNameOrId;
43
77
  config: TokenRouterConfig;
44
78
  multiProvider: MultiProvider;
79
+ contractVerifier?: ContractVerifier;
45
80
  }): Promise<EvmERC20WarpModule>;
46
81
  }
47
82
  //# sourceMappingURL=EvmERC20WarpModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmERC20WarpModule.d.ts","sourceRoot":"","sources":["../../src/token/EvmERC20WarpModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EACL,eAAe,EACf,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,kBAAmB,SAAQ,eAAe,CACrD,YAAY,CAAC,QAAQ,EACrB,iBAAiB,EACjB;IACE,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CACF;IAOG,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IANjD,SAAS,CAAC,MAAM,uCAEb;IACH,MAAM,EAAE,uBAAuB,CAAC;gBAGX,aAAa,EAAE,aAAa,EAC/C,IAAI,EAAE,qBAAqB,CACzB,iBAAiB,EACjB;QACE,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CACF;IAMH;;;;;OAKG;IACU,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAM/C;;;;;;;OAOG;IACU,MAAM,CACjB,eAAe,EAAE,iBAAiB,GACjC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAIrC;;;;;;;OAOG;WACiB,MAAM,CAAC,MAAM,EAAE;QACjC,KAAK,EAAE,aAAa,CAAC;QACrB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,aAAa,EAAE,aAAa,CAAC;KAC9B,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAchC"}
1
+ {"version":3,"file":"EvmERC20WarpModule.d.ts","sourceRoot":"","sources":["../../src/token/EvmERC20WarpModule.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,OAAO,EACP,MAAM,EACN,YAAY,EAQb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAA2B,MAAM,cAAc,CAAC;AAE1E,qBAAa,kBAAmB,SAAQ,eAAe,CACrD,YAAY,CAAC,QAAQ,EACrB,iBAAiB,EACjB;IACE,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CACF;IAUG,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAO/C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAhBtC,SAAS,CAAC,MAAM,uCAEb;IACH,MAAM,EAAE,uBAAuB,CAAC;IAGhC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAGZ,aAAa,EAAE,aAAa,EAC/C,IAAI,EAAE,qBAAqB,CACzB,iBAAiB,EACjB;QACE,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CACF,EACkB,gBAAgB,CAAC,8BAAkB;IAaxD;;;;;OAKG;IACU,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAM/C;;;;;OAKG;IACU,MAAM,CACjB,cAAc,EAAE,iBAAiB,GAChC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAerC;;;;;;OAMG;IACH,mBAAmB,CACjB,YAAY,EAAE,iBAAiB,EAC/B,cAAc,EAAE,iBAAiB,GAChC,uBAAuB,EAAE;IAyC5B;;;;;;OAMG;IACG,SAAS,CACb,YAAY,EAAE,iBAAiB,EAC/B,cAAc,EAAE,iBAAiB,GAChC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAyCrC;;;;;;OAMG;IACH,eAAe,CACb,YAAY,EAAE,iBAAiB,EAC/B,cAAc,EAAE,iBAAiB,GAChC,uBAAuB,EAAE;IAmB5B;;;;OAIG;IACU,iBAAiB,CAC5B,YAAY,EAAE,iBAAiB,EAC/B,cAAc,EAAE,iBAAiB,GAChC,OAAO,CAAC;QACT,WAAW,EAAE,OAAO,CAAC;QACrB,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;KAC/C,CAAC;IAoCF;;;;;;;OAOG;WACiB,MAAM,CAAC,MAAM,EAAE;QACjC,KAAK,EAAE,aAAa,CAAC;QACrB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,aAAa,EAAE,aAAa,CAAC;QAC7B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0BhC"}
@@ -2,13 +2,22 @@ import { expect } from 'chai';
2
2
  import { constants } from 'ethers';
3
3
  import hre from 'hardhat';
4
4
  import { ERC20Test__factory, ERC4626Test__factory, HypERC20CollateralVaultDeposit__factory, HypERC20__factory, HypNative__factory, Mailbox__factory, } from '@hyperlane-xyz/core';
5
- import { TestChainName, } from '@hyperlane-xyz/sdk';
5
+ import { EvmIsmModule, IsmType, TestChainName, serializeContracts, } from '@hyperlane-xyz/sdk';
6
+ import { normalizeConfig } from '@hyperlane-xyz/utils';
6
7
  import { TestCoreDeployer } from '../core/TestCoreDeployer.js';
7
8
  import { HyperlaneProxyFactoryDeployer } from '../deploy/HyperlaneProxyFactoryDeployer.js';
8
9
  import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
9
10
  import { MultiProvider } from '../providers/MultiProvider.js';
11
+ import { randomAddress } from '../test/testUtils.js';
10
12
  import { EvmERC20WarpModule } from './EvmERC20WarpModule.js';
11
13
  import { TokenType } from './config.js';
14
+ const randomRemoteRouters = (n) => {
15
+ const routers = {};
16
+ for (let domain = 0; domain < n; domain++) {
17
+ routers[domain] = randomAddress();
18
+ }
19
+ return routers;
20
+ };
12
21
  describe('EvmERC20WarpHyperlaneModule', async () => {
13
22
  const TOKEN_NAME = 'fake';
14
23
  const TOKEN_SUPPLY = '100000000000000000000';
@@ -16,8 +25,10 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
16
25
  const chain = TestChainName.test4;
17
26
  let mailbox;
18
27
  let hookAddress;
28
+ let ismAddress;
19
29
  let ismFactory;
20
30
  let factories;
31
+ let ismFactoryAddresses;
21
32
  let erc20Factory;
22
33
  let token;
23
34
  let signer;
@@ -31,11 +42,17 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
31
42
  expect(await deployedToken.interchainSecurityModule()).to.equal(constants.AddressZero);
32
43
  expect(await deployedToken.owner()).to.equal(signer.address);
33
44
  }
45
+ async function sendTxs(txs) {
46
+ for (const tx of txs) {
47
+ await multiProvider.sendTransaction(chain, tx);
48
+ }
49
+ }
34
50
  before(async () => {
35
51
  [signer] = await hre.ethers.getSigners();
36
52
  multiProvider = MultiProvider.createTestMultiProvider({ signer });
37
53
  const ismFactoryDeployer = new HyperlaneProxyFactoryDeployer(multiProvider);
38
54
  factories = await ismFactoryDeployer.deploy(multiProvider.mapKnownChains(() => ({})));
55
+ ismFactoryAddresses = serializeContracts(factories[chain]);
39
56
  ismFactory = new HyperlaneIsmFactory(factories, multiProvider);
40
57
  coreApp = await new TestCoreDeployer(multiProvider, ismFactory).deployApp();
41
58
  routerConfigMap = coreApp.getRouterConfig(signer.address);
@@ -44,6 +61,7 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
44
61
  baseConfig = routerConfigMap[chain];
45
62
  mailbox = Mailbox__factory.connect(baseConfig.mailbox, signer);
46
63
  hookAddress = await mailbox.defaultHook();
64
+ ismAddress = await mailbox.defaultIsm();
47
65
  });
48
66
  it('should create with a collateral config', async () => {
49
67
  const config = {
@@ -137,5 +155,238 @@ describe('EvmERC20WarpHyperlaneModule', async () => {
137
155
  const nativeContract = HypNative__factory.connect(deployedTokenRoute, signer);
138
156
  await validateCoreValues(nativeContract);
139
157
  });
158
+ it('should create with remote routers', async () => {
159
+ const numOfRouters = Math.floor(Math.random() * 10);
160
+ const config = {
161
+ ...baseConfig,
162
+ type: TokenType.native,
163
+ hook: hookAddress,
164
+ remoteRouters: randomRemoteRouters(numOfRouters),
165
+ };
166
+ // Deploy using WarpModule
167
+ const evmERC20WarpModule = await EvmERC20WarpModule.create({
168
+ chain,
169
+ config,
170
+ multiProvider,
171
+ });
172
+ const { remoteRouters } = await evmERC20WarpModule.read();
173
+ expect(Object.keys(remoteRouters).length).to.equal(numOfRouters);
174
+ });
175
+ describe('Update', async () => {
176
+ const ismConfigToUpdate = [
177
+ {
178
+ type: IsmType.TRUSTED_RELAYER,
179
+ relayer: randomAddress(),
180
+ },
181
+ {
182
+ type: IsmType.FALLBACK_ROUTING,
183
+ owner: randomAddress(),
184
+ domains: {},
185
+ },
186
+ {
187
+ type: IsmType.PAUSABLE,
188
+ owner: randomAddress(),
189
+ paused: false,
190
+ },
191
+ ];
192
+ it('should deploy and set a new Ism', async () => {
193
+ const config = {
194
+ ...baseConfig,
195
+ type: TokenType.native,
196
+ hook: hookAddress,
197
+ interchainSecurityModule: ismAddress,
198
+ };
199
+ // Deploy using WarpModule
200
+ const evmERC20WarpModule = await EvmERC20WarpModule.create({
201
+ chain,
202
+ config,
203
+ multiProvider,
204
+ });
205
+ const actualConfig = await evmERC20WarpModule.read();
206
+ for (const interchainSecurityModule of ismConfigToUpdate) {
207
+ const expectedConfig = {
208
+ ...actualConfig,
209
+ ismFactoryAddresses,
210
+ interchainSecurityModule,
211
+ };
212
+ await sendTxs(await evmERC20WarpModule.update(expectedConfig));
213
+ const updatedConfig = normalizeConfig((await evmERC20WarpModule.read()).interchainSecurityModule);
214
+ expect(updatedConfig).to.deep.equal(interchainSecurityModule);
215
+ }
216
+ });
217
+ it('should not deploy and set a new Ism if the config is the same', async () => {
218
+ const config = {
219
+ ...baseConfig,
220
+ type: TokenType.native,
221
+ hook: hookAddress,
222
+ interchainSecurityModule: ismAddress,
223
+ };
224
+ // Deploy using WarpModule
225
+ const evmERC20WarpModule = await EvmERC20WarpModule.create({
226
+ chain,
227
+ config,
228
+ multiProvider,
229
+ });
230
+ const actualConfig = await evmERC20WarpModule.read();
231
+ const owner = randomAddress();
232
+ const interchainSecurityModule = {
233
+ type: IsmType.PAUSABLE,
234
+ owner,
235
+ paused: false,
236
+ };
237
+ const expectedConfig = {
238
+ ...actualConfig,
239
+ ismFactoryAddresses,
240
+ interchainSecurityModule,
241
+ };
242
+ await sendTxs(await evmERC20WarpModule.update(expectedConfig));
243
+ const updatedConfig = normalizeConfig((await evmERC20WarpModule.read()).interchainSecurityModule);
244
+ expect(updatedConfig).to.deep.equal(interchainSecurityModule);
245
+ // Deploy with the same config
246
+ const txs = await evmERC20WarpModule.update(expectedConfig);
247
+ expect(txs.length).to.equal(0);
248
+ });
249
+ it('should update a mutable Ism', async () => {
250
+ const ismConfig = {
251
+ type: IsmType.ROUTING,
252
+ owner: signer.address,
253
+ domains: {
254
+ '1': ismAddress,
255
+ },
256
+ };
257
+ const ism = await EvmIsmModule.create({
258
+ chain,
259
+ multiProvider,
260
+ config: ismConfig,
261
+ proxyFactoryFactories: ismFactoryAddresses,
262
+ mailbox: mailbox.address,
263
+ });
264
+ const { deployedIsm } = ism.serialize();
265
+ // Deploy using WarpModule
266
+ const config = {
267
+ ...baseConfig,
268
+ type: TokenType.native,
269
+ hook: hookAddress,
270
+ interchainSecurityModule: deployedIsm,
271
+ };
272
+ const evmERC20WarpModule = await EvmERC20WarpModule.create({
273
+ chain,
274
+ config,
275
+ multiProvider,
276
+ });
277
+ const actualConfig = await evmERC20WarpModule.read();
278
+ const expectedConfig = {
279
+ ...actualConfig,
280
+ ismFactoryAddresses,
281
+ interchainSecurityModule: {
282
+ type: IsmType.ROUTING,
283
+ owner: randomAddress(),
284
+ domains: {
285
+ test2: { type: IsmType.TEST_ISM },
286
+ },
287
+ },
288
+ };
289
+ await sendTxs(await evmERC20WarpModule.update(expectedConfig));
290
+ const updatedConfig = normalizeConfig((await evmERC20WarpModule.read()).interchainSecurityModule);
291
+ expect(updatedConfig).to.deep.equal(expectedConfig.interchainSecurityModule);
292
+ });
293
+ it('should update connected routers', async () => {
294
+ const config = {
295
+ ...baseConfig,
296
+ type: TokenType.native,
297
+ hook: hookAddress,
298
+ ismFactoryAddresses,
299
+ };
300
+ // Deploy using WarpModule
301
+ const evmERC20WarpModule = await EvmERC20WarpModule.create({
302
+ chain,
303
+ config: {
304
+ ...config,
305
+ interchainSecurityModule: ismAddress,
306
+ },
307
+ multiProvider,
308
+ });
309
+ const numOfRouters = Math.floor(Math.random() * 10);
310
+ await sendTxs(await evmERC20WarpModule.update({
311
+ ...config,
312
+ remoteRouters: randomRemoteRouters(numOfRouters),
313
+ }));
314
+ const updatedConfig = await evmERC20WarpModule.read();
315
+ expect(Object.keys(updatedConfig.remoteRouters).length).to.be.equal(numOfRouters);
316
+ });
317
+ it('should only extend routers if they are new ones are different', async () => {
318
+ const config = {
319
+ ...baseConfig,
320
+ type: TokenType.native,
321
+ hook: hookAddress,
322
+ ismFactoryAddresses,
323
+ };
324
+ // Deploy using WarpModule
325
+ const evmERC20WarpModule = await EvmERC20WarpModule.create({
326
+ chain,
327
+ config: {
328
+ ...config,
329
+ interchainSecurityModule: ismAddress,
330
+ },
331
+ multiProvider,
332
+ });
333
+ const remoteRouters = randomRemoteRouters(1);
334
+ await sendTxs(await evmERC20WarpModule.update({
335
+ ...config,
336
+ remoteRouters,
337
+ }));
338
+ let updatedConfig = await evmERC20WarpModule.read();
339
+ expect(Object.keys(updatedConfig.remoteRouters).length).to.be.equal(1);
340
+ // Try to extend with the same remoteRouters
341
+ let txs = await evmERC20WarpModule.update({
342
+ ...config,
343
+ remoteRouters,
344
+ });
345
+ expect(txs.length).to.equal(0);
346
+ await sendTxs(txs);
347
+ // Try to extend with the different remoteRouters, but same length
348
+ txs = await evmERC20WarpModule.update({
349
+ ...config,
350
+ remoteRouters: {
351
+ 3: randomAddress(),
352
+ },
353
+ });
354
+ expect(txs.length).to.equal(1);
355
+ await sendTxs(txs);
356
+ updatedConfig = await evmERC20WarpModule.read();
357
+ expect(Object.keys(updatedConfig.remoteRouters).length).to.be.equal(2);
358
+ });
359
+ it('should update the owner only if they are different', async () => {
360
+ const config = {
361
+ ...baseConfig,
362
+ type: TokenType.native,
363
+ hook: hookAddress,
364
+ ismFactoryAddresses,
365
+ };
366
+ const owner = randomAddress();
367
+ const evmERC20WarpModule = await EvmERC20WarpModule.create({
368
+ chain,
369
+ config: {
370
+ ...config,
371
+ interchainSecurityModule: ismAddress,
372
+ },
373
+ multiProvider,
374
+ });
375
+ expect(owner).to.equal(owner);
376
+ const newOwner = randomAddress();
377
+ await sendTxs(await evmERC20WarpModule.update({
378
+ ...config,
379
+ owner: newOwner,
380
+ }));
381
+ const latestConfig = normalizeConfig(await evmERC20WarpModule.read());
382
+ expect(latestConfig.owner).to.equal(newOwner);
383
+ // No op if the same owner
384
+ const txs = await evmERC20WarpModule.update({
385
+ ...config,
386
+ owner: newOwner,
387
+ });
388
+ expect(txs.length).to.equal(0);
389
+ });
390
+ });
140
391
  });
141
392
  //# sourceMappingURL=EvmERC20WarpModule.hardhat-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmERC20WarpModule.hardhat-test.js","sourceRoot":"","sources":["../../src/token/EvmERC20WarpModule.hardhat-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmERC20WarpModule.hardhat-test.js","sourceRoot":"","sources":["../../src/token/EvmERC20WarpModule.hardhat-test.ts"],"names":[],"mappings":"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"}