@hyperlane-xyz/cli 3.2.0 → 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.
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/src/commands/config.js +4 -4
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/deploy.js +10 -7
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +1 -2
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/send.js +2 -5
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +0 -2
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/config/artifacts.d.ts +2 -1
- package/dist/src/config/artifacts.d.ts.map +1 -1
- package/dist/src/config/artifacts.js +24 -2
- package/dist/src/config/artifacts.js.map +1 -1
- package/dist/src/config/chain.d.ts +1 -1
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +1 -1
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/hooks.d.ts +89 -211
- package/dist/src/config/hooks.d.ts.map +1 -1
- package/dist/src/config/hooks.js +220 -84
- package/dist/src/config/hooks.js.map +1 -1
- package/dist/src/config/ism.d.ts +3 -3
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +11 -13
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/multisig.d.ts.map +1 -1
- package/dist/src/config/multisig.js +11 -2
- package/dist/src/config/multisig.js.map +1 -1
- package/dist/src/context.d.ts +32 -400
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +32 -11
- package/dist/src/context.js.map +1 -1
- package/dist/src/context.test.d.ts +2 -0
- package/dist/src/context.test.d.ts.map +1 -0
- package/dist/src/context.test.js +21 -0
- package/dist/src/context.test.js.map +1 -0
- package/dist/src/deploy/agent.d.ts +3 -2
- package/dist/src/deploy/agent.d.ts.map +1 -1
- package/dist/src/deploy/agent.js +10 -22
- package/dist/src/deploy/agent.js.map +1 -1
- package/dist/src/deploy/core.d.ts +3 -1
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +41 -90
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +9 -9
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/send/message.d.ts +3 -3
- package/dist/src/send/message.d.ts.map +1 -1
- package/dist/src/send/message.js +13 -8
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.d.ts +4 -4
- package/dist/src/send/transfer.d.ts.map +1 -1
- package/dist/src/send/transfer.js +22 -11
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/status/message.d.ts +3 -3
- package/dist/src/status/message.d.ts.map +1 -1
- package/dist/src/status/message.js +14 -5
- package/dist/src/status/message.js.map +1 -1
- package/dist/src/tests/hooks.test.d.ts +2 -0
- package/dist/src/tests/hooks.test.d.ts.map +1 -0
- package/dist/src/tests/hooks.test.js +83 -0
- package/dist/src/tests/hooks.test.js.map +1 -0
- package/dist/src/utils/chains.d.ts +2 -2
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +8 -9
- package/dist/src/utils/chains.js.map +1 -1
- package/dist/src/utils/files.d.ts.map +1 -1
- package/dist/src/utils/files.js +5 -0
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/examples/hooks.yaml +66 -0
- package/package.json +5 -3
- package/examples/hook-config.yaml +0 -18
package/dist/src/config/hooks.js
CHANGED
|
@@ -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
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
|
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
|
|
51
|
+
return HooksConfigMapSchema.safeParse(config).success;
|
|
29
52
|
}
|
|
30
|
-
export function presetHookConfigs(owner, local, destinationChains,
|
|
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 (
|
|
39
|
-
validatorThreshold =
|
|
40
|
-
validatorCount =
|
|
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
|
-
|
|
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
|
|
105
|
+
export function readHooksConfigMap(filePath) {
|
|
80
106
|
const config = readYamlOrJson(filePath);
|
|
81
107
|
if (!config) {
|
|
82
108
|
logRed(`No hook config found at ${filePath}`);
|
|
83
109
|
return;
|
|
84
110
|
}
|
|
85
|
-
const result =
|
|
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
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
logGreen(`All hook 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
|
-
|
|
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
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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/
|
|
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;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/config/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config/ism.d.ts
CHANGED
|
@@ -49,9 +49,9 @@ export declare function createIsmConfigMap({ format, outPath, chainConfigPath, }
|
|
|
49
49
|
outPath: string;
|
|
50
50
|
chainConfigPath: string;
|
|
51
51
|
}): Promise<void>;
|
|
52
|
-
export declare function createIsmConfig(
|
|
52
|
+
export declare function createIsmConfig(remote: ChainName, origins: ChainName[]): Promise<ZodIsmConfig>;
|
|
53
53
|
export declare function createMultisigConfig(type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG): Promise<ZodIsmConfig>;
|
|
54
|
-
export declare function createAggregationConfig(
|
|
55
|
-
export declare function createRoutingConfig(
|
|
54
|
+
export declare function createAggregationConfig(remote: ChainName, chains: ChainName[]): Promise<ZodIsmConfig>;
|
|
55
|
+
export declare function createRoutingConfig(remote: ChainName, chains: ChainName[]): Promise<ZodIsmConfig>;
|
|
56
56
|
export {};
|
|
57
57
|
//# sourceMappingURL=ism.d.ts.map
|
|
@@ -1 +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,
|
|
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"}
|
package/dist/src/config/ism.js
CHANGED
|
@@ -74,11 +74,11 @@ export function isValildIsmConfig(config) {
|
|
|
74
74
|
export async function createIsmConfigMap({ format, outPath, chainConfigPath, }) {
|
|
75
75
|
logBlue('Creating a new ISM config');
|
|
76
76
|
const customChains = readChainConfigsIfExists(chainConfigPath);
|
|
77
|
-
const chains = await runMultiChainSelectionStep(customChains);
|
|
77
|
+
const chains = await runMultiChainSelectionStep(customChains, 'Select chains to configure ISM for', true);
|
|
78
78
|
const result = {};
|
|
79
79
|
for (const chain of chains) {
|
|
80
80
|
log(`Setting values for chain ${chain}`);
|
|
81
|
-
result[chain] = await createIsmConfig(chain,
|
|
81
|
+
result[chain] = await createIsmConfig(chain, chains);
|
|
82
82
|
// TODO consider re-enabling. Disabling based on feedback from @nambrot for now.
|
|
83
83
|
// repeat = await confirm({
|
|
84
84
|
// message: 'Use this same config for remaining chains?',
|
|
@@ -93,7 +93,7 @@ export async function createIsmConfigMap({ format, outPath, chainConfigPath, })
|
|
|
93
93
|
throw new Error('Invalid ISM config');
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
export async function createIsmConfig(
|
|
96
|
+
export async function createIsmConfig(remote, origins) {
|
|
97
97
|
let lastConfig;
|
|
98
98
|
const moduleType = await select({
|
|
99
99
|
message: 'Select ISM type',
|
|
@@ -131,10 +131,10 @@ export async function createIsmConfig(chain, chainConfigPath) {
|
|
|
131
131
|
lastConfig = await createMultisigConfig(moduleType);
|
|
132
132
|
}
|
|
133
133
|
else if (moduleType === IsmType.ROUTING) {
|
|
134
|
-
lastConfig = await createRoutingConfig(
|
|
134
|
+
lastConfig = await createRoutingConfig(remote, origins);
|
|
135
135
|
}
|
|
136
136
|
else if (moduleType === IsmType.AGGREGATION) {
|
|
137
|
-
lastConfig = await createAggregationConfig(
|
|
137
|
+
lastConfig = await createAggregationConfig(remote, origins);
|
|
138
138
|
}
|
|
139
139
|
else if (moduleType === IsmType.TEST_ISM) {
|
|
140
140
|
lastConfig = { type: IsmType.TEST_ISM };
|
|
@@ -159,7 +159,7 @@ export async function createMultisigConfig(type) {
|
|
|
159
159
|
validators,
|
|
160
160
|
};
|
|
161
161
|
}
|
|
162
|
-
export async function createAggregationConfig(
|
|
162
|
+
export async function createAggregationConfig(remote, chains) {
|
|
163
163
|
const isms = parseInt(await input({
|
|
164
164
|
message: 'Enter the number of ISMs to aggregate (number)',
|
|
165
165
|
}), 10);
|
|
@@ -168,7 +168,7 @@ export async function createAggregationConfig(chain, chainConfigPath) {
|
|
|
168
168
|
}), 10);
|
|
169
169
|
const modules = [];
|
|
170
170
|
for (let i = 0; i < isms; i++) {
|
|
171
|
-
modules.push(await createIsmConfig(
|
|
171
|
+
modules.push(await createIsmConfig(remote, chains));
|
|
172
172
|
}
|
|
173
173
|
return {
|
|
174
174
|
type: IsmType.AGGREGATION,
|
|
@@ -176,20 +176,18 @@ export async function createAggregationConfig(chain, chainConfigPath) {
|
|
|
176
176
|
threshold,
|
|
177
177
|
};
|
|
178
178
|
}
|
|
179
|
-
export async function createRoutingConfig(
|
|
179
|
+
export async function createRoutingConfig(remote, chains) {
|
|
180
180
|
const owner = await input({
|
|
181
181
|
message: 'Enter owner address',
|
|
182
182
|
});
|
|
183
183
|
const ownerAddress = owner;
|
|
184
|
-
const
|
|
185
|
-
delete customChains[chain];
|
|
186
|
-
const chains = await runMultiChainSelectionStep(customChains, `Select origin chains to be verified on ${chain}`, [chain]);
|
|
184
|
+
const origins = chains.filter((chain) => chain !== remote);
|
|
187
185
|
const domainsMap = {};
|
|
188
|
-
for (const chain of
|
|
186
|
+
for (const chain of origins) {
|
|
189
187
|
await confirm({
|
|
190
188
|
message: `You are about to configure ISM from source chain ${chain}. Continue?`,
|
|
191
189
|
});
|
|
192
|
-
const config = await createIsmConfig(chain,
|
|
190
|
+
const config = await createIsmConfig(chain, chains);
|
|
193
191
|
domainsMap[chain] = config;
|
|
194
192
|
}
|
|
195
193
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/config/ism.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/config/ism.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
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,7 +1,8 @@
|
|
|
1
|
-
import { input } from '@inquirer/prompts';
|
|
1
|
+
import { confirm, input } from '@inquirer/prompts';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { isValidAddress, normalizeAddressEvm, objMap, } from '@hyperlane-xyz/utils';
|
|
4
4
|
import { errorRed, log, logBlue, logGreen } from '../../logger.js';
|
|
5
|
+
import { sdkContractAddressesMap } from '../context.js';
|
|
5
6
|
import { runMultiChainSelectionStep } from '../utils/chains.js';
|
|
6
7
|
import { mergeYamlOrJson, readYamlOrJson } from '../utils/files.js';
|
|
7
8
|
import { readChainConfigsIfExists } from './chain.js';
|
|
@@ -44,6 +45,7 @@ export function isValidMultisigConfig(config) {
|
|
|
44
45
|
}
|
|
45
46
|
export async function createMultisigConfig({ format, outPath, chainConfigPath, }) {
|
|
46
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.');
|
|
47
49
|
const customChains = readChainConfigsIfExists(chainConfigPath);
|
|
48
50
|
const chains = await runMultiChainSelectionStep(customChains);
|
|
49
51
|
const result = {};
|
|
@@ -55,6 +57,13 @@ export async function createMultisigConfig({ format, outPath, chainConfigPath, }
|
|
|
55
57
|
result[chain] = lastConfig;
|
|
56
58
|
continue;
|
|
57
59
|
}
|
|
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
|
+
}
|
|
58
67
|
const thresholdInput = await input({
|
|
59
68
|
message: 'Enter threshold of signers (number)',
|
|
60
69
|
});
|
|
@@ -78,7 +87,7 @@ export async function createMultisigConfig({ format, outPath, chainConfigPath, }
|
|
|
78
87
|
mergeYamlOrJson(outPath, result, format);
|
|
79
88
|
}
|
|
80
89
|
else {
|
|
81
|
-
errorRed(`Multisig config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/
|
|
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`);
|
|
82
91
|
throw new Error('Invalid multisig config');
|
|
83
92
|
}
|
|
84
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multisig.js","sourceRoot":"","sources":["../../../src/config/multisig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"multisig.js","sourceRoot":"","sources":["../../../src/config/multisig.ts"],"names":[],"mappings":"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"}
|