@hyperlane-xyz/cli 3.1.10 → 3.3.0

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 (102) hide show
  1. package/dist/cli.js +6 -5
  2. package/dist/cli.js.map +1 -1
  3. package/dist/src/commands/chains.js.map +1 -1
  4. package/dist/src/commands/config.d.ts.map +1 -1
  5. package/dist/src/commands/config.js +44 -14
  6. package/dist/src/commands/config.js.map +1 -1
  7. package/dist/src/commands/deploy.js +11 -8
  8. package/dist/src/commands/deploy.js.map +1 -1
  9. package/dist/src/commands/options.d.ts.map +1 -1
  10. package/dist/src/commands/options.js +1 -2
  11. package/dist/src/commands/options.js.map +1 -1
  12. package/dist/src/commands/send.js +2 -5
  13. package/dist/src/commands/send.js.map +1 -1
  14. package/dist/src/commands/status.d.ts.map +1 -1
  15. package/dist/src/commands/status.js +0 -2
  16. package/dist/src/commands/status.js.map +1 -1
  17. package/dist/src/config/artifacts.d.ts +2 -1
  18. package/dist/src/config/artifacts.d.ts.map +1 -1
  19. package/dist/src/config/artifacts.js +24 -2
  20. package/dist/src/config/artifacts.js.map +1 -1
  21. package/dist/src/config/chain.d.ts +1 -1
  22. package/dist/src/config/chain.d.ts.map +1 -1
  23. package/dist/src/config/chain.js +1 -1
  24. package/dist/src/config/chain.js.map +1 -1
  25. package/dist/src/config/hooks.d.ts +89 -211
  26. package/dist/src/config/hooks.d.ts.map +1 -1
  27. package/dist/src/config/hooks.js +221 -85
  28. package/dist/src/config/hooks.js.map +1 -1
  29. package/dist/src/config/ism.d.ts +57 -0
  30. package/dist/src/config/ism.d.ts.map +1 -0
  31. package/dist/src/config/ism.js +199 -0
  32. package/dist/src/config/ism.js.map +1 -0
  33. package/dist/src/config/multisig.d.ts +1 -10
  34. package/dist/src/config/multisig.d.ts.map +1 -1
  35. package/dist/src/config/multisig.js +29 -22
  36. package/dist/src/config/multisig.js.map +1 -1
  37. package/dist/src/config/warp.js.map +1 -1
  38. package/dist/src/context.d.ts +32 -384
  39. package/dist/src/context.d.ts.map +1 -1
  40. package/dist/src/context.js +32 -11
  41. package/dist/src/context.js.map +1 -1
  42. package/dist/src/context.test.d.ts +2 -0
  43. package/dist/src/context.test.d.ts.map +1 -0
  44. package/dist/src/context.test.js +21 -0
  45. package/dist/src/context.test.js.map +1 -0
  46. package/dist/src/deploy/TestRecipientDeployer.js.map +1 -1
  47. package/dist/src/deploy/agent.d.ts +3 -2
  48. package/dist/src/deploy/agent.d.ts.map +1 -1
  49. package/dist/src/deploy/agent.js +10 -22
  50. package/dist/src/deploy/agent.js.map +1 -1
  51. package/dist/src/deploy/core.d.ts +3 -1
  52. package/dist/src/deploy/core.d.ts.map +1 -1
  53. package/dist/src/deploy/core.js +85 -96
  54. package/dist/src/deploy/core.js.map +1 -1
  55. package/dist/src/deploy/utils.d.ts +3 -1
  56. package/dist/src/deploy/utils.d.ts.map +1 -1
  57. package/dist/src/deploy/utils.js +9 -0
  58. package/dist/src/deploy/utils.js.map +1 -1
  59. package/dist/src/deploy/warp.d.ts.map +1 -1
  60. package/dist/src/deploy/warp.js +9 -9
  61. package/dist/src/deploy/warp.js.map +1 -1
  62. package/dist/src/send/message.d.ts +3 -3
  63. package/dist/src/send/message.d.ts.map +1 -1
  64. package/dist/src/send/message.js +13 -8
  65. package/dist/src/send/message.js.map +1 -1
  66. package/dist/src/send/transfer.d.ts +4 -4
  67. package/dist/src/send/transfer.d.ts.map +1 -1
  68. package/dist/src/send/transfer.js +22 -11
  69. package/dist/src/send/transfer.js.map +1 -1
  70. package/dist/src/status/message.d.ts +3 -3
  71. package/dist/src/status/message.d.ts.map +1 -1
  72. package/dist/src/status/message.js +14 -5
  73. package/dist/src/status/message.js.map +1 -1
  74. package/dist/src/tests/hooks.test.d.ts +2 -0
  75. package/dist/src/tests/hooks.test.d.ts.map +1 -0
  76. package/dist/src/tests/hooks.test.js +83 -0
  77. package/dist/src/tests/hooks.test.js.map +1 -0
  78. package/dist/src/tests/ism.test.d.ts +2 -0
  79. package/dist/src/tests/ism.test.d.ts.map +1 -0
  80. package/dist/src/tests/ism.test.js +76 -0
  81. package/dist/src/tests/ism.test.js.map +1 -0
  82. package/dist/src/tests/multisig.test.d.ts +2 -0
  83. package/dist/src/tests/multisig.test.d.ts.map +1 -0
  84. package/dist/src/tests/multisig.test.js +34 -0
  85. package/dist/src/tests/multisig.test.js.map +1 -0
  86. package/dist/src/utils/balances.js.map +1 -1
  87. package/dist/src/utils/chains.d.ts +1 -1
  88. package/dist/src/utils/chains.d.ts.map +1 -1
  89. package/dist/src/utils/chains.js +5 -4
  90. package/dist/src/utils/chains.js.map +1 -1
  91. package/dist/src/utils/files.d.ts.map +1 -1
  92. package/dist/src/utils/files.js +5 -0
  93. package/dist/src/utils/files.js.map +1 -1
  94. package/dist/src/version.d.ts +2 -0
  95. package/dist/src/version.d.ts.map +1 -0
  96. package/dist/src/version.js +2 -0
  97. package/dist/src/version.js.map +1 -0
  98. package/examples/hooks.yaml +66 -0
  99. package/examples/ism-advanced.yaml +33 -0
  100. package/examples/{multisig-ism.yaml → ism.yaml} +0 -8
  101. package/package.json +9 -6
  102. package/examples/hook-config.yaml +0 -18
@@ -1,8 +1,8 @@
1
1
  import { confirm, input, select } from '@inquirer/prompts';
2
- import { BigNumber } from 'bignumber.js';
2
+ import { BigNumber as BigNumberJs } from 'bignumber.js';
3
3
  import { ethers } from 'ethers';
4
4
  import { z } from 'zod';
5
- import { GasOracleContractType, HookType, defaultMultisigConfigs, multisigIsmVerificationCost, } from '@hyperlane-xyz/sdk';
5
+ import { GasOracleContractType, HookType, chainMetadata, defaultMultisigConfigs, multisigIsmVerificationCost, } from '@hyperlane-xyz/sdk';
6
6
  import { normalizeAddressEvm, objMap, toWei, } from '@hyperlane-xyz/utils';
7
7
  import { errorRed, log, logBlue, logGreen, logRed } from '../../logger.js';
8
8
  import { runMultiChainSelectionStep } from '../utils/chains.js';
@@ -18,16 +18,39 @@ const ProtocolFeeSchema = z.object({
18
18
  const MerkleTreeSchema = z.object({
19
19
  type: z.literal(HookType.MERKLE_TREE),
20
20
  });
21
- const HookSchema = z.union([ProtocolFeeSchema, MerkleTreeSchema]);
22
- const ConfigSchema = z.object({
23
- required: HookSchema,
24
- default: HookSchema,
21
+ const IGPSchema = z.object({
22
+ type: z.literal(HookType.INTERCHAIN_GAS_PAYMASTER),
23
+ owner: z.string(),
24
+ beneficiary: z.string(),
25
+ overhead: z.record(z.number()),
26
+ gasOracleType: z.record(z.literal(GasOracleContractType.StorageGasOracle)),
27
+ oracleKey: z.string(),
25
28
  });
26
- const HookConfigMapSchema = z.object({}).catchall(ConfigSchema);
29
+ const RoutingConfigSchema = z.lazy(() => z.object({
30
+ type: z.literal(HookType.ROUTING),
31
+ owner: z.string(),
32
+ domains: z.record(HookConfigSchema),
33
+ }));
34
+ const AggregationConfigSchema = z.lazy(() => z.object({
35
+ type: z.literal(HookType.AGGREGATION),
36
+ hooks: z.array(HookConfigSchema),
37
+ }));
38
+ const HookConfigSchema = z.union([
39
+ ProtocolFeeSchema,
40
+ MerkleTreeSchema,
41
+ IGPSchema,
42
+ RoutingConfigSchema,
43
+ AggregationConfigSchema,
44
+ ]);
45
+ const HooksConfigSchema = z.object({
46
+ required: HookConfigSchema,
47
+ default: HookConfigSchema,
48
+ });
49
+ const HooksConfigMapSchema = z.record(HooksConfigSchema);
27
50
  export function isValidHookConfigMap(config) {
28
- return HookConfigMapSchema.safeParse(config).success;
51
+ return HooksConfigMapSchema.safeParse(config).success;
29
52
  }
30
- export function presetHookConfigs(owner, local, destinationChains, ismConfig) {
53
+ export function presetHookConfigs(owner, local, destinationChains, multisigConfig) {
31
54
  const gasOracleType = destinationChains.reduce((acc, chain) => {
32
55
  acc[chain] = GasOracleContractType.StorageGasOracle;
33
56
  return acc;
@@ -35,16 +58,19 @@ export function presetHookConfigs(owner, local, destinationChains, ismConfig) {
35
58
  const overhead = destinationChains.reduce((acc, chain) => {
36
59
  let validatorThreshold;
37
60
  let validatorCount;
38
- if (ismConfig) {
39
- validatorThreshold = ismConfig.threshold;
40
- validatorCount = ismConfig.validators.length;
61
+ if (multisigConfig) {
62
+ validatorThreshold = multisigConfig.threshold;
63
+ validatorCount = multisigConfig.validators.length;
41
64
  }
42
65
  else if (local in defaultMultisigConfigs) {
43
66
  validatorThreshold = defaultMultisigConfigs[local].threshold;
44
67
  validatorCount = defaultMultisigConfigs[local].validators.length;
45
68
  }
46
69
  else {
47
- throw new Error('Cannot estimate gas overhead for IGP hook');
70
+ // default values
71
+ // fix here: https://github.com/hyperlane-xyz/issues/issues/773
72
+ validatorThreshold = 2;
73
+ validatorCount = 3;
48
74
  }
49
75
  acc[chain] = multisigIsmVerificationCost(validatorThreshold, validatorCount);
50
76
  return acc;
@@ -53,8 +79,8 @@ export function presetHookConfigs(owner, local, destinationChains, ismConfig) {
53
79
  return {
54
80
  required: {
55
81
  type: HookType.PROTOCOL_FEE,
56
- maxProtocolFee: ethers.utils.parseUnits('1', 'gwei'),
57
- protocolFee: ethers.utils.parseUnits('0', 'wei'),
82
+ maxProtocolFee: ethers.utils.parseUnits('1', 'gwei').toString(),
83
+ protocolFee: ethers.utils.parseUnits('0', 'wei').toString(),
58
84
  beneficiary: owner,
59
85
  owner: owner,
60
86
  },
@@ -76,27 +102,23 @@ export function presetHookConfigs(owner, local, destinationChains, ismConfig) {
76
102
  },
77
103
  };
78
104
  }
79
- export function readHookConfig(filePath) {
105
+ export function readHooksConfigMap(filePath) {
80
106
  const config = readYamlOrJson(filePath);
81
107
  if (!config) {
82
- logRed(`No multisig config found at ${filePath}`);
108
+ logRed(`No hook config found at ${filePath}`);
83
109
  return;
84
110
  }
85
- const result = HookConfigMapSchema.safeParse(config);
111
+ const result = HooksConfigMapSchema.safeParse(config);
86
112
  if (!result.success) {
87
113
  const firstIssue = result.error.issues[0];
88
114
  throw new Error(`Invalid hook config: ${firstIssue.path} => ${firstIssue.message}`);
89
115
  }
90
116
  const parsedConfig = result.data;
91
- const defaultHook = objMap(parsedConfig, (_, config) => ({
92
- type: config.default.type,
93
- }));
94
- logGreen(`All multisig configs in ${filePath} are valid`);
95
- return defaultHook;
117
+ const hooks = objMap(parsedConfig, (_, config) => config);
118
+ logGreen(`All hook configs in ${filePath} are valid for ${hooks}`);
119
+ return hooks;
96
120
  }
97
- // TODO: read different hook configs
98
- // export async function readProtocolFeeHookConfig(config: {type: HookType.PROTOCOL_FEE, ...}) {
99
- export async function createHookConfig({ format, outPath, chainConfigPath, }) {
121
+ export async function createHooksConfigMap({ format, outPath, chainConfigPath, }) {
100
122
  logBlue('Creating a new hook config');
101
123
  const customChains = readChainConfigsIfExists(chainConfigPath);
102
124
  const chains = await runMultiChainSelectionStep(customChains);
@@ -104,73 +126,187 @@ export async function createHookConfig({ format, outPath, chainConfigPath, }) {
104
126
  for (const chain of chains) {
105
127
  for (const hookRequirements of ['required', 'default']) {
106
128
  log(`Setting ${hookRequirements} hook for chain ${chain}`);
107
- const hookType = await select({
108
- message: 'Select hook type',
109
- choices: [
110
- { value: 'merkle_tree', name: 'MerkleTreeHook' },
111
- { value: 'protocol_fee', name: 'StaticProtocolFee' },
112
- ],
113
- pageSize: 5,
114
- });
115
- if (hookType === 'merkle_tree') {
116
- result[chain] = {
117
- ...result[chain],
118
- [hookRequirements]: { type: HookType.MERKLE_TREE },
119
- };
120
- }
121
- else if (hookType === 'protocol_fee') {
122
- const owner = await input({
123
- message: 'Enter owner address',
124
- });
125
- const ownerAddress = normalizeAddressEvm(owner);
126
- let beneficiary;
127
- let sameAsOwner = false;
128
- sameAsOwner = await confirm({
129
- message: 'Use this same address for the beneficiary?',
130
- });
131
- if (sameAsOwner) {
132
- beneficiary = ownerAddress;
133
- }
134
- else {
135
- beneficiary = await input({
136
- message: 'Enter beneficiary address',
137
- });
138
- }
139
- const beneficiaryAddress = normalizeAddressEvm(beneficiary);
140
- // TODO: input in gwei, wei, etc
141
- const maxProtocolFee = toWei(await input({
142
- message: 'Enter max protocol fee in (e.g. 1.0)',
143
- }));
144
- const protocolFee = toWei(await input({
145
- message: 'Enter protocol fee (e.g. 1.0)',
146
- }));
147
- if (BigNumber(protocolFee).gt(maxProtocolFee)) {
148
- errorRed('Protocol fee cannot be greater than max protocol fee');
149
- throw new Error('Invalid protocol fee');
150
- }
151
- result[chain] = {
152
- ...result[chain],
153
- [hookRequirements]: {
154
- type: HookType.PROTOCOL_FEE,
155
- maxProtocolFee: maxProtocolFee.toString(),
156
- protocolFee: protocolFee.toString(),
157
- beneficiary: beneficiaryAddress,
158
- owner: ownerAddress,
159
- },
160
- };
161
- }
162
- else {
163
- throw new Error(`Invalid hook type: ${hookType}}`);
164
- }
129
+ const remotes = chains.filter((c) => c !== chain);
130
+ result[chain] = {
131
+ ...result[chain],
132
+ [hookRequirements]: await createHookConfig(chain, remotes),
133
+ };
165
134
  }
166
135
  if (isValidHookConfigMap(result)) {
167
136
  logGreen(`Hook config is valid, writing to file ${outPath}`);
168
137
  mergeYamlOrJson(outPath, result, format);
169
138
  }
170
139
  else {
171
- errorRed(`Hook config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/hook-config.yaml for an example`);
140
+ errorRed(`Hook config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/hooks.yaml for an example`);
172
141
  throw new Error('Invalid hook config');
173
142
  }
174
143
  }
175
144
  }
145
+ export async function createHookConfig(chain, remotes) {
146
+ let lastConfig;
147
+ const hookType = await select({
148
+ message: 'Select hook type',
149
+ choices: [
150
+ {
151
+ value: HookType.MERKLE_TREE,
152
+ name: HookType.MERKLE_TREE,
153
+ description: 'Add messages to the incremental merkle tree on origin chain (needed for the merkleRootMultisigIsm on the remote chain)',
154
+ },
155
+ {
156
+ value: HookType.PROTOCOL_FEE,
157
+ name: HookType.PROTOCOL_FEE,
158
+ description: 'Charge fees for each message dispatch from this chain',
159
+ },
160
+ {
161
+ value: HookType.INTERCHAIN_GAS_PAYMASTER,
162
+ name: HookType.INTERCHAIN_GAS_PAYMASTER,
163
+ description: 'Allow for payments for expected gas to be paid by the relayer while delivering on remote chain',
164
+ },
165
+ {
166
+ value: HookType.AGGREGATION,
167
+ name: HookType.AGGREGATION,
168
+ description: 'Aggregate multiple hooks into a single hook (e.g. merkle tree + IGP) which will be called in sequence',
169
+ },
170
+ {
171
+ value: HookType.ROUTING,
172
+ name: HookType.ROUTING,
173
+ description: 'Each destination domain can have its own hook configured via DomainRoutingHook',
174
+ },
175
+ ],
176
+ pageSize: 10,
177
+ });
178
+ if (hookType === HookType.MERKLE_TREE) {
179
+ lastConfig = { type: HookType.MERKLE_TREE };
180
+ }
181
+ else if (hookType === HookType.PROTOCOL_FEE) {
182
+ lastConfig = await createProtocolFeeConfig(chain);
183
+ }
184
+ else if (hookType === HookType.INTERCHAIN_GAS_PAYMASTER) {
185
+ lastConfig = await createIGPConfig(remotes);
186
+ }
187
+ else if (hookType === HookType.AGGREGATION) {
188
+ lastConfig = await createAggregationConfig(chain, remotes);
189
+ }
190
+ else if (hookType === HookType.ROUTING) {
191
+ lastConfig = await createRoutingConfig(chain, remotes);
192
+ }
193
+ else {
194
+ throw new Error(`Invalid hook type: ${hookType}`);
195
+ }
196
+ return lastConfig;
197
+ }
198
+ export async function createProtocolFeeConfig(chain) {
199
+ const owner = await input({
200
+ message: 'Enter owner address',
201
+ });
202
+ const ownerAddress = normalizeAddressEvm(owner);
203
+ let beneficiary;
204
+ let sameAsOwner = false;
205
+ sameAsOwner = await confirm({
206
+ message: 'Use this same address for the beneficiary?',
207
+ });
208
+ if (sameAsOwner) {
209
+ beneficiary = ownerAddress;
210
+ }
211
+ else {
212
+ beneficiary = await input({
213
+ message: 'Enter beneficiary address',
214
+ });
215
+ }
216
+ const beneficiaryAddress = normalizeAddressEvm(beneficiary);
217
+ // TODO: input in gwei, wei, etc
218
+ const maxProtocolFee = toWei(await input({
219
+ message: `Enter max protocol fee ${nativeTokenAndDecimals(chain)} e.g. 1.0)`,
220
+ }));
221
+ const protocolFee = toWei(await input({
222
+ message: `Enter protocol fee in ${nativeTokenAndDecimals(chain)} e.g. 0.01)`,
223
+ }));
224
+ if (BigNumberJs(protocolFee).gt(maxProtocolFee)) {
225
+ errorRed('Protocol fee cannot be greater than max protocol fee');
226
+ throw new Error('Invalid protocol fee');
227
+ }
228
+ return {
229
+ type: HookType.PROTOCOL_FEE,
230
+ maxProtocolFee: maxProtocolFee.toString(),
231
+ protocolFee: protocolFee.toString(),
232
+ beneficiary: beneficiaryAddress,
233
+ owner: ownerAddress,
234
+ };
235
+ }
236
+ export async function createIGPConfig(remotes) {
237
+ const owner = await input({
238
+ message: 'Enter owner address',
239
+ });
240
+ const ownerAddress = normalizeAddressEvm(owner);
241
+ let beneficiary, oracleKey;
242
+ let sameAsOwner = false;
243
+ sameAsOwner = await confirm({
244
+ message: 'Use this same address for the beneficiary and gasOracleKey?',
245
+ });
246
+ if (sameAsOwner) {
247
+ beneficiary = ownerAddress;
248
+ oracleKey = ownerAddress;
249
+ }
250
+ else {
251
+ beneficiary = await input({
252
+ message: 'Enter beneficiary address',
253
+ });
254
+ oracleKey = await input({
255
+ message: 'Enter gasOracleKey address',
256
+ });
257
+ }
258
+ const beneficiaryAddress = normalizeAddressEvm(beneficiary);
259
+ const oracleKeyAddress = normalizeAddressEvm(oracleKey);
260
+ const overheads = {};
261
+ for (const chain of remotes) {
262
+ const overhead = parseInt(await input({
263
+ message: `Enter overhead for ${chain} (eg 75000)`,
264
+ }));
265
+ overheads[chain] = overhead;
266
+ }
267
+ return {
268
+ type: HookType.INTERCHAIN_GAS_PAYMASTER,
269
+ beneficiary: beneficiaryAddress,
270
+ owner: ownerAddress,
271
+ oracleKey: oracleKeyAddress,
272
+ overhead: overheads,
273
+ gasOracleType: objMap(overheads, () => GasOracleContractType.StorageGasOracle),
274
+ };
275
+ }
276
+ export async function createAggregationConfig(chain, remotes) {
277
+ const hooksNum = parseInt(await input({
278
+ message: 'Enter the number of hooks to aggregate (number)',
279
+ }), 10);
280
+ const hooks = [];
281
+ for (let i = 0; i < hooksNum; i++) {
282
+ logBlue(`Creating hook ${i + 1} of ${hooksNum} ...`);
283
+ hooks.push(await createHookConfig(chain, remotes));
284
+ }
285
+ return {
286
+ type: HookType.AGGREGATION,
287
+ hooks,
288
+ };
289
+ }
290
+ export async function createRoutingConfig(origin, remotes) {
291
+ const owner = await input({
292
+ message: 'Enter owner address',
293
+ });
294
+ const ownerAddress = owner;
295
+ const domainsMap = {};
296
+ for (const chain of remotes) {
297
+ await confirm({
298
+ message: `You are about to configure hook for remote chain ${chain}. Continue?`,
299
+ });
300
+ const config = await createHookConfig(origin, remotes);
301
+ domainsMap[chain] = config;
302
+ }
303
+ return {
304
+ type: HookType.ROUTING,
305
+ owner: ownerAddress,
306
+ domains: domainsMap,
307
+ };
308
+ }
309
+ function nativeTokenAndDecimals(chain) {
310
+ return `10^${chainMetadata[chain].nativeToken?.decimals ?? '18'} which you cannot exceed (in ${chainMetadata[chain].nativeToken?.symbol ?? 'eth'}`;
311
+ }
176
312
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/config/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAGL,qBAAqB,EAErB,QAAQ,EAKR,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,mBAAmB,EACnB,MAAM,EACN,KAAK,GACN,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAc,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAElE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,UAAU;CACpB,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAGhE,MAAM,UAAU,oBAAoB,CAAC,MAAW;IAC9C,OAAO,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAc,EACd,KAAgB,EAChB,iBAA8B,EAC9B,SAA6B;IAE7B,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAE5C,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACf,GAAG,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;QACpD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACzE,IAAI,kBAA0B,CAAC;QAC/B,IAAI,cAAsB,CAAC;QAC3B,IAAI,SAAS,EAAE;YACb,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;YACzC,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;SAC9C;aAAM,IAAI,KAAK,IAAI,sBAAsB,EAAE;YAC1C,kBAAkB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YAC7D,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;SAClE;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC9D;QACD,GAAG,CAAC,KAAK,CAAC,GAAG,2BAA2B,CACtC,kBAAkB,EAClB,cAAc,CACf,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,uDAAuD;IACvD,OAAO;QACL,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ,CAAC,YAAY;YAC3B,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;YACpD,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;YAChD,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,KAAK;SACY;QAC1B,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ,CAAC,WAAW;YAC1B,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,QAAQ,CAAC,WAAW;iBACH;gBACzB;oBACE,IAAI,EAAE,QAAQ,CAAC,wBAAwB;oBACvC,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,KAAK;oBAClB,aAAa;oBACb,QAAQ;oBACR,SAAS,EAAE,KAAK;iBACA;aACnB;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO;KACR;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,wBAAwB,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,OAAO,EAAE,CACnE,CAAC;KACH;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;IACjC,MAAM,WAAW,GAAyB,MAAM,CAC9C,YAAY,EACZ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACZ,CAAC;QACC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;KACX,CAAA,CACnB,CAAC;IACF,QAAQ,CAAC,2BAA2B,QAAQ,YAAY,CAAC,CAAC;IAC1D,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,oCAAoC;AACpC,gGAAgG;AAEhG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,MAAM,EACN,OAAO,EACP,eAAe,GAKhB;IACC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,KAAK,MAAM,gBAAgB,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;YACtD,GAAG,CAAC,WAAW,gBAAgB,mBAAmB,KAAK,EAAE,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;gBAC5B,OAAO,EAAE,kBAAkB;gBAC3B,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE;oBAChD,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,mBAAmB,EAAE;iBACrD;gBACD,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,aAAa,EAAE;gBAC9B,MAAM,CAAC,KAAK,CAAC,GAAG;oBACd,GAAG,MAAM,CAAC,KAAK,CAAC;oBAChB,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE;iBACnD,CAAC;aACH;iBAAM,IAAI,QAAQ,KAAK,cAAc,EAAE;gBACtC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC;oBACxB,OAAO,EAAE,qBAAqB;iBAC/B,CAAC,CAAC;gBACH,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,WAAW,CAAC;gBAChB,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,WAAW,GAAG,MAAM,OAAO,CAAC;oBAC1B,OAAO,EAAE,4CAA4C;iBACtD,CAAC,CAAC;gBACH,IAAI,WAAW,EAAE;oBACf,WAAW,GAAG,YAAY,CAAC;iBAC5B;qBAAM;oBACL,WAAW,GAAG,MAAM,KAAK,CAAC;wBACxB,OAAO,EAAE,2BAA2B;qBACrC,CAAC,CAAC;iBACJ;gBACD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBAC5D,gCAAgC;gBAChC,MAAM,cAAc,GAAG,KAAK,CAC1B,MAAM,KAAK,CAAC;oBACV,OAAO,EAAE,sCAAsC;iBAChD,CAAC,CACH,CAAC;gBACF,MAAM,WAAW,GAAG,KAAK,CACvB,MAAM,KAAK,CAAC;oBACV,OAAO,EAAE,+BAA+B;iBACzC,CAAC,CACH,CAAC;gBACF,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE;oBAC7C,QAAQ,CAAC,sDAAsD,CAAC,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;iBACzC;gBAED,MAAM,CAAC,KAAK,CAAC,GAAG;oBACd,GAAG,MAAM,CAAC,KAAK,CAAC;oBAChB,CAAC,gBAAgB,CAAC,EAAE;wBAClB,IAAI,EAAE,QAAQ,CAAC,YAAY;wBAC3B,cAAc,EAAE,cAAc,CAAC,QAAQ,EAAE;wBACzC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;wBACnC,WAAW,EAAE,kBAAkB;wBAC/B,KAAK,EAAE,YAAY;qBACpB;iBACF,CAAC;aACH;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,GAAG,CAAC,CAAC;aACpD;SACF;QACD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;YAChC,QAAQ,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;YAC7D,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1C;aAAM;YACL,QAAQ,CACN,0JAA0J,CAC3J,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/config/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ import { ChainName, IsmType } from '@hyperlane-xyz/sdk';
3
+ import { FileFormat } from '../utils/files.js';
4
+ declare const IsmConfigSchema: z.ZodUnion<[z.ZodObject<{
5
+ type: z.ZodUnion<[z.ZodLiteral<IsmType.MERKLE_ROOT_MULTISIG>, z.ZodLiteral<IsmType.MESSAGE_ID_MULTISIG>]>;
6
+ threshold: z.ZodNumber;
7
+ validators: z.ZodArray<z.ZodString, "many">;
8
+ }, "strip", z.ZodTypeAny, {
9
+ type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
10
+ threshold: number;
11
+ validators: string[];
12
+ }, {
13
+ type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
14
+ threshold: number;
15
+ validators: string[];
16
+ }>, z.ZodType<any, z.ZodTypeDef, any>, z.ZodType<any, z.ZodTypeDef, any>, z.ZodObject<{
17
+ type: z.ZodLiteral<IsmType.TEST_ISM>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ type: IsmType.TEST_ISM;
20
+ }, {
21
+ type: IsmType.TEST_ISM;
22
+ }>]>;
23
+ declare const IsmConfigMapSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
24
+ type: z.ZodUnion<[z.ZodLiteral<IsmType.MERKLE_ROOT_MULTISIG>, z.ZodLiteral<IsmType.MESSAGE_ID_MULTISIG>]>;
25
+ threshold: z.ZodNumber;
26
+ validators: z.ZodArray<z.ZodString, "many">;
27
+ }, "strip", z.ZodTypeAny, {
28
+ type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
29
+ threshold: number;
30
+ validators: string[];
31
+ }, {
32
+ type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
33
+ threshold: number;
34
+ validators: string[];
35
+ }>, z.ZodType<any, z.ZodTypeDef, any>, z.ZodType<any, z.ZodTypeDef, any>, z.ZodObject<{
36
+ type: z.ZodLiteral<IsmType.TEST_ISM>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ type: IsmType.TEST_ISM;
39
+ }, {
40
+ type: IsmType.TEST_ISM;
41
+ }>]>>, Record<string, any>, Record<string, any>>;
42
+ export type ZodIsmConfig = z.infer<typeof IsmConfigSchema>;
43
+ export type ZodIsmConfigMap = z.infer<typeof IsmConfigMapSchema>;
44
+ export declare function parseIsmConfig(filePath: string): z.SafeParseReturnType<Record<string, any>, Record<string, any>>;
45
+ export declare function readIsmConfig(filePath: string): Record<string, any>;
46
+ export declare function isValildIsmConfig(config: any): boolean;
47
+ export declare function createIsmConfigMap({ format, outPath, chainConfigPath, }: {
48
+ format: FileFormat;
49
+ outPath: string;
50
+ chainConfigPath: string;
51
+ }): Promise<void>;
52
+ export declare function createIsmConfig(remote: ChainName, origins: ChainName[]): Promise<ZodIsmConfig>;
53
+ export declare function createMultisigConfig(type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG): Promise<ZodIsmConfig>;
54
+ export declare function createAggregationConfig(remote: ChainName, chains: ChainName[]): Promise<ZodIsmConfig>;
55
+ export declare function createRoutingConfig(remote: ChainName, chains: ChainName[]): Promise<ZodIsmConfig>;
56
+ export {};
57
+ //# sourceMappingURL=ism.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism.d.ts","sourceRoot":"","sources":["../../../src/config/ism.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAY,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIlE,OAAO,EAAE,UAAU,EAAmC,MAAM,mBAAmB,CAAC;AA2ChF,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;IAKnB,CAAC;AACH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;gDAgBvB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,mEAI9C;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,uBAU7C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,WAE5C;AAED,wBAAsB,kBAAkB,CAAC,EACvC,MAAM,EACN,OAAO,EACP,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,iBA6BA;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,SAAS,EAAE,GACnB,OAAO,CAAC,YAAY,CAAC,CAoDvB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,GAC/D,OAAO,CAAC,YAAY,CAAC,CAevB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,YAAY,CAAC,CAwBvB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,YAAY,CAAC,CAoBvB"}