@hyperlane-xyz/cli 3.1.10 → 3.2.0-alpha

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 (219) hide show
  1. package/README.md +6 -1
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +27 -4
  5. package/dist/cli.js.map +1 -1
  6. package/dist/env.d.ts +2 -0
  7. package/dist/env.d.ts.map +1 -0
  8. package/dist/env.js +14 -0
  9. package/dist/env.js.map +1 -0
  10. package/dist/src/avs/config.d.ts +11 -0
  11. package/dist/src/avs/config.d.ts.map +1 -0
  12. package/dist/src/avs/config.js +10 -0
  13. package/dist/src/avs/config.js.map +1 -0
  14. package/dist/src/avs/stakeRegistry.d.ts +19 -0
  15. package/dist/src/avs/stakeRegistry.d.ts.map +1 -0
  16. package/dist/src/avs/stakeRegistry.js +94 -0
  17. package/dist/src/avs/stakeRegistry.js.map +1 -0
  18. package/dist/src/commands/avs.d.ts +12 -0
  19. package/dist/src/commands/avs.d.ts.map +1 -0
  20. package/dist/src/commands/avs.js +58 -0
  21. package/dist/src/commands/avs.js.map +1 -0
  22. package/dist/src/commands/chains.d.ts.map +1 -1
  23. package/dist/src/commands/chains.js +46 -27
  24. package/dist/src/commands/chains.js.map +1 -1
  25. package/dist/src/commands/config.js +74 -85
  26. package/dist/src/commands/config.js.map +1 -1
  27. package/dist/src/commands/deploy.d.ts.map +1 -1
  28. package/dist/src/commands/deploy.js +58 -91
  29. package/dist/src/commands/deploy.js.map +1 -1
  30. package/dist/src/commands/hook.d.ts +12 -0
  31. package/dist/src/commands/hook.d.ts.map +1 -0
  32. package/dist/src/commands/hook.js +34 -0
  33. package/dist/src/commands/hook.js.map +1 -0
  34. package/dist/src/commands/ism.d.ts +12 -0
  35. package/dist/src/commands/ism.d.ts.map +1 -0
  36. package/dist/src/commands/ism.js +36 -0
  37. package/dist/src/commands/ism.js.map +1 -0
  38. package/dist/src/commands/options.d.ts +19 -7
  39. package/dist/src/commands/options.d.ts.map +1 -1
  40. package/dist/src/commands/options.js +90 -27
  41. package/dist/src/commands/options.js.map +1 -1
  42. package/dist/src/commands/send.d.ts +14 -1
  43. package/dist/src/commands/send.d.ts.map +1 -1
  44. package/dist/src/commands/send.js +32 -55
  45. package/dist/src/commands/send.js.map +1 -1
  46. package/dist/src/commands/signCommands.d.ts +3 -0
  47. package/dist/src/commands/signCommands.d.ts.map +1 -0
  48. package/dist/src/commands/signCommands.js +11 -0
  49. package/dist/src/commands/signCommands.js.map +1 -0
  50. package/dist/src/commands/status.d.ts +5 -2
  51. package/dist/src/commands/status.d.ts.map +1 -1
  52. package/dist/src/commands/status.js +9 -19
  53. package/dist/src/commands/status.js.map +1 -1
  54. package/dist/src/config/chain.d.ts +5 -7
  55. package/dist/src/config/chain.d.ts.map +1 -1
  56. package/dist/src/config/chain.js +94 -68
  57. package/dist/src/config/chain.js.map +1 -1
  58. package/dist/src/config/chain.test.js +1 -5
  59. package/dist/src/config/chain.test.js.map +1 -1
  60. package/dist/src/config/hooks.d.ts +91 -214
  61. package/dist/src/config/hooks.d.ts.map +1 -1
  62. package/dist/src/config/hooks.js +218 -122
  63. package/dist/src/config/hooks.js.map +1 -1
  64. package/dist/src/config/ism.d.ts +74 -0
  65. package/dist/src/config/ism.d.ts.map +1 -0
  66. package/dist/src/config/ism.js +223 -0
  67. package/dist/src/config/ism.js.map +1 -0
  68. package/dist/src/config/multisig.d.ts +4 -14
  69. package/dist/src/config/multisig.d.ts.map +1 -1
  70. package/dist/src/config/multisig.js +35 -29
  71. package/dist/src/config/multisig.js.map +1 -1
  72. package/dist/src/config/warp.d.ts +7 -180
  73. package/dist/src/config/warp.d.ts.map +1 -1
  74. package/dist/src/config/warp.js +55 -62
  75. package/dist/src/config/warp.js.map +1 -1
  76. package/dist/src/consts.d.ts +1 -0
  77. package/dist/src/consts.d.ts.map +1 -1
  78. package/dist/src/consts.js +1 -0
  79. package/dist/src/consts.js.map +1 -1
  80. package/dist/src/context/context.d.ts +14 -0
  81. package/dist/src/context/context.d.ts.map +1 -0
  82. package/dist/src/context/context.js +108 -0
  83. package/dist/src/context/context.js.map +1 -0
  84. package/dist/src/context/types.d.ts +33 -0
  85. package/dist/src/context/types.d.ts.map +1 -0
  86. package/dist/src/context/types.js.map +1 -0
  87. package/dist/src/deploy/agent.d.ts +6 -4
  88. package/dist/src/deploy/agent.d.ts.map +1 -1
  89. package/dist/src/deploy/agent.js +10 -24
  90. package/dist/src/deploy/agent.js.map +1 -1
  91. package/dist/src/deploy/core.d.ts +10 -7
  92. package/dist/src/deploy/core.d.ts.map +1 -1
  93. package/dist/src/deploy/core.js +156 -160
  94. package/dist/src/deploy/core.js.map +1 -1
  95. package/dist/src/deploy/dry-run.d.ts +19 -0
  96. package/dist/src/deploy/dry-run.d.ts.map +1 -0
  97. package/dist/src/deploy/dry-run.js +45 -0
  98. package/dist/src/deploy/dry-run.js.map +1 -0
  99. package/dist/src/deploy/utils.d.ts +15 -8
  100. package/dist/src/deploy/utils.d.ts.map +1 -1
  101. package/dist/src/deploy/utils.js +60 -11
  102. package/dist/src/deploy/utils.js.map +1 -1
  103. package/dist/src/deploy/warp.d.ts +4 -7
  104. package/dist/src/deploy/warp.d.ts.map +1 -1
  105. package/dist/src/deploy/warp.js +129 -169
  106. package/dist/src/deploy/warp.js.map +1 -1
  107. package/dist/src/hook/read.d.ts +13 -0
  108. package/dist/src/hook/read.d.ts.map +1 -0
  109. package/dist/src/hook/read.js +25 -0
  110. package/dist/src/hook/read.js.map +1 -0
  111. package/dist/src/ism/read.d.ts +13 -0
  112. package/dist/src/ism/read.d.ts.map +1 -0
  113. package/dist/src/ism/read.js +25 -0
  114. package/dist/src/ism/read.js.map +1 -0
  115. package/dist/src/logger.d.ts +17 -0
  116. package/dist/src/logger.d.ts.map +1 -0
  117. package/dist/src/logger.js +32 -0
  118. package/dist/src/logger.js.map +1 -0
  119. package/dist/src/registry/MergedRegistry.d.ts +35 -0
  120. package/dist/src/registry/MergedRegistry.d.ts.map +1 -0
  121. package/dist/src/registry/MergedRegistry.js +83 -0
  122. package/dist/src/registry/MergedRegistry.js.map +1 -0
  123. package/dist/src/send/message.d.ts +7 -6
  124. package/dist/src/send/message.d.ts.map +1 -1
  125. package/dist/src/send/message.js +40 -22
  126. package/dist/src/send/message.js.map +1 -1
  127. package/dist/src/send/transfer.d.ts +8 -10
  128. package/dist/src/send/transfer.d.ts.map +1 -1
  129. package/dist/src/send/transfer.js +68 -70
  130. package/dist/src/send/transfer.js.map +1 -1
  131. package/dist/src/status/message.d.ts +7 -5
  132. package/dist/src/status/message.d.ts.map +1 -1
  133. package/dist/src/status/message.js +25 -12
  134. package/dist/src/status/message.js.map +1 -1
  135. package/dist/src/submit/submit.d.ts +5 -0
  136. package/dist/src/submit/submit.d.ts.map +1 -0
  137. package/dist/src/submit/submit.js +30 -0
  138. package/dist/src/submit/submit.js.map +1 -0
  139. package/dist/src/submit/types.d.ts +18 -0
  140. package/dist/src/submit/types.d.ts.map +1 -0
  141. package/dist/src/submit/types.js +2 -0
  142. package/dist/src/{deploy → submit}/types.js.map +1 -1
  143. package/dist/src/tests/deployTestErc20.d.ts +2 -0
  144. package/dist/src/tests/deployTestErc20.d.ts.map +1 -0
  145. package/dist/src/tests/deployTestErc20.js +26 -0
  146. package/dist/src/tests/deployTestErc20.js.map +1 -0
  147. package/dist/src/tests/hooks.test.d.ts +2 -0
  148. package/dist/src/tests/hooks.test.d.ts.map +1 -0
  149. package/dist/src/tests/hooks.test.js +83 -0
  150. package/dist/src/tests/hooks.test.js.map +1 -0
  151. package/dist/src/tests/ism.test.d.ts +2 -0
  152. package/dist/src/tests/ism.test.d.ts.map +1 -0
  153. package/dist/src/tests/ism.test.js +76 -0
  154. package/dist/src/tests/ism.test.js.map +1 -0
  155. package/dist/src/tests/multisig.test.d.ts +2 -0
  156. package/dist/src/tests/multisig.test.d.ts.map +1 -0
  157. package/dist/src/tests/multisig.test.js +34 -0
  158. package/dist/src/tests/multisig.test.js.map +1 -0
  159. package/dist/src/utils/balances.d.ts +2 -4
  160. package/dist/src/utils/balances.d.ts.map +1 -1
  161. package/dist/src/utils/balances.js +8 -12
  162. package/dist/src/utils/balances.js.map +1 -1
  163. package/dist/src/utils/chains.d.ts +3 -2
  164. package/dist/src/utils/chains.d.ts.map +1 -1
  165. package/dist/src/utils/chains.js +33 -18
  166. package/dist/src/utils/chains.js.map +1 -1
  167. package/dist/src/utils/env.d.ts +6 -0
  168. package/dist/src/utils/env.d.ts.map +1 -0
  169. package/dist/src/utils/env.js +9 -0
  170. package/dist/src/utils/env.js.map +1 -0
  171. package/dist/src/utils/files.d.ts +6 -4
  172. package/dist/src/utils/files.d.ts.map +1 -1
  173. package/dist/src/utils/files.js +37 -25
  174. package/dist/src/utils/files.js.map +1 -1
  175. package/dist/src/utils/keys.d.ts +28 -1
  176. package/dist/src/utils/keys.d.ts.map +1 -1
  177. package/dist/src/utils/keys.js +65 -6
  178. package/dist/src/utils/keys.js.map +1 -1
  179. package/dist/src/utils/tokens.d.ts +3 -0
  180. package/dist/src/utils/tokens.d.ts.map +1 -0
  181. package/dist/src/utils/tokens.js +14 -0
  182. package/dist/src/utils/tokens.js.map +1 -0
  183. package/dist/src/utils/version-check.d.ts +2 -0
  184. package/dist/src/utils/version-check.d.ts.map +1 -0
  185. package/dist/src/utils/version-check.js +15 -0
  186. package/dist/src/utils/version-check.js.map +1 -0
  187. package/dist/src/version.d.ts +2 -0
  188. package/dist/src/version.d.ts.map +1 -0
  189. package/dist/src/version.js +2 -0
  190. package/dist/src/version.js.map +1 -0
  191. package/examples/chain-config.yaml +38 -46
  192. package/examples/contract-artifacts.yaml +4 -4
  193. package/examples/hooks.yaml +66 -0
  194. package/examples/ism-advanced.yaml +33 -0
  195. package/examples/{multisig-ism.yaml → ism.yaml} +0 -8
  196. package/examples/warp-route-deployment.yaml +32 -0
  197. package/package.json +20 -13
  198. package/dist/logger.d.ts +0 -14
  199. package/dist/logger.d.ts.map +0 -1
  200. package/dist/logger.js +0 -45
  201. package/dist/logger.js.map +0 -1
  202. package/dist/src/config/artifacts.d.ts +0 -3
  203. package/dist/src/config/artifacts.d.ts.map +0 -1
  204. package/dist/src/config/artifacts.js +0 -18
  205. package/dist/src/config/artifacts.js.map +0 -1
  206. package/dist/src/context.d.ts +0 -388
  207. package/dist/src/context.d.ts.map +0 -1
  208. package/dist/src/context.js +0 -30
  209. package/dist/src/context.js.map +0 -1
  210. package/dist/src/deploy/TestRecipientDeployer.d.ts +0 -20
  211. package/dist/src/deploy/TestRecipientDeployer.d.ts.map +0 -1
  212. package/dist/src/deploy/TestRecipientDeployer.js +0 -36
  213. package/dist/src/deploy/TestRecipientDeployer.js.map +0 -1
  214. package/dist/src/deploy/types.d.ts +0 -21
  215. package/dist/src/deploy/types.d.ts.map +0 -1
  216. package/examples/anvil-chains.yaml +0 -22
  217. package/examples/hook-config.yaml +0 -18
  218. package/examples/warp-tokens.yaml +0 -26
  219. /package/dist/src/{deploy → context}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/utils/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAGL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE/D,mDAAmD;AACnD,0BAA0B;AAC1B,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,YAAqC,EACrC,OAAO,GAAG,cAAc;IAExB,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC;QAC1B,OAAO;QACP,OAAO;QACP,QAAQ,EAAE,EAAE;KACb,CAAC,CAAW,CAAC;IACd,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,YAAqC,EACrC,OAAO,GAAG,eAAe;IAEzB,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9C,OAAO,IAAI,EAAE;QACX,MAAM,CAAC,kDAAkD,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC;YAC7B,OAAO;YACP,OAAO;YACP,QAAQ,EAAE,EAAE;SACb,CAAC,CAAa,CAAC;QAChB,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,MAAM,EAAE,MAAM,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;;YAClC,MAAM,CAAC,iCAAiC,CAAC,CAAC;KAChD;AACH,CAAC;AAED,SAAS,eAAe,CAAC,YAAqC;IAC5D,MAAM,eAAe,GAAG,CAAC,MAAuB,EAAE,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAA8C;QACzD,IAAI,SAAS,CAAC,mBAAmB,CAAC;QAClC,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/C,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,gBAAgB,EAAE;QACvD,IAAI,SAAS,CAAC,oBAAoB,CAAC;QACnC,GAAG,eAAe,CAAC,qBAAqB,CAAC;QACzC,IAAI,SAAS,CAAC,oBAAoB,CAAC;QACnC,GAAG,eAAe,CAAC,qBAAqB,CAAC;KAC1C,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,UAAoB;IAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACzC,OAAO,CACL,qEAAqE,CACtE,CAAC;QACF,GAAG,CACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EACrB,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAC9C,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAC5C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC"}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/utils/chains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const ENV: {
2
+ HYP_KEY?: string | undefined;
3
+ ANVIL_IP_ADDR?: string | undefined;
4
+ ANVIL_PORT?: number | undefined;
5
+ };
6
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,GAAG;;;;CAA0C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import z from 'zod';
2
+ const envScheme = z.object({
3
+ HYP_KEY: z.string().optional(),
4
+ ANVIL_IP_ADDR: z.string().optional(),
5
+ ANVIL_PORT: z.number().optional(),
6
+ });
7
+ const parsedEnv = envScheme.safeParse(process.env);
8
+ export const ENV = parsedEnv.success ? parsedEnv.data : {};
9
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC"}
@@ -1,4 +1,9 @@
1
1
  export type FileFormat = 'yaml' | 'json';
2
+ export type ArtifactsFile = {
3
+ filename: string;
4
+ description: string;
5
+ };
6
+ export declare function resolvePath(filePath: string): string;
2
7
  export declare function isFile(filepath: string): boolean;
3
8
  export declare function readFileAtPath(filepath: string): string;
4
9
  export declare function writeFileAtPath(filepath: string, value: string): void;
@@ -13,9 +18,6 @@ export declare function mergeYaml<T extends Record<string, any>>(filepath: strin
13
18
  export declare function readYamlOrJson<T>(filepath: string, format?: FileFormat): T;
14
19
  export declare function writeYamlOrJson(filepath: string, obj: Record<string, any>, format?: FileFormat): any;
15
20
  export declare function mergeYamlOrJson(filepath: string, obj: Record<string, any>, format?: FileFormat): any;
16
- export declare function prepNewArtifactsFiles(outPath: string, files: Array<{
17
- filename: string;
18
- description: string;
19
- }>): string[];
21
+ export declare function resolveFileFormat(filepath?: string, format?: FileFormat): FileFormat | undefined;
20
22
  export declare function runFileSelectionStep(folderPath: string, description: string, pattern?: string): Promise<string>;
21
23
  //# sourceMappingURL=files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,WAQtC;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAK9C;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAM9D;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAMzD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAM/D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,CAAC,CAE1E;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,UAAU,OAQpB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,UAAU,OAQpB;AAqBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,YAYxD;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,mBAwBjB"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,WAQtC;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAK9C;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAM9D;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAMzD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAM/D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,CAAC,CAE1E;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,UAAU,OAQpB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,GAAE,UAAmB,OAQ5B;AAoBD,wBAAgB,iBAAiB,CAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,UAAU,GAClB,UAAU,GAAG,SAAS,CAmBxB;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,mBA6BjB"}
@@ -1,11 +1,18 @@
1
1
  import { input } from '@inquirer/prompts';
2
2
  import select from '@inquirer/select';
3
3
  import fs from 'fs';
4
+ import os from 'os';
4
5
  import path from 'path';
5
6
  import { parse as yamlParse, stringify as yamlStringify } from 'yaml';
6
7
  import { objMerge } from '@hyperlane-xyz/utils';
7
- import { log, logBlue } from '../../logger.js';
8
- import { getTimestampForFilename } from './time.js';
8
+ import { log } from '../logger.js';
9
+ export function resolvePath(filePath) {
10
+ if (filePath.startsWith('~')) {
11
+ const homedir = os.homedir();
12
+ return path.join(homedir, filePath.slice(1));
13
+ }
14
+ return filePath;
15
+ }
9
16
  export function isFile(filepath) {
10
17
  if (!filepath)
11
18
  return false;
@@ -77,44 +84,49 @@ export function mergeYaml(filepath, obj) {
77
84
  }
78
85
  }
79
86
  export function readYamlOrJson(filepath, format) {
80
- return resolveYamlOrJson(filepath, readJson, readYaml, format);
87
+ return resolveYamlOrJsonFn(filepath, readJson, readYaml, format);
81
88
  }
82
89
  export function writeYamlOrJson(filepath, obj, format) {
83
- return resolveYamlOrJson(filepath, (f) => writeJson(f, obj), (f) => writeYaml(f, obj), format);
90
+ return resolveYamlOrJsonFn(filepath, (f) => writeJson(f, obj), (f) => writeYaml(f, obj), format);
84
91
  }
85
- export function mergeYamlOrJson(filepath, obj, format) {
86
- return resolveYamlOrJson(filepath, (f) => mergeJson(f, obj), (f) => mergeYaml(f, obj), format);
92
+ export function mergeYamlOrJson(filepath, obj, format = 'yaml') {
93
+ return resolveYamlOrJsonFn(filepath, (f) => mergeJson(f, obj), (f) => mergeYaml(f, obj), format);
87
94
  }
88
- function resolveYamlOrJson(filepath, jsonFn, yamlFn, format) {
89
- if (format === 'json' || filepath.endsWith('.json')) {
95
+ function resolveYamlOrJsonFn(filepath, jsonFn, yamlFn, format) {
96
+ const fileFormat = resolveFileFormat(filepath, format);
97
+ if (!fileFormat) {
98
+ throw new Error(`Invalid file format for ${filepath}`);
99
+ }
100
+ if (fileFormat === 'json') {
90
101
  return jsonFn(filepath);
91
102
  }
92
- else if (format === 'yaml' ||
93
- filepath.endsWith('.yaml') ||
94
- filepath.endsWith('.yml')) {
95
- return yamlFn(filepath);
103
+ return yamlFn(filepath);
104
+ }
105
+ export function resolveFileFormat(filepath, format) {
106
+ // early out if filepath is undefined
107
+ if (!filepath) {
108
+ return format;
96
109
  }
97
- else {
98
- throw new Error(`Invalid file format for ${filepath}`);
110
+ if (format === 'json' || filepath?.endsWith('.json')) {
111
+ return 'json';
99
112
  }
100
- }
101
- export function prepNewArtifactsFiles(outPath, files) {
102
- const timestamp = getTimestampForFilename();
103
- const newPaths = [];
104
- for (const file of files) {
105
- const filePath = path.join(outPath, `${file.filename}-${timestamp}.json`);
106
- // Write empty object to ensure permissions are okay
107
- writeJson(filePath, {});
108
- newPaths.push(filePath);
109
- logBlue(`${file.description} will be written to ${filePath}`);
113
+ if (format === 'yaml' ||
114
+ filepath?.endsWith('.yaml') ||
115
+ filepath?.endsWith('.yml')) {
116
+ return 'yaml';
110
117
  }
111
- return newPaths;
118
+ return undefined;
112
119
  }
113
120
  export async function runFileSelectionStep(folderPath, description, pattern) {
121
+ const noFilesErrorMessage = `No "${description}" found in ${folderPath}. Please confirm the path for "${description}". By default, the CLI writes to folders relative to where its run.`;
122
+ if (!fs.existsSync(folderPath))
123
+ throw new Error(noFilesErrorMessage);
114
124
  let filenames = fs.readdirSync(folderPath);
115
125
  if (pattern) {
116
126
  filenames = filenames.filter((f) => f.includes(pattern));
117
127
  }
128
+ if (filenames.length === 0)
129
+ throw new Error(noFilesErrorMessage);
118
130
  let filename = (await select({
119
131
  message: `Select ${description} file`,
120
132
  choices: [
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAIpD,MAAM,UAAU,MAAM,CAAC,QAAgB;IACrC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI;QACF,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;KACnE;IAAC,OAAO,KAAK,EAAE;QACd,GAAG,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACrB,MAAM,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;KAClD;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,KAAa;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACpB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5C;IACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,QAAgB;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAM,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,QAAgB;IAC7C,IAAI;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAM,CAAC;KAChC;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,GAAQ;IAClD,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,QAAgB,EAChB,GAAM;IAEN,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;QACpB,MAAM,QAAQ,GAAG,QAAQ,CAAI,QAAQ,CAAC,CAAC;QACvC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;KAC9C;SAAM;QACL,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,QAAgB;IAC1C,OAAO,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAM,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAI,QAAgB;IACnD,IAAI;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,GAAQ;IAClD,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,QAAgB,EAChB,GAAM;IAEN,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;QACpB,MAAM,QAAQ,GAAG,QAAQ,CAAI,QAAQ,CAAC,CAAC;QACvC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;KAC9C;SAAM;QACL,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAI,QAAgB,EAAE,MAAmB;IACrE,OAAO,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,GAAwB,EACxB,MAAmB;IAEnB,OAAO,iBAAiB,CACtB,QAAQ,EACR,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAChC,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAChC,MAAM,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,GAAwB,EACxB,MAAmB;IAEnB,OAAO,iBAAiB,CACtB,QAAQ,EACR,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAChC,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAChC,MAAM,CACP,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAgB,EAChB,MAAW,EACX,MAAW,EACX,MAAmB;IAEnB,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;KACzB;SAAM,IACL,MAAM,KAAK,MAAM;QACjB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EACzB;QACA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;KACzB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;KACxD;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,KAAuD;IAEvD,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,OAAO,CAAC,CAAC;QAC1E,oDAAoD;QACpD,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,uBAAuB,QAAQ,EAAE,CAAC,CAAC;KAC/D;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,WAAmB,EACnB,OAAgB;IAEhB,IAAI,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,OAAO,EAAE;QACX,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;KAC1D;IAED,IAAI,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC;QAC3B,OAAO,EAAE,UAAU,WAAW,OAAO;QACrC,OAAO,EAAE;YACP,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;SACtC;QACD,QAAQ,EAAE,EAAE;KACb,CAAC,CAAW,CAAC;IAEd,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAErD,QAAQ,GAAG,MAAM,KAAK,CAAC;QACrB,OAAO,EAAE,SAAS,WAAW,WAAW;KACzC,CAAC,CAAC;IAEH,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;;QACzB,MAAM,IAAI,KAAK,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,31 @@
1
1
  import { ethers } from 'ethers';
2
- export declare function keyToSigner(key: string): ethers.Wallet;
2
+ import { Address } from '@hyperlane-xyz/utils';
3
+ /**
4
+ * Retrieves a signer for the current command-context.
5
+ * @returns the signer
6
+ */
7
+ export declare function getSigner({ key, skipConfirmation, }: {
8
+ key?: string;
9
+ skipConfirmation?: boolean;
10
+ }): Promise<{
11
+ key: string;
12
+ signer: ethers.Wallet;
13
+ }>;
14
+ /**
15
+ * Retrieves an impersonated signer for the current command-context.
16
+ * @returns the impersonated signer
17
+ */
18
+ export declare function getImpersonatedSigner({ fromAddress, key, skipConfirmation, }: {
19
+ fromAddress?: Address;
20
+ key?: string;
21
+ skipConfirmation?: boolean;
22
+ }): Promise<{
23
+ impersonatedKey: string;
24
+ impersonatedSigner: ethers.providers.JsonRpcSigner;
25
+ }>;
26
+ /**
27
+ * Verifies the specified signer is valid.
28
+ * @param signer the signer to verify
29
+ */
3
30
  export declare function assertSigner(signer: ethers.Signer): void;
4
31
  //# sourceMappingURL=keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,iBAQtC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,QAGjD"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AAIzD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,EAC9B,GAAG,EACH,gBAAgB,GACjB,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;;;GAIA;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,WAAW,EACX,GAAG,EACH,gBAAgB,GACjB,EAAE;IACD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;;;GASA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,QAGjD"}
@@ -1,18 +1,77 @@
1
+ import { input } from '@inquirer/prompts';
1
2
  import { ethers } from 'ethers';
3
+ import { impersonateAccount } from '@hyperlane-xyz/sdk';
2
4
  import { ensure0x } from '@hyperlane-xyz/utils';
3
- export function keyToSigner(key) {
5
+ const ETHEREUM_ADDRESS_LENGTH = 42;
6
+ /**
7
+ * Retrieves a signer for the current command-context.
8
+ * @returns the signer
9
+ */
10
+ export async function getSigner({ key, skipConfirmation, }) {
11
+ key ||= await retrieveKey(skipConfirmation);
12
+ const signer = privateKeyToSigner(key);
13
+ return { key, signer };
14
+ }
15
+ /**
16
+ * Retrieves an impersonated signer for the current command-context.
17
+ * @returns the impersonated signer
18
+ */
19
+ export async function getImpersonatedSigner({ fromAddress, key, skipConfirmation, }) {
20
+ if (!fromAddress) {
21
+ const { signer } = await getSigner({ key, skipConfirmation });
22
+ fromAddress = signer.address;
23
+ }
24
+ return {
25
+ impersonatedKey: fromAddress,
26
+ impersonatedSigner: await addressToImpersonatedSigner(fromAddress),
27
+ };
28
+ }
29
+ /**
30
+ * Verifies the specified signer is valid.
31
+ * @param signer the signer to verify
32
+ */
33
+ export function assertSigner(signer) {
34
+ if (!signer || !ethers.Signer.isSigner(signer))
35
+ throw new Error('Signer is invalid');
36
+ }
37
+ /**
38
+ * Generates a signer from an address.
39
+ * @param address an EOA address
40
+ * @returns a signer for the address
41
+ */
42
+ async function addressToImpersonatedSigner(address) {
43
+ if (!address)
44
+ throw new Error('No address provided');
45
+ const formattedKey = address.trim().toLowerCase();
46
+ if (address.length != ETHEREUM_ADDRESS_LENGTH)
47
+ throw new Error('Invalid address length.');
48
+ else if (ethers.utils.isHexString(ensure0x(formattedKey)))
49
+ return await impersonateAccount(address);
50
+ else
51
+ throw new Error('Invalid address format');
52
+ }
53
+ /**
54
+ * Generates a signer from a private key.
55
+ * @param key a private key
56
+ * @returns a signer for the private key
57
+ */
58
+ function privateKeyToSigner(key) {
4
59
  if (!key)
5
- throw new Error('No key provided');
60
+ throw new Error('No private key provided');
6
61
  const formattedKey = key.trim().toLowerCase();
7
62
  if (ethers.utils.isHexString(ensure0x(formattedKey)))
8
63
  return new ethers.Wallet(ensure0x(formattedKey));
9
64
  else if (formattedKey.split(' ').length >= 6)
10
65
  return ethers.Wallet.fromMnemonic(formattedKey);
11
66
  else
12
- throw new Error('Invalid key format');
67
+ throw new Error('Invalid private key format');
13
68
  }
14
- export function assertSigner(signer) {
15
- if (!signer || !ethers.Signer.isSigner(signer))
16
- throw new Error('Signer is invalid');
69
+ async function retrieveKey(skipConfirmation) {
70
+ if (skipConfirmation)
71
+ throw new Error(`No private key provided`);
72
+ else
73
+ return await input({
74
+ message: `Please enter private key or use the HYP_KEY environment variable.`,
75
+ });
17
76
  }
18
77
  //# sourceMappingURL=keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;SAC9C,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;;QAC7C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAW,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAC9B,GAAG,EACH,gBAAgB,GAIjB;IACC,GAAG,KAAK,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,WAAW,EACX,GAAG,EACH,gBAAgB,GAKjB;IACC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC9D,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IACD,OAAO;QACL,eAAe,EAAE,WAAW;QAC5B,kBAAkB,EAAE,MAAM,2BAA2B,CAAC,WAAW,CAAC;KACnE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,2BAA2B,CACxC,OAAgB;IAEhB,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,IAAI,uBAAuB;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SACxC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;;QACtC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;SAC9C,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;;QAC7C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,gBAAqC;IAErC,IAAI,gBAAgB;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;;QAE/D,OAAO,MAAM,KAAK,CAAC;YACjB,OAAO,EAAE,mEAAmE;SAC7E,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Token } from '@hyperlane-xyz/sdk';
2
+ export declare function runTokenSelectionStep(tokens: Token[], message?: string): Promise<string>;
3
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/utils/tokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,SAAiB,mBAYzB"}
@@ -0,0 +1,14 @@
1
+ import select from '@inquirer/select';
2
+ export async function runTokenSelectionStep(tokens, message = 'Select token') {
3
+ const choices = tokens.map((t) => ({
4
+ name: `${t.symbol} - ${t.addressOrDenom}`,
5
+ value: t.addressOrDenom,
6
+ }));
7
+ const routerAddress = (await select({
8
+ message,
9
+ choices,
10
+ pageSize: 20,
11
+ }));
12
+ return routerAddress;
13
+ }
14
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/utils/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAItC,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAe,EACf,OAAO,GAAG,cAAc;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,cAAc,EAAE;QACzC,KAAK,EAAE,CAAC,CAAC,cAAc;KACxB,CAAC,CAAC,CAAC;IACJ,MAAM,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC;QAClC,OAAO;QACP,OAAO;QACP,QAAQ,EAAE,EAAE;KACb,CAAC,CAAW,CAAC;IACd,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function checkVersion(): Promise<void>;
2
+ //# sourceMappingURL=version-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../../src/utils/version-check.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,kBAUjC"}
@@ -0,0 +1,15 @@
1
+ import latestVersion from 'latest-version';
2
+ import { log } from '../logger.js';
3
+ import { VERSION } from '../version.js';
4
+ export async function checkVersion() {
5
+ const argv = process.argv;
6
+ // The latestVersion lib (or one of its deps) is confused by the --registry value
7
+ // in the CLI's args, so we need to clear the args before calling it
8
+ process.argv = [];
9
+ const currentVersion = await latestVersion('@hyperlane-xyz/cli');
10
+ process.argv = argv;
11
+ if (VERSION < currentVersion) {
12
+ log(`Your CLI version: ${VERSION}, latest version: ${currentVersion}`);
13
+ }
14
+ }
15
+ //# sourceMappingURL=version-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/utils/version-check.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,iFAAiF;IACjF,oEAAoE;IACpE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;IAClB,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,OAAO,GAAG,cAAc,EAAE,CAAC;QAC7B,GAAG,CAAC,qBAAqB,OAAO,qBAAqB,cAAc,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "3.2.0-alpha";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const VERSION = '3.2.0-alpha';
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC"}
@@ -1,50 +1,42 @@
1
1
  # Configs for describing chain metadata for use in Hyperlane deployments or apps
2
- # Consists of a map of chain names to metadata
3
2
  # Schema here: https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/sdk/src/metadata/chainMetadataTypes.ts
4
3
  ---
5
- # You can define a full config for a new chain
6
- mychainname:
4
+ # Required fields:
5
+ chainId: 1234567890 # Number: Use EIP-155 for EVM chains
6
+ domainId: 1234567890 # Number: Recommend matching chainId when possible
7
+ name: mychainname # String: Unique identifier for the chain, must match key above
8
+ protocol: ethereum # ProtocolType: Ethereum, Sealevel, etc.
9
+ rpcUrls: # Array: List of RPC configs
10
+ # Only http field is required
11
+ - http: https://mychain.com/rpc # String: HTTP URL of the RPC endpoint (preferably HTTPS)
12
+ # Others here are optional
13
+ pagination:
14
+ maxBlockRange: 1000 # Number
15
+ maxBlockAge: 1000 # Number
16
+ minBlockNumber: 1000 # Number
17
+ retry:
18
+ maxRequests: 5 # Number
19
+ baseRetryMs: 1000 # Number
20
+ # Optional fields, not required for Hyperlane deployments but useful for apps:
21
+ isTestnet: false # Boolean: Whether the chain is considered a testnet or a mainnet
22
+ blockExplorers: # Array: List of BlockExplorer configs
7
23
  # Required fields:
8
- chainId: 1234567890 # Number: Use EIP-155 for EVM chains
9
- domainId: 1234567890 # Number: Recommend matching chainId when possible
10
- name: mychainname # String: Unique identifier for the chain, must match key above
11
- protocol: ethereum # ProtocolType: Ethereum, Sealevel, etc.
12
- rpcUrls: # Array: List of RPC configs
13
- # Only http field is required
14
- - http: https://mychain.com/rpc # String: HTTP URL of the RPC endpoint (preferably HTTPS)
15
- # Others here are optional
16
- pagination:
17
- maxBlockRange: 1000 # Number
18
- maxBlockAge: 1000 # Number
19
- minBlockNumber: 1000 # Number
20
- retry:
21
- maxRequests: 5 # Number
22
- baseRetryMs: 1000 # Number
23
- # Optional fields, not required for Hyperlane deployments but useful for apps:
24
- isTestnet: false # Boolean: Whether the chain is considered a testnet or a mainnet
25
- blockExplorers: # Array: List of BlockExplorer configs
26
- # Required fields:
27
- - name: My Chain Explorer # String: Human-readable name for the explorer
28
- url: https://mychain.com/explorer # String: Base URL for the explorer
29
- apiUrl: https://mychain.com/api # String: Base URL for the explorer API
30
- # Optional fields:
31
- apiKey: myapikey # String: API key for the explorer (optional)
32
- family: etherscan # ExplorerFamily: See ExplorerFamily for valid values
33
- nativeToken:
34
- name: Eth # String
35
- symbol: ETH # String
36
- decimals: 18 # Number
37
- displayName: My Chain Name # String: Human-readable name of the chain
38
- displayNameShort: My Chain # String: A shorter human-readable name
39
- logoURI: https://mychain.com/logo.png # String: URI to a logo image for the chain
40
- blocks:
41
- confirmations: 12 # Number: Blocks to wait before considering a transaction confirmed
42
- reorgPeriod: 100 # Number: Blocks before a transaction has a near-zero chance of reverting
43
- estimateBlockTime: 15 # Number: Rough estimate of time per block in seconds
44
- # transactionOverrides: # Object: Properties to include when forming transaction requests
45
- # Any tx fields are allowed
46
-
47
- # Alternatively, you can extend a core chain config with only fields to be overridden
48
- sepolia:
49
- rpcUrls:
50
- - http: https://mycustomrpc.com
24
+ - name: My Chain Explorer # String: Human-readable name for the explorer
25
+ url: https://mychain.com/explorer # String: Base URL for the explorer
26
+ apiUrl: https://mychain.com/api # String: Base URL for the explorer API
27
+ # Optional fields:
28
+ apiKey: myapikey # String: API key for the explorer (optional)
29
+ family: etherscan # ExplorerFamily: See ExplorerFamily for valid values
30
+ nativeToken:
31
+ name: Eth # String
32
+ symbol: ETH # String
33
+ decimals: 18 # Number
34
+ displayName: My Chain Name # String: Human-readable name of the chain
35
+ displayNameShort: My Chain # String: A shorter human-readable name
36
+ logoURI: https://mychain.com/logo.png # String: URI to a logo image for the chain
37
+ blocks:
38
+ confirmations: 12 # Number: Blocks to wait before considering a transaction confirmed
39
+ reorgPeriod: 100 # Number: Blocks before a transaction has a near-zero chance of reverting
40
+ estimateBlockTime: 15 # Number: Rough estimate of time per block in seconds
41
+ # transactionOverrides: # Object: Properties to include when forming transaction requests
42
+ # Any tx fields are allowed
@@ -12,9 +12,9 @@ anvil1:
12
12
  multisigIsm: '0x9bDE63104EE030d9De419EEd6bA7D14b86D6fE3f'
13
13
  testRecipient: '0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35'
14
14
  interchainAccountIsm: '0x5e8ee6840caa4f367aff1FF28aA36D5B1b836d35'
15
- aggregationIsmFactory: '0xc864fa3B662613cA5051f41e157d0a997f9a5A87'
16
- routingIsmFactory: '0x1fdfD1486b8339638C6b92f8a96D698D8182D2b1'
15
+ staticAggregationIsmFactory: '0xc864fa3B662613cA5051f41e157d0a997f9a5A87'
16
+ domainRoutingIsmFactory: '0x1fdfD1486b8339638C6b92f8a96D698D8182D2b1'
17
17
  interchainQueryRouter: '0xA837e38C3F7D509DF3a7a0fCf65E3814DB6c2618'
18
18
  interchainAccountRouter: '0x9521291A43ebA3aD3FD24d610F4b7F7543C8d761'
19
- merkleRootMultisigIsmFactory: '0x82140b2ddAd4E4dd7e1D6757Fb5F9485c230B79d'
20
- messageIdMultisigIsmFactory: '0x1079056da3EC7D55521F27e1E094015C0d39Cc65'
19
+ staticMerkleRootMultisigIsmFactory: '0x82140b2ddAd4E4dd7e1D6757Fb5F9485c230B79d'
20
+ staticMessageIdMultisigIsmFactory: '0x1079056da3EC7D55521F27e1E094015C0d39Cc65'
@@ -0,0 +1,66 @@
1
+ # A config to define the hooks for core contract deployments
2
+ # Ideally, use the `hyperlane config create hooks` command to generate this file
3
+ # but you we can refer to https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/sdk/src/hook/types.ts for the matching types
4
+
5
+ # HooksConfig:
6
+ # required: HookConfig
7
+ # default: HookConfig
8
+
9
+ # HookConfig:
10
+ # type: HookType
11
+ # ... hook-specific config
12
+
13
+ # HookType:
14
+ # - merkleTreeHook
15
+ # - domainRoutingHook
16
+ # - interchainGasPaymaster
17
+ # - protocolFee
18
+ # - aggregationHook
19
+ # - opStack (not yet supported)
20
+
21
+ anvil1:
22
+ required:
23
+ type: protocolFee
24
+ maxProtocolFee: '1000000000000000000' # in wei (string)
25
+ protocolFee: '200000000000000' # in wei (string)
26
+ beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
27
+ owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
28
+ default:
29
+ type: domainRoutingHook
30
+ owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
31
+ domains:
32
+ anvil2:
33
+ type: aggregationHook
34
+ hooks:
35
+ - type: merkleTreeHook
36
+ - type: interchainGasPaymaster
37
+ beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
38
+ owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
39
+ oracleKey: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
40
+ overhead:
41
+ anvil2: 50000 # gas amount (number)
42
+ gasOracleType:
43
+ anvil2: StorageGasOracle
44
+ anvil2:
45
+ required:
46
+ type: protocolFee
47
+ maxProtocolFee: '1000000000000000000'
48
+ protocolFee: '200000000000000'
49
+ beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
50
+ owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
51
+ default:
52
+ type: domainRoutingHook
53
+ owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
54
+ domains:
55
+ anvil1:
56
+ type: aggregationHook
57
+ hooks:
58
+ - type: merkleTreeHook
59
+ - type: interchainGasPaymaster
60
+ beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
61
+ owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
62
+ oracleKey: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
63
+ overhead:
64
+ anvil1: 50000
65
+ gasOracleType:
66
+ anvil1: StorageGasOracle
@@ -0,0 +1,33 @@
1
+ anvil1:
2
+ type: defaultFallbackRoutingIsm
3
+ owner: '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
4
+ domains:
5
+ anvil2:
6
+ type: staticAggregationIsm
7
+ modules:
8
+ - type: messageIdMultisigIsm
9
+ threshold: 1
10
+ validators:
11
+ - '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
12
+ - type: merkleRootMultisigIsm
13
+ threshold: 1
14
+ validators:
15
+ - '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
16
+ threshold: 1
17
+
18
+ anvil2:
19
+ type: domainRoutingIsm
20
+ owner: '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
21
+ domains:
22
+ anvil1:
23
+ type: staticAggregationIsm
24
+ modules:
25
+ - type: messageIdMultisigIsm
26
+ threshold: 1
27
+ validators:
28
+ - '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
29
+ - type: merkleRootMultisigIsm
30
+ threshold: 1
31
+ validators:
32
+ - '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
33
+ threshold: 1