@hyperlane-xyz/cli 3.1.9 → 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 (228) 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 -3
  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 -64
  57. package/dist/src/config/chain.js.map +1 -1
  58. package/dist/src/config/chain.test.d.ts +2 -0
  59. package/dist/src/config/chain.test.d.ts.map +1 -0
  60. package/dist/src/config/chain.test.js +9 -0
  61. package/dist/src/config/chain.test.js.map +1 -0
  62. package/dist/src/config/hooks.d.ts +91 -214
  63. package/dist/src/config/hooks.d.ts.map +1 -1
  64. package/dist/src/config/hooks.js +218 -122
  65. package/dist/src/config/hooks.js.map +1 -1
  66. package/dist/src/config/ism.d.ts +74 -0
  67. package/dist/src/config/ism.d.ts.map +1 -0
  68. package/dist/src/config/ism.js +223 -0
  69. package/dist/src/config/ism.js.map +1 -0
  70. package/dist/src/config/multisig.d.ts +4 -14
  71. package/dist/src/config/multisig.d.ts.map +1 -1
  72. package/dist/src/config/multisig.js +35 -29
  73. package/dist/src/config/multisig.js.map +1 -1
  74. package/dist/src/config/warp.d.ts +7 -180
  75. package/dist/src/config/warp.d.ts.map +1 -1
  76. package/dist/src/config/warp.js +55 -62
  77. package/dist/src/config/warp.js.map +1 -1
  78. package/dist/src/consts.d.ts +1 -0
  79. package/dist/src/consts.d.ts.map +1 -1
  80. package/dist/src/consts.js +1 -0
  81. package/dist/src/consts.js.map +1 -1
  82. package/dist/src/context/context.d.ts +14 -0
  83. package/dist/src/context/context.d.ts.map +1 -0
  84. package/dist/src/context/context.js +108 -0
  85. package/dist/src/context/context.js.map +1 -0
  86. package/dist/src/context/types.d.ts +33 -0
  87. package/dist/src/context/types.d.ts.map +1 -0
  88. package/dist/src/context/types.js.map +1 -0
  89. package/dist/src/deploy/agent.d.ts +6 -4
  90. package/dist/src/deploy/agent.d.ts.map +1 -1
  91. package/dist/src/deploy/agent.js +10 -24
  92. package/dist/src/deploy/agent.js.map +1 -1
  93. package/dist/src/deploy/core.d.ts +10 -7
  94. package/dist/src/deploy/core.d.ts.map +1 -1
  95. package/dist/src/deploy/core.js +156 -160
  96. package/dist/src/deploy/core.js.map +1 -1
  97. package/dist/src/deploy/dry-run.d.ts +19 -0
  98. package/dist/src/deploy/dry-run.d.ts.map +1 -0
  99. package/dist/src/deploy/dry-run.js +45 -0
  100. package/dist/src/deploy/dry-run.js.map +1 -0
  101. package/dist/src/deploy/utils.d.ts +15 -8
  102. package/dist/src/deploy/utils.d.ts.map +1 -1
  103. package/dist/src/deploy/utils.js +60 -11
  104. package/dist/src/deploy/utils.js.map +1 -1
  105. package/dist/src/deploy/warp.d.ts +4 -7
  106. package/dist/src/deploy/warp.d.ts.map +1 -1
  107. package/dist/src/deploy/warp.js +131 -169
  108. package/dist/src/deploy/warp.js.map +1 -1
  109. package/dist/src/hook/read.d.ts +13 -0
  110. package/dist/src/hook/read.d.ts.map +1 -0
  111. package/dist/src/hook/read.js +25 -0
  112. package/dist/src/hook/read.js.map +1 -0
  113. package/dist/src/ism/read.d.ts +13 -0
  114. package/dist/src/ism/read.d.ts.map +1 -0
  115. package/dist/src/ism/read.js +25 -0
  116. package/dist/src/ism/read.js.map +1 -0
  117. package/dist/src/logger.d.ts +17 -0
  118. package/dist/src/logger.d.ts.map +1 -0
  119. package/dist/src/logger.js +32 -0
  120. package/dist/src/logger.js.map +1 -0
  121. package/dist/src/registry/MergedRegistry.d.ts +35 -0
  122. package/dist/src/registry/MergedRegistry.d.ts.map +1 -0
  123. package/dist/src/registry/MergedRegistry.js +83 -0
  124. package/dist/src/registry/MergedRegistry.js.map +1 -0
  125. package/dist/src/send/message.d.ts +7 -6
  126. package/dist/src/send/message.d.ts.map +1 -1
  127. package/dist/src/send/message.js +40 -22
  128. package/dist/src/send/message.js.map +1 -1
  129. package/dist/src/send/transfer.d.ts +8 -10
  130. package/dist/src/send/transfer.d.ts.map +1 -1
  131. package/dist/src/send/transfer.js +68 -70
  132. package/dist/src/send/transfer.js.map +1 -1
  133. package/dist/src/status/message.d.ts +7 -5
  134. package/dist/src/status/message.d.ts.map +1 -1
  135. package/dist/src/status/message.js +25 -12
  136. package/dist/src/status/message.js.map +1 -1
  137. package/dist/src/submit/submit.d.ts +5 -0
  138. package/dist/src/submit/submit.d.ts.map +1 -0
  139. package/dist/src/submit/submit.js +30 -0
  140. package/dist/src/submit/submit.js.map +1 -0
  141. package/dist/src/submit/types.d.ts +18 -0
  142. package/dist/src/submit/types.d.ts.map +1 -0
  143. package/dist/src/submit/types.js +2 -0
  144. package/dist/src/{deploy → submit}/types.js.map +1 -1
  145. package/dist/src/tests/deployTestErc20.d.ts +2 -0
  146. package/dist/src/tests/deployTestErc20.d.ts.map +1 -0
  147. package/dist/src/tests/deployTestErc20.js +26 -0
  148. package/dist/src/tests/deployTestErc20.js.map +1 -0
  149. package/dist/src/tests/hooks.test.d.ts +2 -0
  150. package/dist/src/tests/hooks.test.d.ts.map +1 -0
  151. package/dist/src/tests/hooks.test.js +83 -0
  152. package/dist/src/tests/hooks.test.js.map +1 -0
  153. package/dist/src/tests/ism.test.d.ts +2 -0
  154. package/dist/src/tests/ism.test.d.ts.map +1 -0
  155. package/dist/src/tests/ism.test.js +76 -0
  156. package/dist/src/tests/ism.test.js.map +1 -0
  157. package/dist/src/tests/multisig.test.d.ts +2 -0
  158. package/dist/src/tests/multisig.test.d.ts.map +1 -0
  159. package/dist/src/tests/multisig.test.js +34 -0
  160. package/dist/src/tests/multisig.test.js.map +1 -0
  161. package/dist/src/utils/balances.d.ts +2 -4
  162. package/dist/src/utils/balances.d.ts.map +1 -1
  163. package/dist/src/utils/balances.js +8 -12
  164. package/dist/src/utils/balances.js.map +1 -1
  165. package/dist/src/utils/chains.d.ts +3 -2
  166. package/dist/src/utils/chains.d.ts.map +1 -1
  167. package/dist/src/utils/chains.js +42 -23
  168. package/dist/src/utils/chains.js.map +1 -1
  169. package/dist/src/utils/env.d.ts +6 -0
  170. package/dist/src/utils/env.d.ts.map +1 -0
  171. package/dist/src/utils/env.js +9 -0
  172. package/dist/src/utils/env.js.map +1 -0
  173. package/dist/src/utils/files.d.ts +7 -4
  174. package/dist/src/utils/files.d.ts.map +1 -1
  175. package/dist/src/utils/files.js +52 -29
  176. package/dist/src/utils/files.js.map +1 -1
  177. package/dist/src/utils/keys.d.ts +28 -1
  178. package/dist/src/utils/keys.d.ts.map +1 -1
  179. package/dist/src/utils/keys.js +65 -6
  180. package/dist/src/utils/keys.js.map +1 -1
  181. package/dist/src/utils/time.d.ts.map +1 -1
  182. package/dist/src/utils/time.js +8 -1
  183. package/dist/src/utils/time.js.map +1 -1
  184. package/dist/src/utils/time.test.d.ts +2 -0
  185. package/dist/src/utils/time.test.d.ts.map +1 -0
  186. package/dist/src/utils/time.test.js +9 -0
  187. package/dist/src/utils/time.test.js.map +1 -0
  188. package/dist/src/utils/tokens.d.ts +3 -0
  189. package/dist/src/utils/tokens.d.ts.map +1 -0
  190. package/dist/src/utils/tokens.js +14 -0
  191. package/dist/src/utils/tokens.js.map +1 -0
  192. package/dist/src/utils/version-check.d.ts +2 -0
  193. package/dist/src/utils/version-check.d.ts.map +1 -0
  194. package/dist/src/utils/version-check.js +15 -0
  195. package/dist/src/utils/version-check.js.map +1 -0
  196. package/dist/src/version.d.ts +2 -0
  197. package/dist/src/version.d.ts.map +1 -0
  198. package/dist/src/version.js +2 -0
  199. package/dist/src/version.js.map +1 -0
  200. package/examples/chain-config.yaml +38 -40
  201. package/examples/contract-artifacts.yaml +4 -4
  202. package/examples/hooks.yaml +66 -0
  203. package/examples/ism-advanced.yaml +33 -0
  204. package/examples/{multisig-ism.yaml → ism.yaml} +0 -8
  205. package/examples/warp-route-deployment.yaml +32 -0
  206. package/package.json +27 -14
  207. package/dist/logger.d.ts +0 -13
  208. package/dist/logger.d.ts.map +0 -1
  209. package/dist/logger.js +0 -44
  210. package/dist/logger.js.map +0 -1
  211. package/dist/src/config/artifacts.d.ts +0 -3
  212. package/dist/src/config/artifacts.d.ts.map +0 -1
  213. package/dist/src/config/artifacts.js +0 -18
  214. package/dist/src/config/artifacts.js.map +0 -1
  215. package/dist/src/context.d.ts +0 -388
  216. package/dist/src/context.d.ts.map +0 -1
  217. package/dist/src/context.js +0 -30
  218. package/dist/src/context.js.map +0 -1
  219. package/dist/src/deploy/TestRecipientDeployer.d.ts +0 -20
  220. package/dist/src/deploy/TestRecipientDeployer.d.ts.map +0 -1
  221. package/dist/src/deploy/TestRecipientDeployer.js +0 -36
  222. package/dist/src/deploy/TestRecipientDeployer.js.map +0 -1
  223. package/dist/src/deploy/types.d.ts +0 -21
  224. package/dist/src/deploy/types.d.ts.map +0 -1
  225. package/examples/anvil-chains.yaml +0 -22
  226. package/examples/hook-config.yaml +0 -18
  227. package/examples/warp-tokens.yaml +0 -26
  228. /package/dist/src/{deploy → context}/types.js +0 -0
@@ -0,0 +1,223 @@
1
+ import { confirm, input, select } from '@inquirer/prompts';
2
+ import { z } from 'zod';
3
+ import { IsmType, ZHash } from '@hyperlane-xyz/sdk';
4
+ import { errorRed, log, logBlue, logBoldUnderlinedRed, logGreen, logRed, } from '../logger.js';
5
+ import { runMultiChainSelectionStep } from '../utils/chains.js';
6
+ import { mergeYamlOrJson, readYamlOrJson } from '../utils/files.js';
7
+ const MultisigIsmConfigSchema = z.object({
8
+ type: z.union([
9
+ z.literal(IsmType.MERKLE_ROOT_MULTISIG),
10
+ z.literal(IsmType.MESSAGE_ID_MULTISIG),
11
+ ]),
12
+ threshold: z.number(),
13
+ validators: z.array(ZHash),
14
+ });
15
+ const RoutingIsmConfigSchema = z.lazy(() => z.object({
16
+ type: z.union([
17
+ z.literal(IsmType.ROUTING),
18
+ z.literal(IsmType.FALLBACK_ROUTING),
19
+ ]),
20
+ owner: ZHash,
21
+ domains: z.record(IsmConfigSchema),
22
+ }));
23
+ const AggregationIsmConfigSchema = z
24
+ .lazy(() => z.object({
25
+ type: z.literal(IsmType.AGGREGATION),
26
+ modules: z.array(IsmConfigSchema),
27
+ threshold: z.number(),
28
+ }))
29
+ .refine(
30
+ // check ig modules.length >= threshold
31
+ (ismConfig) => {
32
+ return ismConfig.modules.length >= ismConfig.threshold;
33
+ }, {
34
+ message: 'Threshold cannot be greater than number of modules',
35
+ });
36
+ const TestIsmConfigSchema = z.object({
37
+ type: z.literal(IsmType.TEST_ISM),
38
+ });
39
+ const TrustedRelayerIsmConfigSchema = z.object({
40
+ type: z.literal(IsmType.TRUSTED_RELAYER),
41
+ relayer: ZHash,
42
+ });
43
+ const IsmConfigSchema = z.union([
44
+ MultisigIsmConfigSchema,
45
+ RoutingIsmConfigSchema,
46
+ AggregationIsmConfigSchema,
47
+ TestIsmConfigSchema,
48
+ TrustedRelayerIsmConfigSchema,
49
+ ]);
50
+ const IsmConfigMapSchema = z.record(IsmConfigSchema).refine((ismConfigMap) => {
51
+ // check if any key in IsmConfigMap is found in its own RoutingIsmConfigSchema.domains
52
+ for (const [key, config] of Object.entries(ismConfigMap)) {
53
+ if (config.type === IsmType.ROUTING) {
54
+ if (config.domains && key in config.domains) {
55
+ return false;
56
+ }
57
+ }
58
+ }
59
+ return true;
60
+ }, {
61
+ message: 'Cannot set RoutingIsm.domain to the same chain you are configuring',
62
+ });
63
+ export function parseIsmConfig(filePath) {
64
+ const config = readYamlOrJson(filePath);
65
+ if (!config)
66
+ throw new Error(`No ISM config found at ${filePath}`);
67
+ return IsmConfigMapSchema.safeParse(config);
68
+ }
69
+ export function readIsmConfig(filePath) {
70
+ const result = parseIsmConfig(filePath);
71
+ if (!result.success) {
72
+ const firstIssue = result.error.issues[0];
73
+ throw new Error(`Invalid ISM config: ${firstIssue.path} => ${firstIssue.message}`);
74
+ }
75
+ const parsedConfig = result.data;
76
+ return parsedConfig;
77
+ }
78
+ export function isValildIsmConfig(config) {
79
+ return IsmConfigMapSchema.safeParse(config).success;
80
+ }
81
+ export async function createIsmConfigMap({ context, outPath, }) {
82
+ logBlue('Creating a new advanced ISM config');
83
+ logBoldUnderlinedRed('WARNING: USE AT YOUR RISK.');
84
+ logRed('Advanced ISM configs require knowledge of different ISM types and how they work together topologically. If possible, use the basic ISM configs are recommended.');
85
+ const chains = await runMultiChainSelectionStep(context.chainMetadata, 'Select chains to configure ISM for', true);
86
+ const result = {};
87
+ for (const chain of chains) {
88
+ log(`Setting values for chain ${chain}`);
89
+ result[chain] = await createIsmConfig(chain, chains);
90
+ // TODO consider re-enabling. Disabling based on feedback from @nambrot for now.
91
+ // repeat = await confirm({
92
+ // message: 'Use this same config for remaining chains?',
93
+ // });
94
+ }
95
+ if (isValildIsmConfig(result)) {
96
+ logGreen(`ISM config is valid, writing to file ${outPath}`);
97
+ mergeYamlOrJson(outPath, result);
98
+ }
99
+ else {
100
+ errorRed(`ISM config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/ism.yaml for an example`);
101
+ throw new Error('Invalid ISM config');
102
+ }
103
+ }
104
+ export async function createIsmConfig(remote, origins) {
105
+ let lastConfig;
106
+ const moduleType = await select({
107
+ message: 'Select ISM type',
108
+ choices: [
109
+ {
110
+ value: IsmType.MESSAGE_ID_MULTISIG,
111
+ description: 'Validators need to sign just this messageId',
112
+ },
113
+ {
114
+ value: IsmType.MERKLE_ROOT_MULTISIG,
115
+ description: 'Validators need to sign the root of the merkle tree of all messages from origin chain',
116
+ },
117
+ {
118
+ value: IsmType.ROUTING,
119
+ description: 'Each origin chain can be verified by the specified ISM type via RoutingISM',
120
+ },
121
+ {
122
+ value: IsmType.FALLBACK_ROUTING,
123
+ description: "You can specify ISM type for specific chains you like and fallback to mailbox's default ISM for other chains via DefaultFallbackRoutingISM",
124
+ },
125
+ {
126
+ value: IsmType.AGGREGATION,
127
+ description: 'You can aggregate multiple ISMs into one ISM via AggregationISM',
128
+ },
129
+ {
130
+ value: IsmType.TRUSTED_RELAYER,
131
+ description: 'Deliver messages from an authorized address',
132
+ },
133
+ {
134
+ value: IsmType.TEST_ISM,
135
+ description: 'ISM where you can deliver messages without any validation (WARNING: only for testing, do not use in production)',
136
+ },
137
+ ],
138
+ pageSize: 10,
139
+ });
140
+ if (moduleType === IsmType.MESSAGE_ID_MULTISIG ||
141
+ moduleType === IsmType.MERKLE_ROOT_MULTISIG) {
142
+ lastConfig = await createMultisigConfig(moduleType);
143
+ }
144
+ else if (moduleType === IsmType.ROUTING ||
145
+ moduleType === IsmType.FALLBACK_ROUTING) {
146
+ lastConfig = await createRoutingConfig(moduleType, remote, origins);
147
+ }
148
+ else if (moduleType === IsmType.AGGREGATION) {
149
+ lastConfig = await createAggregationConfig(remote, origins);
150
+ }
151
+ else if (moduleType === IsmType.TEST_ISM) {
152
+ lastConfig = { type: IsmType.TEST_ISM };
153
+ }
154
+ else if (moduleType === IsmType.TRUSTED_RELAYER) {
155
+ lastConfig = await createTrustedRelayerConfig();
156
+ }
157
+ else {
158
+ throw new Error(`Invalid ISM type: ${moduleType}}`);
159
+ }
160
+ return lastConfig;
161
+ }
162
+ export async function createMultisigConfig(type) {
163
+ const thresholdInput = await input({
164
+ message: 'Enter threshold of validators (number)',
165
+ });
166
+ const threshold = parseInt(thresholdInput, 10);
167
+ const validatorsInput = await input({
168
+ message: 'Enter validator addresses (comma separated list)',
169
+ });
170
+ const validators = validatorsInput.split(',').map((v) => v.trim());
171
+ return {
172
+ type,
173
+ threshold,
174
+ validators,
175
+ };
176
+ }
177
+ async function createTrustedRelayerConfig() {
178
+ const relayer = await input({
179
+ message: 'Enter relayer address',
180
+ });
181
+ return {
182
+ type: IsmType.TRUSTED_RELAYER,
183
+ relayer,
184
+ };
185
+ }
186
+ export async function createAggregationConfig(remote, chains) {
187
+ const isms = parseInt(await input({
188
+ message: 'Enter the number of ISMs to aggregate (number)',
189
+ }), 10);
190
+ const threshold = parseInt(await input({
191
+ message: 'Enter the threshold of ISMs to for verification (number)',
192
+ }), 10);
193
+ const modules = [];
194
+ for (let i = 0; i < isms; i++) {
195
+ modules.push(await createIsmConfig(remote, chains));
196
+ }
197
+ return {
198
+ type: IsmType.AGGREGATION,
199
+ modules,
200
+ threshold,
201
+ };
202
+ }
203
+ export async function createRoutingConfig(type, remote, chains) {
204
+ const owner = await input({
205
+ message: 'Enter owner address',
206
+ });
207
+ const ownerAddress = owner;
208
+ const origins = chains.filter((chain) => chain !== remote);
209
+ const domainsMap = {};
210
+ for (const chain of origins) {
211
+ await confirm({
212
+ message: `You are about to configure ISM from source chain ${chain}. Continue?`,
213
+ });
214
+ const config = await createIsmConfig(chain, chains);
215
+ domainsMap[chain] = config;
216
+ }
217
+ return {
218
+ type,
219
+ owner: ownerAddress,
220
+ domains: domainsMap,
221
+ };
222
+ }
223
+ //# sourceMappingURL=ism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/config/ism.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAuB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,EACL,QAAQ,EACR,GAAG,EACH,OAAO,EACP,oBAAoB,EACpB,QAAQ,EACR,MAAM,GACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACvC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;KACvC,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC3D,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC1B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;KACpC,CAAC;IACF,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;CACnC,CAAC,CACH,CAAC;AAEF,MAAM,0BAA0B,GAAqB,CAAC;KACnD,IAAI,CAAC,GAAG,EAAE,CACT,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CACH;KACA,MAAM;AACL,uCAAuC;AACvC,CAAC,SAAS,EAAE,EAAE;IACZ,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,SAAS,CAAC;AACzD,CAAC,EACD;IACE,OAAO,EAAE,oDAAoD;CAC9D,CACF,CAAC;AAEJ,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;IACxC,OAAO,EAAE,KAAK;CACf,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9B,uBAAuB;IACvB,sBAAsB;IACtB,0BAA0B;IAC1B,mBAAmB;IACnB,6BAA6B;CAC9B,CAAC,CAAC;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CACzD,CAAC,YAAY,EAAE,EAAE;IACf,sFAAsF;IACtF,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACzD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,OAAO,IAAI,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,OAAO,EACL,oEAAoE;CACvE,CACF,CAAC;AAIF,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IACnE,OAAO,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,uBAAuB,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,OAAO,EAAE,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;IACjC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAW;IAC3C,OAAO,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,OAAO,EACP,OAAO,GAIR;IACC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAC9C,oBAAoB,CAAC,4BAA4B,CAAC,CAAC;IACnD,MAAM,CACJ,iKAAiK,CAClK,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAC7C,OAAO,CAAC,aAAa,EACrB,oCAAoC,EACpC,IAAI,CACL,CAAC;IAEF,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAErD,gFAAgF;QAChF,2BAA2B;QAC3B,2DAA2D;QAC3D,MAAM;IACR,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;QAC5D,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,QAAQ,CACN,iJAAiJ,CAClJ,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAiB,EACjB,OAAoB;IAEpB,IAAI,UAAwB,CAAC;IAC7B,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC;QAC9B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,OAAO,CAAC,mBAAmB;gBAClC,WAAW,EAAE,6CAA6C;aAC3D;YACD;gBACE,KAAK,EAAE,OAAO,CAAC,oBAAoB;gBACnC,WAAW,EACT,uFAAuF;aAC1F;YACD;gBACE,KAAK,EAAE,OAAO,CAAC,OAAO;gBACtB,WAAW,EACT,4EAA4E;aAC/E;YACD;gBACE,KAAK,EAAE,OAAO,CAAC,gBAAgB;gBAC/B,WAAW,EACT,4IAA4I;aAC/I;YACD;gBACE,KAAK,EAAE,OAAO,CAAC,WAAW;gBAC1B,WAAW,EACT,iEAAiE;aACpE;YACD;gBACE,KAAK,EAAE,OAAO,CAAC,eAAe;gBAC9B,WAAW,EAAE,6CAA6C;aAC3D;YACD;gBACE,KAAK,EAAE,OAAO,CAAC,QAAQ;gBACvB,WAAW,EACT,iHAAiH;aACpH;SACF;QACD,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;IACH,IACE,UAAU,KAAK,OAAO,CAAC,mBAAmB;QAC1C,UAAU,KAAK,OAAO,CAAC,oBAAoB,EAC3C,CAAC;QACD,UAAU,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;SAAM,IACL,UAAU,KAAK,OAAO,CAAC,OAAO;QAC9B,UAAU,KAAK,OAAO,CAAC,gBAAgB,EACvC,CAAC;QACD,UAAU,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,UAAU,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;QAC9C,UAAU,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,UAAU,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC3C,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;SAAM,IAAI,UAAU,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC;QAClD,UAAU,GAAG,MAAM,0BAA0B,EAAE,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAgE;IAEhE,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC;QACjC,OAAO,EAAE,wCAAwC;KAClD,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAE/C,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC;QAClC,OAAO,EAAE,kDAAkD;KAC5D,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO;QACL,IAAI;QACJ,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,0BAA0B;IACvC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;QAC1B,OAAO,EAAE,uBAAuB;KACjC,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,eAAe;QAC7B,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAiB,EACjB,MAAmB;IAEnB,MAAM,IAAI,GAAG,QAAQ,CACnB,MAAM,KAAK,CAAC;QACV,OAAO,EAAE,gDAAgD;KAC1D,CAAC,EACF,EAAE,CACH,CAAC;IAEF,MAAM,SAAS,GAAG,QAAQ,CACxB,MAAM,KAAK,CAAC;QACV,OAAO,EAAE,0DAA0D;KACpE,CAAC,EACF,EAAE,CACH,CAAC;IAEF,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,WAAW;QACzB,OAAO;QACP,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAgD,EAChD,MAAiB,EACjB,MAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC;QACxB,OAAO,EAAE,qBAAqB;KAC/B,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,KAAK,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;IAE3D,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,CAAC;YACZ,OAAO,EAAE,oDAAoD,KAAK,aAAa;SAChF,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpD,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IAC7B,CAAC;IACD,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,UAAU;KACpB,CAAC;AACJ,CAAC"}
@@ -1,50 +1,40 @@
1
1
  import { z } from 'zod';
2
- import { ChainMap, IsmType, MultisigConfig } from '@hyperlane-xyz/sdk';
3
- import { FileFormat } from '../utils/files.js';
2
+ import { ChainMap, MultisigConfig } from '@hyperlane-xyz/sdk';
3
+ import { CommandContext } from '../context/types.js';
4
4
  declare const MultisigConfigMapSchema: z.ZodObject<{}, "strip", z.ZodObject<{
5
- type: z.ZodNativeEnum<typeof IsmType>;
6
5
  threshold: z.ZodNumber;
7
6
  validators: z.ZodArray<z.ZodString, "many">;
8
7
  }, "strip", z.ZodTypeAny, {
9
- type: IsmType;
10
8
  threshold: number;
11
9
  validators: string[];
12
10
  }, {
13
- type: IsmType;
14
11
  threshold: number;
15
12
  validators: string[];
16
13
  }>, z.objectOutputType<{}, z.ZodObject<{
17
- type: z.ZodNativeEnum<typeof IsmType>;
18
14
  threshold: z.ZodNumber;
19
15
  validators: z.ZodArray<z.ZodString, "many">;
20
16
  }, "strip", z.ZodTypeAny, {
21
- type: IsmType;
22
17
  threshold: number;
23
18
  validators: string[];
24
19
  }, {
25
- type: IsmType;
26
20
  threshold: number;
27
21
  validators: string[];
28
22
  }>, "strip">, z.objectInputType<{}, z.ZodObject<{
29
- type: z.ZodNativeEnum<typeof IsmType>;
30
23
  threshold: z.ZodNumber;
31
24
  validators: z.ZodArray<z.ZodString, "many">;
32
25
  }, "strip", z.ZodTypeAny, {
33
- type: IsmType;
34
26
  threshold: number;
35
27
  validators: string[];
36
28
  }, {
37
- type: IsmType;
38
29
  threshold: number;
39
30
  validators: string[];
40
31
  }>, "strip">>;
41
32
  export type MultisigConfigMap = z.infer<typeof MultisigConfigMapSchema>;
42
33
  export declare function readMultisigConfig(filePath: string): ChainMap<MultisigConfig>;
43
34
  export declare function isValidMultisigConfig(config: any): boolean;
44
- export declare function createMultisigConfig({ format, outPath, chainConfigPath, }: {
45
- format: FileFormat;
35
+ export declare function createMultisigConfig({ context, outPath, }: {
36
+ context: CommandContext;
46
37
  outPath: string;
47
- chainConfigPath: string;
48
38
  }): Promise<void>;
49
39
  export {};
50
40
  //# sourceMappingURL=multisig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../../../src/config/multisig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKvE,OAAO,EAAE,UAAU,EAAmC,MAAM,mBAAmB,CAAC;AAIhF,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAM5B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,4BAuBlD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,WAEhD;AAED,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,OAAO,EACP,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,iBAyDA"}
1
+ {"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../../../src/config/multisig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAS,MAAM,oBAAoB,CAAC;AAQrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;aAK5B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,4BAiClD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,WAEhD;AAED,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,iBAsDA"}
@@ -1,15 +1,13 @@
1
- import { input, select } from '@inquirer/prompts';
1
+ import { confirm, input } from '@inquirer/prompts';
2
2
  import { z } from 'zod';
3
- import { IsmType } from '@hyperlane-xyz/sdk';
4
- import { objMap } from '@hyperlane-xyz/utils';
5
- import { errorRed, log, logBlue, logGreen } from '../../logger.js';
3
+ import { ZHash } from '@hyperlane-xyz/sdk';
4
+ import { isValidAddress, normalizeAddressEvm, objMap, } from '@hyperlane-xyz/utils';
5
+ import { errorRed, log, logBlue, logGreen } from '../logger.js';
6
6
  import { runMultiChainSelectionStep } from '../utils/chains.js';
7
7
  import { mergeYamlOrJson, readYamlOrJson } from '../utils/files.js';
8
- import { readChainConfigsIfExists } from './chain.js';
9
8
  const MultisigConfigMapSchema = z.object({}).catchall(z.object({
10
- type: z.nativeEnum(IsmType),
11
9
  threshold: z.number(),
12
- validators: z.array(z.string()),
10
+ validators: z.array(ZHash),
13
11
  }));
14
12
  export function readMultisigConfig(filePath) {
15
13
  const config = readYamlOrJson(filePath);
@@ -21,21 +19,34 @@ export function readMultisigConfig(filePath) {
21
19
  throw new Error(`Invalid multisig config: ${firstIssue.path} => ${firstIssue.message}`);
22
20
  }
23
21
  const parsedConfig = result.data;
24
- const formattedConfig = objMap(parsedConfig, (_, config) => ({
25
- type: config.type,
26
- threshold: config.threshold,
27
- validators: config.validators,
28
- }));
22
+ const formattedConfig = objMap(parsedConfig, (_, config) => {
23
+ if (config.threshold > config.validators.length)
24
+ throw new Error('Threshold cannot be greater than number of validators');
25
+ if (config.threshold < 1)
26
+ throw new Error('Threshold must be greater than 0');
27
+ const validators = [];
28
+ for (const v of config.validators) {
29
+ if (isValidAddress(v))
30
+ validators.push(normalizeAddressEvm(v));
31
+ else
32
+ throw new Error(`Invalid address ${v}`);
33
+ }
34
+ return {
35
+ threshold: config.threshold,
36
+ validators: validators,
37
+ };
38
+ });
29
39
  logGreen(`All multisig configs in ${filePath} are valid`);
30
40
  return formattedConfig;
31
41
  }
32
42
  export function isValidMultisigConfig(config) {
33
43
  return MultisigConfigMapSchema.safeParse(config).success;
34
44
  }
35
- export async function createMultisigConfig({ format, outPath, chainConfigPath, }) {
45
+ export async function createMultisigConfig({ context, outPath, }) {
36
46
  logBlue('Creating a new multisig config');
37
- const customChains = readChainConfigsIfExists(chainConfigPath);
38
- const chains = await runMultiChainSelectionStep(customChains);
47
+ log('Select your own chain below to run your own validators. If you want to reuse existing Hyperlane validators instead of running your own, do not select additional mainnet or testnet chains.');
48
+ const chains = await runMultiChainSelectionStep(context.chainMetadata);
49
+ const chainAddresses = await context.registry.getAddresses();
39
50
  const result = {};
40
51
  let lastConfig = undefined;
41
52
  const repeat = false;
@@ -45,17 +56,13 @@ export async function createMultisigConfig({ format, outPath, chainConfigPath, }
45
56
  result[chain] = lastConfig;
46
57
  continue;
47
58
  }
48
- // TODO consider using default and not offering options here
49
- const moduleType = await select({
50
- message: 'Select multisig type',
51
- choices: [
52
- // { value: 'routing, name: 'routing' }, // TODO add support
53
- // { value: 'aggregation, name: 'aggregation' }, // TODO add support
54
- { value: IsmType.MERKLE_ROOT_MULTISIG, name: 'merkle root multisig' },
55
- { value: IsmType.MESSAGE_ID_MULTISIG, name: 'message id multisig' },
56
- ],
57
- pageSize: 5,
58
- });
59
+ if (Object.keys(chainAddresses).includes(chain)) {
60
+ const reuseCoreConfig = await confirm({
61
+ message: 'Use existing Hyperlane validators for this chain?',
62
+ });
63
+ if (reuseCoreConfig)
64
+ continue;
65
+ }
59
66
  const thresholdInput = await input({
60
67
  message: 'Enter threshold of signers (number)',
61
68
  });
@@ -65,7 +72,6 @@ export async function createMultisigConfig({ format, outPath, chainConfigPath, }
65
72
  });
66
73
  const validators = validatorsInput.split(',').map((v) => v.trim());
67
74
  lastConfig = {
68
- type: moduleType,
69
75
  threshold,
70
76
  validators,
71
77
  };
@@ -77,10 +83,10 @@ export async function createMultisigConfig({ format, outPath, chainConfigPath, }
77
83
  }
78
84
  if (isValidMultisigConfig(result)) {
79
85
  logGreen(`Multisig config is valid, writing to file ${outPath}`);
80
- mergeYamlOrJson(outPath, result, format);
86
+ mergeYamlOrJson(outPath, result);
81
87
  }
82
88
  else {
83
- errorRed(`Multisig config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/multisig-ism.yaml for an example`);
89
+ errorRed(`Multisig config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/ism.yaml for an example`);
84
90
  throw new Error('Invalid multisig config');
85
91
  }
86
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"multisig.js","sourceRoot":"","sources":["../../../src/config/multisig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multisig.js","sourceRoot":"","sources":["../../../src/config/multisig.ts"],"names":[],"mappings":"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"}
@@ -1,183 +1,10 @@
1
- import { z } from 'zod';
2
- import { TokenType } from '@hyperlane-xyz/sdk';
3
- import { FileFormat } from '../utils/files.js';
4
- export declare const WarpRouteConfigSchema: z.ZodObject<{
5
- base: z.ZodObject<{
6
- mailbox: z.ZodOptional<z.ZodString>;
7
- interchainGasPaymaster: z.ZodOptional<z.ZodString>;
8
- interchainSecurityModule: z.ZodOptional<z.ZodString>;
9
- foreignDeployment: z.ZodOptional<z.ZodString>;
10
- type: z.ZodUnion<[z.ZodLiteral<TokenType.native>, z.ZodLiteral<TokenType.collateral>]>;
11
- chainName: z.ZodString;
12
- address: z.ZodOptional<z.ZodString>;
13
- isNft: z.ZodOptional<z.ZodBoolean>;
14
- name: z.ZodOptional<z.ZodString>;
15
- symbol: z.ZodOptional<z.ZodString>;
16
- decimals: z.ZodOptional<z.ZodNumber>;
17
- }, "strip", z.ZodTypeAny, {
18
- type: TokenType.collateral | TokenType.native;
19
- chainName: string;
20
- mailbox?: string | undefined;
21
- interchainGasPaymaster?: string | undefined;
22
- interchainSecurityModule?: string | undefined;
23
- foreignDeployment?: string | undefined;
24
- address?: string | undefined;
25
- isNft?: boolean | undefined;
26
- name?: string | undefined;
27
- symbol?: string | undefined;
28
- decimals?: number | undefined;
29
- }, {
30
- type: TokenType.collateral | TokenType.native;
31
- chainName: string;
32
- mailbox?: string | undefined;
33
- interchainGasPaymaster?: string | undefined;
34
- interchainSecurityModule?: string | undefined;
35
- foreignDeployment?: string | undefined;
36
- address?: string | undefined;
37
- isNft?: boolean | undefined;
38
- name?: string | undefined;
39
- symbol?: string | undefined;
40
- decimals?: number | undefined;
41
- }>;
42
- synthetics: z.ZodArray<z.ZodObject<{
43
- mailbox: z.ZodOptional<z.ZodString>;
44
- interchainGasPaymaster: z.ZodOptional<z.ZodString>;
45
- interchainSecurityModule: z.ZodOptional<z.ZodString>;
46
- foreignDeployment: z.ZodOptional<z.ZodString>;
47
- chainName: z.ZodString;
48
- name: z.ZodOptional<z.ZodString>;
49
- symbol: z.ZodOptional<z.ZodString>;
50
- totalSupply: z.ZodOptional<z.ZodNumber>;
51
- }, "strip", z.ZodTypeAny, {
52
- chainName: string;
53
- mailbox?: string | undefined;
54
- interchainGasPaymaster?: string | undefined;
55
- interchainSecurityModule?: string | undefined;
56
- foreignDeployment?: string | undefined;
57
- name?: string | undefined;
58
- symbol?: string | undefined;
59
- totalSupply?: number | undefined;
60
- }, {
61
- chainName: string;
62
- mailbox?: string | undefined;
63
- interchainGasPaymaster?: string | undefined;
64
- interchainSecurityModule?: string | undefined;
65
- foreignDeployment?: string | undefined;
66
- name?: string | undefined;
67
- symbol?: string | undefined;
68
- totalSupply?: number | undefined;
69
- }>, "atleastone">;
70
- }, "strip", z.ZodTypeAny, {
71
- base: {
72
- type: TokenType.collateral | TokenType.native;
73
- chainName: string;
74
- mailbox?: string | undefined;
75
- interchainGasPaymaster?: string | undefined;
76
- interchainSecurityModule?: string | undefined;
77
- foreignDeployment?: string | undefined;
78
- address?: string | undefined;
79
- isNft?: boolean | undefined;
80
- name?: string | undefined;
81
- symbol?: string | undefined;
82
- decimals?: number | undefined;
83
- };
84
- synthetics: [{
85
- chainName: string;
86
- mailbox?: string | undefined;
87
- interchainGasPaymaster?: string | undefined;
88
- interchainSecurityModule?: string | undefined;
89
- foreignDeployment?: string | undefined;
90
- name?: string | undefined;
91
- symbol?: string | undefined;
92
- totalSupply?: number | undefined;
93
- }, ...{
94
- chainName: string;
95
- mailbox?: string | undefined;
96
- interchainGasPaymaster?: string | undefined;
97
- interchainSecurityModule?: string | undefined;
98
- foreignDeployment?: string | undefined;
99
- name?: string | undefined;
100
- symbol?: string | undefined;
101
- totalSupply?: number | undefined;
102
- }[]];
103
- }, {
104
- base: {
105
- type: TokenType.collateral | TokenType.native;
106
- chainName: string;
107
- mailbox?: string | undefined;
108
- interchainGasPaymaster?: string | undefined;
109
- interchainSecurityModule?: string | undefined;
110
- foreignDeployment?: string | undefined;
111
- address?: string | undefined;
112
- isNft?: boolean | undefined;
113
- name?: string | undefined;
114
- symbol?: string | undefined;
115
- decimals?: number | undefined;
116
- };
117
- synthetics: [{
118
- chainName: string;
119
- mailbox?: string | undefined;
120
- interchainGasPaymaster?: string | undefined;
121
- interchainSecurityModule?: string | undefined;
122
- foreignDeployment?: string | undefined;
123
- name?: string | undefined;
124
- symbol?: string | undefined;
125
- totalSupply?: number | undefined;
126
- }, ...{
127
- chainName: string;
128
- mailbox?: string | undefined;
129
- interchainGasPaymaster?: string | undefined;
130
- interchainSecurityModule?: string | undefined;
131
- foreignDeployment?: string | undefined;
132
- name?: string | undefined;
133
- symbol?: string | undefined;
134
- totalSupply?: number | undefined;
135
- }[]];
136
- }>;
137
- type InferredType = z.infer<typeof WarpRouteConfigSchema>;
138
- export type WarpRouteConfig = {
139
- base: InferredType['base'];
140
- synthetics: Array<InferredType['synthetics'][0]>;
141
- };
142
- export declare function readWarpRouteConfig(filePath: string): {
143
- base: {
144
- type: TokenType.collateral | TokenType.native;
145
- chainName: string;
146
- mailbox?: string | undefined;
147
- interchainGasPaymaster?: string | undefined;
148
- interchainSecurityModule?: string | undefined;
149
- foreignDeployment?: string | undefined;
150
- address?: string | undefined;
151
- isNft?: boolean | undefined;
152
- name?: string | undefined;
153
- symbol?: string | undefined;
154
- decimals?: number | undefined;
155
- };
156
- synthetics: [{
157
- chainName: string;
158
- mailbox?: string | undefined;
159
- interchainGasPaymaster?: string | undefined;
160
- interchainSecurityModule?: string | undefined;
161
- foreignDeployment?: string | undefined;
162
- name?: string | undefined;
163
- symbol?: string | undefined;
164
- totalSupply?: number | undefined;
165
- }, ...{
166
- chainName: string;
167
- mailbox?: string | undefined;
168
- interchainGasPaymaster?: string | undefined;
169
- interchainSecurityModule?: string | undefined;
170
- foreignDeployment?: string | undefined;
171
- name?: string | undefined;
172
- symbol?: string | undefined;
173
- totalSupply?: number | undefined;
174
- }[]];
175
- };
176
- export declare function isValidWarpRouteConfig(config: any): boolean;
177
- export declare function createWarpConfig({ format, outPath, chainConfigPath, }: {
178
- format: FileFormat;
1
+ import { WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
2
+ import { CommandContext } from '../context/types.js';
3
+ export declare function readWarpRouteDeployConfig(filePath: string): WarpRouteDeployConfig;
4
+ export declare function isValidWarpRouteDeployConfig(config: any): boolean;
5
+ export declare function createWarpRouteDeployConfig({ context, outPath, }: {
6
+ context: CommandContext;
179
7
  outPath: string;
180
- chainConfigPath: string;
181
8
  }): Promise<void>;
182
- export {};
9
+ export declare function readWarpRouteConfig(filePath: string): WarpCoreConfig;
183
10
  //# sourceMappingURL=warp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAO/C,OAAO,EAAE,UAAU,EAAmC,MAAM,mBAAmB,CAAC;AAWhF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBhC,CAAC;AAEH,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,WAEjD;AAED,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,OAAO,EACP,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,iBA+CA"}
1
+ {"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,cAAc,EAEd,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,GACf,qBAAqB,CAKvB;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,GAAG,WAEvD;AAED,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,iBAwEA;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAIpE"}