@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
@@ -0,0 +1,199 @@
1
+ import { confirm, input, select } from '@inquirer/prompts';
2
+ import { z } from 'zod';
3
+ import { IsmType } from '@hyperlane-xyz/sdk';
4
+ import { errorRed, log, logBlue, logGreen } from '../../logger.js';
5
+ import { runMultiChainSelectionStep } from '../utils/chains.js';
6
+ import { mergeYamlOrJson, readYamlOrJson } from '../utils/files.js';
7
+ import { readChainConfigsIfExists } from './chain.js';
8
+ const MultisigIsmConfigSchema = z.object({
9
+ type: z.union([
10
+ z.literal(IsmType.MERKLE_ROOT_MULTISIG),
11
+ z.literal(IsmType.MESSAGE_ID_MULTISIG),
12
+ ]),
13
+ threshold: z.number(),
14
+ validators: z.array(z.string()),
15
+ });
16
+ const RoutingIsmConfigSchema = z.lazy(() => z.object({
17
+ type: z.literal(IsmType.ROUTING),
18
+ owner: z.string(),
19
+ domains: z.record(IsmConfigSchema),
20
+ }));
21
+ const AggregationIsmConfigSchema = z
22
+ .lazy(() => z.object({
23
+ type: z.literal(IsmType.AGGREGATION),
24
+ modules: z.array(IsmConfigSchema),
25
+ threshold: z.number(),
26
+ }))
27
+ .refine(
28
+ // check ig modules.length >= threshold
29
+ (ismConfig) => {
30
+ return ismConfig.modules.length >= ismConfig.threshold;
31
+ }, {
32
+ message: 'Threshold cannot be greater than number of modules',
33
+ });
34
+ const TestIsmConfigSchema = z.object({
35
+ type: z.literal(IsmType.TEST_ISM),
36
+ });
37
+ const IsmConfigSchema = z.union([
38
+ MultisigIsmConfigSchema,
39
+ RoutingIsmConfigSchema,
40
+ AggregationIsmConfigSchema,
41
+ TestIsmConfigSchema,
42
+ ]);
43
+ const IsmConfigMapSchema = z.record(IsmConfigSchema).refine((ismConfigMap) => {
44
+ // check if any key in IsmConfigMap is found in its own RoutingIsmConfigSchema.domains
45
+ for (const [key, config] of Object.entries(ismConfigMap)) {
46
+ if (config.type === IsmType.ROUTING) {
47
+ if (config.domains && key in config.domains) {
48
+ return false;
49
+ }
50
+ }
51
+ }
52
+ return true;
53
+ }, {
54
+ message: 'Cannot set RoutingIsm.domain to the same chain you are configuring',
55
+ });
56
+ export function parseIsmConfig(filePath) {
57
+ const config = readYamlOrJson(filePath);
58
+ if (!config)
59
+ throw new Error(`No ISM config found at ${filePath}`);
60
+ return IsmConfigMapSchema.safeParse(config);
61
+ }
62
+ export function readIsmConfig(filePath) {
63
+ const result = parseIsmConfig(filePath);
64
+ if (!result.success) {
65
+ const firstIssue = result.error.issues[0];
66
+ throw new Error(`Invalid ISM config: ${firstIssue.path} => ${firstIssue.message}`);
67
+ }
68
+ const parsedConfig = result.data;
69
+ return parsedConfig;
70
+ }
71
+ export function isValildIsmConfig(config) {
72
+ return IsmConfigMapSchema.safeParse(config).success;
73
+ }
74
+ export async function createIsmConfigMap({ format, outPath, chainConfigPath, }) {
75
+ logBlue('Creating a new ISM config');
76
+ const customChains = readChainConfigsIfExists(chainConfigPath);
77
+ const chains = await runMultiChainSelectionStep(customChains, 'Select chains to configure ISM for', true);
78
+ const result = {};
79
+ for (const chain of chains) {
80
+ log(`Setting values for chain ${chain}`);
81
+ result[chain] = await createIsmConfig(chain, chains);
82
+ // TODO consider re-enabling. Disabling based on feedback from @nambrot for now.
83
+ // repeat = await confirm({
84
+ // message: 'Use this same config for remaining chains?',
85
+ // });
86
+ }
87
+ if (isValildIsmConfig(result)) {
88
+ logGreen(`ISM config is valid, writing to file ${outPath}`);
89
+ mergeYamlOrJson(outPath, result, format);
90
+ }
91
+ else {
92
+ errorRed(`ISM config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/ism.yaml for an example`);
93
+ throw new Error('Invalid ISM config');
94
+ }
95
+ }
96
+ export async function createIsmConfig(remote, origins) {
97
+ let lastConfig;
98
+ const moduleType = await select({
99
+ message: 'Select ISM type',
100
+ choices: [
101
+ {
102
+ value: IsmType.MESSAGE_ID_MULTISIG,
103
+ name: IsmType.MESSAGE_ID_MULTISIG,
104
+ description: 'Validators need to sign just this messageId',
105
+ },
106
+ {
107
+ value: IsmType.MERKLE_ROOT_MULTISIG,
108
+ name: IsmType.MERKLE_ROOT_MULTISIG,
109
+ description: 'Validators need to sign the root of the merkle tree of all messages from origin chain',
110
+ },
111
+ {
112
+ value: IsmType.ROUTING,
113
+ name: IsmType.ROUTING,
114
+ description: 'Each origin chain can be verified by the specified ISM type via RoutingISM',
115
+ },
116
+ {
117
+ value: IsmType.AGGREGATION,
118
+ name: IsmType.AGGREGATION,
119
+ description: 'You can aggregate multiple ISMs into one ISM via AggregationISM',
120
+ },
121
+ {
122
+ value: IsmType.TEST_ISM,
123
+ name: IsmType.TEST_ISM,
124
+ description: 'ISM where you can deliver messages without any validation (WARNING: only for testing, do not use in production)',
125
+ },
126
+ ],
127
+ pageSize: 10,
128
+ });
129
+ if (moduleType === IsmType.MESSAGE_ID_MULTISIG ||
130
+ moduleType === IsmType.MERKLE_ROOT_MULTISIG) {
131
+ lastConfig = await createMultisigConfig(moduleType);
132
+ }
133
+ else if (moduleType === IsmType.ROUTING) {
134
+ lastConfig = await createRoutingConfig(remote, origins);
135
+ }
136
+ else if (moduleType === IsmType.AGGREGATION) {
137
+ lastConfig = await createAggregationConfig(remote, origins);
138
+ }
139
+ else if (moduleType === IsmType.TEST_ISM) {
140
+ lastConfig = { type: IsmType.TEST_ISM };
141
+ }
142
+ else {
143
+ throw new Error(`Invalid ISM type: ${moduleType}}`);
144
+ }
145
+ return lastConfig;
146
+ }
147
+ export async function createMultisigConfig(type) {
148
+ const thresholdInput = await input({
149
+ message: 'Enter threshold of signers (number)',
150
+ });
151
+ const threshold = parseInt(thresholdInput, 10);
152
+ const validatorsInput = await input({
153
+ message: 'Enter validator addresses (comma separated list)',
154
+ });
155
+ const validators = validatorsInput.split(',').map((v) => v.trim());
156
+ return {
157
+ type,
158
+ threshold,
159
+ validators,
160
+ };
161
+ }
162
+ export async function createAggregationConfig(remote, chains) {
163
+ const isms = parseInt(await input({
164
+ message: 'Enter the number of ISMs to aggregate (number)',
165
+ }), 10);
166
+ const threshold = parseInt(await input({
167
+ message: 'Enter the threshold of ISMs to for verification (number)',
168
+ }), 10);
169
+ const modules = [];
170
+ for (let i = 0; i < isms; i++) {
171
+ modules.push(await createIsmConfig(remote, chains));
172
+ }
173
+ return {
174
+ type: IsmType.AGGREGATION,
175
+ modules,
176
+ threshold,
177
+ };
178
+ }
179
+ export async function createRoutingConfig(remote, chains) {
180
+ const owner = await input({
181
+ message: 'Enter owner address',
182
+ });
183
+ const ownerAddress = owner;
184
+ const origins = chains.filter((chain) => chain !== remote);
185
+ const domainsMap = {};
186
+ for (const chain of origins) {
187
+ await confirm({
188
+ message: `You are about to configure ISM from source chain ${chain}. Continue?`,
189
+ });
190
+ const config = await createIsmConfig(chain, chains);
191
+ domainsMap[chain] = config;
192
+ }
193
+ return {
194
+ type: IsmType.ROUTING,
195
+ owner: ownerAddress,
196
+ domains: domainsMap,
197
+ };
198
+ }
199
+ //# sourceMappingURL=ism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/config/ism.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,31 @@
1
1
  import { z } from 'zod';
2
- import { ChainMap, IsmType, MultisigConfig } from '@hyperlane-xyz/sdk';
2
+ import { ChainMap, MultisigConfig } from '@hyperlane-xyz/sdk';
3
3
  import { FileFormat } from '../utils/files.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">>;
@@ -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,EAAE,MAAM,oBAAoB,CAAC;AAW9D,OAAO,EAAE,UAAU,EAAmC,MAAM,mBAAmB,CAAC;AAIhF,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,MAAM,EACN,OAAO,EACP,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,iBAsDA"}
@@ -1,13 +1,12 @@
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';
3
+ import { isValidAddress, normalizeAddressEvm, objMap, } from '@hyperlane-xyz/utils';
5
4
  import { errorRed, log, logBlue, logGreen } from '../../logger.js';
5
+ import { sdkContractAddressesMap } from '../context.js';
6
6
  import { runMultiChainSelectionStep } from '../utils/chains.js';
7
7
  import { mergeYamlOrJson, readYamlOrJson } from '../utils/files.js';
8
8
  import { readChainConfigsIfExists } from './chain.js';
9
9
  const MultisigConfigMapSchema = z.object({}).catchall(z.object({
10
- type: z.nativeEnum(IsmType),
11
10
  threshold: z.number(),
12
11
  validators: z.array(z.string()),
13
12
  }));
@@ -21,11 +20,23 @@ export function readMultisigConfig(filePath) {
21
20
  throw new Error(`Invalid multisig config: ${firstIssue.path} => ${firstIssue.message}`);
22
21
  }
23
22
  const parsedConfig = result.data;
24
- const formattedConfig = objMap(parsedConfig, (_, config) => ({
25
- type: config.type,
26
- threshold: config.threshold,
27
- validators: config.validators,
28
- }));
23
+ const formattedConfig = objMap(parsedConfig, (_, config) => {
24
+ if (config.threshold > config.validators.length)
25
+ throw new Error('Threshold cannot be greater than number of validators');
26
+ if (config.threshold < 1)
27
+ throw new Error('Threshold must be greater than 0');
28
+ const validators = [];
29
+ for (const v of config.validators) {
30
+ if (isValidAddress(v))
31
+ validators.push(normalizeAddressEvm(v));
32
+ else
33
+ throw new Error(`Invalid address ${v}`);
34
+ }
35
+ return {
36
+ threshold: config.threshold,
37
+ validators: validators,
38
+ };
39
+ });
29
40
  logGreen(`All multisig configs in ${filePath} are valid`);
30
41
  return formattedConfig;
31
42
  }
@@ -34,6 +45,7 @@ export function isValidMultisigConfig(config) {
34
45
  }
35
46
  export async function createMultisigConfig({ format, outPath, chainConfigPath, }) {
36
47
  logBlue('Creating a new multisig config');
48
+ 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.');
37
49
  const customChains = readChainConfigsIfExists(chainConfigPath);
38
50
  const chains = await runMultiChainSelectionStep(customChains);
39
51
  const result = {};
@@ -45,17 +57,13 @@ export async function createMultisigConfig({ format, outPath, chainConfigPath, }
45
57
  result[chain] = lastConfig;
46
58
  continue;
47
59
  }
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
- });
60
+ if (Object.keys(sdkContractAddressesMap).includes(chain)) {
61
+ const reuseCoreConfig = await confirm({
62
+ message: 'Use existing Hyperlane validators for this chain?',
63
+ });
64
+ if (reuseCoreConfig)
65
+ continue;
66
+ }
59
67
  const thresholdInput = await input({
60
68
  message: 'Enter threshold of signers (number)',
61
69
  });
@@ -65,7 +73,6 @@ export async function createMultisigConfig({ format, outPath, chainConfigPath, }
65
73
  });
66
74
  const validators = validatorsInput.split(',').map((v) => v.trim());
67
75
  lastConfig = {
68
- type: moduleType,
69
76
  threshold,
70
77
  validators,
71
78
  };
@@ -80,7 +87,7 @@ export async function createMultisigConfig({ format, outPath, chainConfigPath, }
80
87
  mergeYamlOrJson(outPath, result, format);
81
88
  }
82
89
  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`);
90
+ 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
91
  throw new Error('Invalid multisig config');
85
92
  }
86
93
  }
@@ -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 +1 @@
1
- {"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAc,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,sBAAsB,GAAG;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,GAAG,sBAAsB;KAC1B,CAAC;IACF,UAAU,EAAE,CAAC;SACV,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,GAAG,sBAAsB;KAC1B,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AASH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvD,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,wBAAwB,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,OAAO,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAW;IAChD,OAAO,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,MAAM,EACN,OAAO,EACP,eAAe,GAKhB;IACC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,2BAA2B,CACjD,YAAY,EACZ,mDAAmD,CACpD,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;QAC7B,OAAO,EACL,2FAA2F;KAC9F,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC;IACpE,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW;QAC9B,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAEjE,MAAM,eAAe,GAAG,MAAM,0BAA0B,CACtD,YAAY,EACZ,yDAAyD,CAC1D,CAAC;IAEF,uEAAuE;IAEvE,MAAM,MAAM,GAAoB;QAC9B,IAAI,EAAE;YACJ,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAW;YACpB,KAAK;SACN;QACD,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;KACnE,CAAC;IAEF,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;QACnE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,QAAQ,CACN,0JAA0J,CAC3J,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}