@hyperlane-xyz/cli 3.20.0-beta0 → 4.0.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.
- package/README.md +1 -1
- package/dist/cli.js +10 -6
- package/dist/cli.js.map +1 -1
- package/dist/src/avs/config.d.ts +11 -0
- package/dist/src/avs/config.d.ts.map +1 -0
- package/dist/src/avs/config.js +10 -0
- package/dist/src/avs/config.js.map +1 -0
- package/dist/src/avs/stakeRegistry.d.ts +21 -0
- package/dist/src/avs/stakeRegistry.d.ts.map +1 -0
- package/dist/src/avs/stakeRegistry.js +64 -0
- package/dist/src/avs/stakeRegistry.js.map +1 -0
- package/dist/src/commands/avs.d.ts +12 -0
- package/dist/src/commands/avs.d.ts.map +1 -0
- package/dist/src/commands/avs.js +64 -0
- package/dist/src/commands/avs.js.map +1 -0
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +10 -60
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/core.d.ts +16 -0
- package/dist/src/commands/core.d.ts.map +1 -0
- package/dist/src/commands/core.js +88 -0
- package/dist/src/commands/core.js.map +1 -0
- package/dist/src/commands/deploy.d.ts +13 -0
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +22 -26
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/options.d.ts +11 -5
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +45 -11
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/registry.d.ts +6 -0
- package/dist/src/commands/registry.d.ts.map +1 -0
- package/dist/src/commands/{chains.js → registry.js} +3 -3
- package/dist/src/commands/registry.js.map +1 -0
- package/dist/src/commands/send.d.ts.map +1 -1
- package/dist/src/commands/send.js +2 -42
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/commands/validator.d.ts +3 -0
- package/dist/src/commands/validator.d.ts.map +1 -0
- package/dist/src/commands/validator.js +34 -0
- package/dist/src/commands/validator.js.map +1 -0
- package/dist/src/commands/{hook.d.ts → warp.d.ts} +6 -2
- package/dist/src/commands/warp.d.ts.map +1 -0
- package/dist/src/commands/warp.js +101 -0
- package/dist/src/commands/warp.js.map +1 -0
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +21 -9
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/hooks.d.ts +4528 -90
- package/dist/src/config/hooks.d.ts.map +1 -1
- package/dist/src/config/hooks.js +31 -97
- package/dist/src/config/hooks.js.map +1 -1
- package/dist/src/config/ism.d.ts +58 -61
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +40 -128
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/warp.d.ts +3 -2
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +112 -49
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/consts.d.ts +1 -0
- package/dist/src/consts.d.ts.map +1 -1
- package/dist/src/consts.js +1 -0
- package/dist/src/consts.js.map +1 -1
- package/dist/src/context/context.d.ts +1 -1
- package/dist/src/context/context.d.ts.map +1 -1
- package/dist/src/context/context.js +37 -15
- package/dist/src/context/context.js.map +1 -1
- package/dist/src/context/types.d.ts +1 -0
- package/dist/src/context/types.d.ts.map +1 -1
- package/dist/src/deploy/agent.js +1 -1
- package/dist/src/deploy/agent.js.map +1 -1
- package/dist/src/deploy/core.d.ts +4 -8
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +28 -232
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/dry-run.d.ts +2 -2
- package/dist/src/deploy/dry-run.d.ts.map +1 -1
- package/dist/src/deploy/dry-run.js +1 -0
- package/dist/src/deploy/dry-run.js.map +1 -1
- package/dist/src/deploy/utils.d.ts +4 -7
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +22 -19
- package/dist/src/deploy/utils.js.map +1 -1
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +38 -123
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/send/message.d.ts.map +1 -1
- package/dist/src/send/message.js +15 -29
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.d.ts.map +1 -1
- package/dist/src/send/transfer.js +5 -6
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/submit/submit.d.ts +5 -0
- package/dist/src/submit/submit.d.ts.map +1 -0
- package/dist/src/submit/submit.js +30 -0
- package/dist/src/submit/submit.js.map +1 -0
- package/dist/src/submit/types.d.ts +18 -0
- package/dist/src/submit/types.d.ts.map +1 -0
- package/dist/src/submit/types.js +2 -0
- package/dist/src/submit/types.js.map +1 -0
- package/dist/src/tests/deployTestErc20.js +3 -2
- package/dist/src/tests/deployTestErc20.js.map +1 -1
- package/dist/src/tests/hooks.test.js +14 -8
- package/dist/src/tests/hooks.test.js.map +1 -1
- package/dist/src/tests/ism.test.js +1 -1
- package/dist/src/tests/ism.test.js.map +1 -1
- package/dist/src/utils/balances.d.ts +2 -2
- package/dist/src/utils/balances.d.ts.map +1 -1
- package/dist/src/utils/balances.js +8 -3
- package/dist/src/utils/balances.js.map +1 -1
- package/dist/src/utils/chains.d.ts +1 -0
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +20 -3
- package/dist/src/utils/chains.js.map +1 -1
- package/dist/src/utils/env.d.ts +3 -0
- package/dist/src/utils/env.d.ts.map +1 -1
- package/dist/src/utils/env.js +3 -0
- package/dist/src/utils/env.js.map +1 -1
- package/dist/src/utils/files.d.ts +1 -0
- package/dist/src/utils/files.d.ts.map +1 -1
- package/dist/src/utils/files.js +8 -0
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/utils/keys.d.ts +5 -3
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +16 -13
- package/dist/src/utils/keys.js.map +1 -1
- package/dist/src/validator/address.d.ts +10 -0
- package/dist/src/validator/address.d.ts.map +1 -0
- package/dist/src/validator/address.js +107 -0
- package/dist/src/validator/address.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/examples/core-config.yaml +19 -0
- package/examples/hooks.yaml +8 -4
- package/examples/warp-route-deployment.yaml +2 -4
- package/package.json +7 -4
- package/dist/src/commands/chains.d.ts +0 -6
- package/dist/src/commands/chains.d.ts.map +0 -1
- package/dist/src/commands/chains.js.map +0 -1
- package/dist/src/commands/hook.d.ts.map +0 -1
- package/dist/src/commands/hook.js +0 -34
- package/dist/src/commands/hook.js.map +0 -1
- package/dist/src/commands/ism.d.ts +0 -12
- package/dist/src/commands/ism.d.ts.map +0 -1
- package/dist/src/commands/ism.js +0 -36
- package/dist/src/commands/ism.js.map +0 -1
- package/dist/src/registry/MergedRegistry.d.ts +0 -35
- package/dist/src/registry/MergedRegistry.d.ts.map +0 -1
- package/dist/src/registry/MergedRegistry.js +0 -83
- package/dist/src/registry/MergedRegistry.js.map +0 -1
package/dist/src/config/ism.js
CHANGED
|
@@ -1,55 +1,14 @@
|
|
|
1
1
|
import { confirm, input, select } from '@inquirer/prompts';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { IsmType,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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
|
-
]);
|
|
3
|
+
import { IsmConfigSchema, IsmType, } from '@hyperlane-xyz/sdk';
|
|
4
|
+
import { detectAndConfirmOrPrompt, runMultiChainSelectionStep, } from '../utils/chains.js';
|
|
5
|
+
import { readYamlOrJson } from '../utils/files.js';
|
|
50
6
|
const IsmConfigMapSchema = z.record(IsmConfigSchema).refine((ismConfigMap) => {
|
|
51
7
|
// check if any key in IsmConfigMap is found in its own RoutingIsmConfigSchema.domains
|
|
52
8
|
for (const [key, config] of Object.entries(ismConfigMap)) {
|
|
9
|
+
if (typeof config === 'string') {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
53
12
|
if (config.type === IsmType.ROUTING) {
|
|
54
13
|
if (config.domains && key in config.domains) {
|
|
55
14
|
return false;
|
|
@@ -75,97 +34,52 @@ export function readIsmConfig(filePath) {
|
|
|
75
34
|
const parsedConfig = result.data;
|
|
76
35
|
return parsedConfig;
|
|
77
36
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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;
|
|
37
|
+
const ISM_TYPE_DESCRIPTIONS = {
|
|
38
|
+
[IsmType.MESSAGE_ID_MULTISIG]: 'Validators need to sign just this messageId',
|
|
39
|
+
[IsmType.MERKLE_ROOT_MULTISIG]: 'Validators need to sign the root of the merkle tree of all messages from origin chain',
|
|
40
|
+
[IsmType.ROUTING]: 'Each origin chain can be verified by the specified ISM type via RoutingISM',
|
|
41
|
+
[IsmType.FALLBACK_ROUTING]: "You can specify ISM type for specific chains you like and fallback to mailbox's default ISM for other chains via DefaultFallbackRoutingISM",
|
|
42
|
+
[IsmType.AGGREGATION]: 'You can aggregate multiple ISMs into one ISM via AggregationISM',
|
|
43
|
+
[IsmType.TRUSTED_RELAYER]: 'Deliver messages from an authorized address',
|
|
44
|
+
[IsmType.TEST_ISM]: 'ISM where you can deliver messages without any validation (WARNING: only for testing, do not use in production)',
|
|
45
|
+
[IsmType.OP_STACK]: '',
|
|
46
|
+
[IsmType.PAUSABLE]: '',
|
|
47
|
+
};
|
|
48
|
+
export async function createIsmConfig(context) {
|
|
106
49
|
const moduleType = await select({
|
|
107
50
|
message: 'Select ISM type',
|
|
108
|
-
choices:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
],
|
|
51
|
+
choices: Object.values(IsmType).map((value) => ({
|
|
52
|
+
value,
|
|
53
|
+
description: ISM_TYPE_DESCRIPTIONS[value],
|
|
54
|
+
})),
|
|
138
55
|
pageSize: 10,
|
|
139
56
|
});
|
|
140
57
|
if (moduleType === IsmType.MESSAGE_ID_MULTISIG ||
|
|
141
58
|
moduleType === IsmType.MERKLE_ROOT_MULTISIG) {
|
|
142
|
-
|
|
59
|
+
return createMultisigConfig(moduleType);
|
|
143
60
|
}
|
|
144
61
|
else if (moduleType === IsmType.ROUTING ||
|
|
145
62
|
moduleType === IsmType.FALLBACK_ROUTING) {
|
|
146
|
-
|
|
63
|
+
return createRoutingConfig(context, moduleType);
|
|
147
64
|
}
|
|
148
65
|
else if (moduleType === IsmType.AGGREGATION) {
|
|
149
|
-
|
|
66
|
+
return createAggregationConfig(context);
|
|
150
67
|
}
|
|
151
68
|
else if (moduleType === IsmType.TEST_ISM) {
|
|
152
|
-
|
|
69
|
+
return { type: IsmType.TEST_ISM };
|
|
153
70
|
}
|
|
154
71
|
else if (moduleType === IsmType.TRUSTED_RELAYER) {
|
|
155
|
-
|
|
72
|
+
return createTrustedRelayerConfig(context);
|
|
156
73
|
}
|
|
157
|
-
|
|
158
|
-
throw new Error(`Invalid ISM type: ${moduleType}}`);
|
|
159
|
-
}
|
|
160
|
-
return lastConfig;
|
|
74
|
+
throw new Error(`Invalid ISM type: ${moduleType}}`);
|
|
161
75
|
}
|
|
162
76
|
export async function createMultisigConfig(type) {
|
|
163
77
|
const thresholdInput = await input({
|
|
164
|
-
message: 'Enter threshold of validators (number)',
|
|
78
|
+
message: 'Enter threshold of validators (number) for multisig ISM',
|
|
165
79
|
});
|
|
166
80
|
const threshold = parseInt(thresholdInput, 10);
|
|
167
81
|
const validatorsInput = await input({
|
|
168
|
-
message: 'Enter validator addresses (comma separated list)',
|
|
82
|
+
message: 'Enter validator addresses (comma separated list) for multisig ISM',
|
|
169
83
|
});
|
|
170
84
|
const validators = validatorsInput.split(',').map((v) => v.trim());
|
|
171
85
|
return {
|
|
@@ -174,25 +88,23 @@ export async function createMultisigConfig(type) {
|
|
|
174
88
|
validators,
|
|
175
89
|
};
|
|
176
90
|
}
|
|
177
|
-
async function createTrustedRelayerConfig() {
|
|
178
|
-
const relayer = await
|
|
179
|
-
message: 'Enter relayer address',
|
|
180
|
-
});
|
|
91
|
+
export async function createTrustedRelayerConfig(context) {
|
|
92
|
+
const relayer = await detectAndConfirmOrPrompt(async () => context.signer?.getAddress(), 'For trusted relayer ISM, enter', 'relayer address');
|
|
181
93
|
return {
|
|
182
94
|
type: IsmType.TRUSTED_RELAYER,
|
|
183
95
|
relayer,
|
|
184
96
|
};
|
|
185
97
|
}
|
|
186
|
-
export async function createAggregationConfig(
|
|
98
|
+
export async function createAggregationConfig(context) {
|
|
187
99
|
const isms = parseInt(await input({
|
|
188
100
|
message: 'Enter the number of ISMs to aggregate (number)',
|
|
189
101
|
}), 10);
|
|
190
102
|
const threshold = parseInt(await input({
|
|
191
|
-
message: 'Enter the threshold of ISMs
|
|
103
|
+
message: 'Enter the threshold of ISMs for verification (number)',
|
|
192
104
|
}), 10);
|
|
193
105
|
const modules = [];
|
|
194
106
|
for (let i = 0; i < isms; i++) {
|
|
195
|
-
modules.push(await createIsmConfig(
|
|
107
|
+
modules.push(await createIsmConfig(context));
|
|
196
108
|
}
|
|
197
109
|
return {
|
|
198
110
|
type: IsmType.AGGREGATION,
|
|
@@ -200,18 +112,18 @@ export async function createAggregationConfig(remote, chains) {
|
|
|
200
112
|
threshold,
|
|
201
113
|
};
|
|
202
114
|
}
|
|
203
|
-
export async function createRoutingConfig(
|
|
115
|
+
export async function createRoutingConfig(context, type) {
|
|
204
116
|
const owner = await input({
|
|
205
|
-
message: 'Enter owner address',
|
|
117
|
+
message: 'Enter owner address for routing ISM',
|
|
206
118
|
});
|
|
207
119
|
const ownerAddress = owner;
|
|
208
|
-
const
|
|
120
|
+
const chains = await runMultiChainSelectionStep(context.chainMetadata, 'Select chains to configure ISM for', true);
|
|
209
121
|
const domainsMap = {};
|
|
210
|
-
for (const chain of
|
|
122
|
+
for (const chain of chains) {
|
|
211
123
|
await confirm({
|
|
212
124
|
message: `You are about to configure ISM from source chain ${chain}. Continue?`,
|
|
213
125
|
});
|
|
214
|
-
const config = await createIsmConfig(
|
|
126
|
+
const config = await createIsmConfig(context);
|
|
215
127
|
domainsMap[chain] = config;
|
|
216
128
|
}
|
|
217
129
|
return {
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/config/ism.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import { CommandContext } from '../context/types.js';
|
|
3
|
-
export declare function readWarpRouteDeployConfig(filePath: string): WarpRouteDeployConfig
|
|
3
|
+
export declare function readWarpRouteDeployConfig(filePath: string, context?: CommandContext): Promise<WarpRouteDeployConfig>;
|
|
4
4
|
export declare function isValidWarpRouteDeployConfig(config: any): boolean;
|
|
5
|
-
export declare function createWarpRouteDeployConfig({ context, outPath, }: {
|
|
5
|
+
export declare function createWarpRouteDeployConfig({ context, outPath, shouldUseDefault, }: {
|
|
6
6
|
context: CommandContext;
|
|
7
7
|
outPath: string;
|
|
8
|
+
shouldUseDefault: boolean;
|
|
8
9
|
}): Promise<void>;
|
|
9
10
|
export declare function readWarpRouteConfig(filePath: string): WarpCoreConfig;
|
|
10
11
|
//# sourceMappingURL=warp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,cAAc,EAEd,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAqErD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,qBAAqB,CAAC,CAQhC;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,GAAG,WAEvD;AAED,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,OAAO,EACP,gBAAwB,GACzB,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,iBA+EA;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAIpE"}
|
package/dist/src/config/warp.js
CHANGED
|
@@ -1,67 +1,120 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { input, select } from '@inquirer/prompts';
|
|
2
|
+
import { IsmType, TokenType, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, } from '@hyperlane-xyz/sdk';
|
|
3
|
+
import { assert, objMap, promiseObjAll } from '@hyperlane-xyz/utils';
|
|
4
4
|
import { errorRed, logBlue, logGreen } from '../logger.js';
|
|
5
|
-
import {
|
|
5
|
+
import { detectAndConfirmOrPrompt, runMultiChainSelectionStep, } from '../utils/chains.js';
|
|
6
6
|
import { readYamlOrJson, writeYamlOrJson } from '../utils/files.js';
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
import { createIsmConfig, createRoutingConfig, createTrustedRelayerConfig, } from './ism.js';
|
|
8
|
+
const TYPE_DESCRIPTIONS = {
|
|
9
|
+
[TokenType.synthetic]: 'A new ERC20 with remote transfer functionality',
|
|
10
|
+
[TokenType.collateral]: 'Extends an existing ERC20 with remote transfer functionality',
|
|
11
|
+
[TokenType.native]: 'Extends the native token with remote transfer functionality',
|
|
12
|
+
[TokenType.collateralVault]: 'Extends an existing ERC4626 with remote transfer functionality',
|
|
13
|
+
[TokenType.collateralFiat]: 'Extends an existing FiatToken with remote transfer functionality',
|
|
14
|
+
[TokenType.XERC20]: 'Extends an existing xERC20 with Warp Route functionality',
|
|
15
|
+
[TokenType.XERC20Lockbox]: 'Extends an existing xERC20 Lockbox with Warp Route functionality',
|
|
16
|
+
// TODO: describe
|
|
17
|
+
[TokenType.fastSynthetic]: '',
|
|
18
|
+
[TokenType.syntheticUri]: '',
|
|
19
|
+
[TokenType.fastCollateral]: '',
|
|
20
|
+
[TokenType.collateralUri]: '',
|
|
21
|
+
[TokenType.nativeScaled]: '',
|
|
22
|
+
};
|
|
23
|
+
const TYPE_CHOICES = Object.values(TokenType).map((type) => ({
|
|
24
|
+
name: type,
|
|
25
|
+
value: type,
|
|
26
|
+
description: TYPE_DESCRIPTIONS[type],
|
|
27
|
+
}));
|
|
28
|
+
async function fillDefaults(context, config) {
|
|
29
|
+
return promiseObjAll(objMap(config, async (chain, config) => {
|
|
30
|
+
let mailbox = config.mailbox;
|
|
31
|
+
if (!mailbox) {
|
|
32
|
+
const addresses = await context.registry.getChainAddresses(chain);
|
|
33
|
+
assert(addresses, `No addresses found for chain ${chain}`);
|
|
34
|
+
mailbox = addresses.mailbox;
|
|
35
|
+
}
|
|
36
|
+
let owner = config.owner;
|
|
37
|
+
if (!owner) {
|
|
38
|
+
owner =
|
|
39
|
+
(await context.signer?.getAddress()) ??
|
|
40
|
+
(await context.multiProvider.getSignerAddress(chain));
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
owner,
|
|
44
|
+
mailbox,
|
|
45
|
+
...config,
|
|
46
|
+
};
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
export async function readWarpRouteDeployConfig(filePath, context) {
|
|
50
|
+
let config = readYamlOrJson(filePath);
|
|
9
51
|
if (!config)
|
|
10
52
|
throw new Error(`No warp route deploy config found at ${filePath}`);
|
|
53
|
+
if (context) {
|
|
54
|
+
config = await fillDefaults(context, config);
|
|
55
|
+
}
|
|
11
56
|
return WarpRouteDeployConfigSchema.parse(config);
|
|
12
57
|
}
|
|
13
58
|
export function isValidWarpRouteDeployConfig(config) {
|
|
14
59
|
return WarpRouteDeployConfigSchema.safeParse(config).success;
|
|
15
60
|
}
|
|
16
|
-
export async function createWarpRouteDeployConfig({ context, outPath, }) {
|
|
61
|
+
export async function createWarpRouteDeployConfig({ context, outPath, shouldUseDefault = false, }) {
|
|
17
62
|
logBlue('Creating a new warp route deployment config');
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
? false
|
|
27
|
-
: await confirm({
|
|
28
|
-
message: 'Do you want this warp route to be yield-bearing (i.e. deposits into ERC-4626 vault)?',
|
|
63
|
+
const owner = await detectAndConfirmOrPrompt(async () => context.signer?.getAddress(), 'Enter the desired', 'owner address');
|
|
64
|
+
const warpChains = await runMultiChainSelectionStep(context.chainMetadata, 'Select chains to connect');
|
|
65
|
+
const result = {};
|
|
66
|
+
for (const chain of warpChains) {
|
|
67
|
+
logBlue(`Configuring warp route for chain ${chain}`);
|
|
68
|
+
const type = await select({
|
|
69
|
+
message: `Select ${chain}'s token type`,
|
|
70
|
+
choices: TYPE_CHOICES,
|
|
29
71
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
72
|
+
// TODO: restore NFT prompting
|
|
73
|
+
const isNft = type === TokenType.syntheticUri || type === TokenType.collateralUri;
|
|
74
|
+
const mailbox = await detectAndConfirmOrPrompt(async () => {
|
|
75
|
+
const addresses = await context.registry.getChainAddresses(chain);
|
|
76
|
+
return addresses?.mailbox;
|
|
77
|
+
}, `For ${chain}, enter the`, 'mailbox address');
|
|
78
|
+
const interchainSecurityModule = shouldUseDefault
|
|
79
|
+
? await createDefaultWarpIsmConfig(context)
|
|
80
|
+
: await createIsmConfig(context);
|
|
81
|
+
switch (type) {
|
|
82
|
+
case TokenType.collateral:
|
|
83
|
+
case TokenType.XERC20:
|
|
84
|
+
case TokenType.XERC20Lockbox:
|
|
85
|
+
case TokenType.collateralFiat:
|
|
86
|
+
case TokenType.collateralUri:
|
|
87
|
+
case TokenType.fastCollateral:
|
|
88
|
+
case TokenType.collateralVault:
|
|
89
|
+
result[chain] = {
|
|
90
|
+
mailbox,
|
|
91
|
+
type,
|
|
92
|
+
owner,
|
|
93
|
+
isNft,
|
|
94
|
+
interchainSecurityModule,
|
|
95
|
+
token: await input({
|
|
96
|
+
message: `Enter the existing token address on chain ${chain}`,
|
|
97
|
+
}),
|
|
98
|
+
};
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
result[chain] = {
|
|
102
|
+
mailbox,
|
|
103
|
+
type,
|
|
104
|
+
owner,
|
|
105
|
+
isNft,
|
|
106
|
+
interchainSecurityModule,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
43
109
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
[baseChain]: {
|
|
47
|
-
type: isYieldBearing ? TokenType.collateralVault : TokenType.collateral,
|
|
48
|
-
token: baseAddress,
|
|
49
|
-
isNft,
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
syntheticChains.map((chain) => {
|
|
54
|
-
result[chain] = {
|
|
55
|
-
type: TokenType.synthetic,
|
|
56
|
-
};
|
|
57
|
-
});
|
|
58
|
-
if (isValidWarpRouteDeployConfig(result)) {
|
|
110
|
+
try {
|
|
111
|
+
const parsed = WarpRouteDeployConfigSchema.parse(result);
|
|
59
112
|
logGreen(`Warp Route config is valid, writing to file ${outPath}`);
|
|
60
|
-
writeYamlOrJson(outPath,
|
|
113
|
+
writeYamlOrJson(outPath, parsed);
|
|
61
114
|
}
|
|
62
|
-
|
|
115
|
+
catch (e) {
|
|
63
116
|
errorRed(`Warp route deployment config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/warp-route-deployment.yaml for an example`);
|
|
64
|
-
throw
|
|
117
|
+
throw e;
|
|
65
118
|
}
|
|
66
119
|
}
|
|
67
120
|
// Note, this is different than the function above which reads a config
|
|
@@ -72,4 +125,14 @@ export function readWarpRouteConfig(filePath) {
|
|
|
72
125
|
throw new Error(`No warp route config found at ${filePath}`);
|
|
73
126
|
return WarpCoreConfigSchema.parse(config);
|
|
74
127
|
}
|
|
128
|
+
async function createDefaultWarpIsmConfig(context) {
|
|
129
|
+
return {
|
|
130
|
+
type: IsmType.AGGREGATION,
|
|
131
|
+
modules: [
|
|
132
|
+
await createTrustedRelayerConfig(context),
|
|
133
|
+
await createRoutingConfig(context, IsmType.FALLBACK_ROUTING),
|
|
134
|
+
],
|
|
135
|
+
threshold: 1,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
75
138
|
//# sourceMappingURL=warp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"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"}
|
package/dist/src/consts.d.ts
CHANGED
package/dist/src/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,qBAAqB,QAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AACtD,eAAO,MAAM,eAAe,QAAmB,CAAC"}
|
package/dist/src/consts.js
CHANGED
package/dist/src/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC"}
|
|
@@ -10,5 +10,5 @@ export declare function getContext({ registryUri, registryOverrideUri, key, requ
|
|
|
10
10
|
* Retrieves dry-run context for the user-selected command
|
|
11
11
|
* @returns dry-run context for the current command
|
|
12
12
|
*/
|
|
13
|
-
export declare function getDryRunContext({ registryUri, registryOverrideUri, key, skipConfirmation }: ContextSettings, chain?: ChainName): Promise<CommandContext>;
|
|
13
|
+
export declare function getDryRunContext({ registryUri, registryOverrideUri, key, fromAddress, skipConfirmation, }: ContextSettings, chain?: ChainName): Promise<CommandContext>;
|
|
14
14
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAS9D,OAAO,EACL,cAAc,EACd,eAAe,EAEhB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAmBhE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,EAC/B,WAAW,EACX,mBAAmB,EACnB,GAAG,EACH,WAAW,EACX,gBAAgB,GACjB,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAiB3C;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,EACE,WAAW,EACX,mBAAmB,EACnB,GAAG,EACH,WAAW,EACX,gBAAgB,GACjB,EAAE,eAAe,EAClB,KAAK,CAAC,EAAE,SAAS,GAChB,OAAO,CAAC,cAAc,CAAC,CAkCzB"}
|