@hyperlane-xyz/cli 4.0.0-alpha.1 → 4.0.0-beta
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 +0 -0
- package/dist/src/commands/core.d.ts +1 -1
- package/dist/src/commands/core.d.ts.map +1 -1
- package/dist/src/commands/core.js +15 -33
- package/dist/src/commands/core.js.map +1 -1
- package/dist/src/commands/options.d.ts +1 -0
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +6 -0
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/registry.d.ts.map +1 -1
- package/dist/src/commands/registry.js +29 -2
- package/dist/src/commands/registry.js.map +1 -1
- package/dist/src/commands/types.d.ts +3 -0
- package/dist/src/commands/types.d.ts.map +1 -0
- package/dist/src/commands/types.js +2 -0
- package/dist/src/commands/types.js.map +1 -0
- package/dist/src/commands/warp.d.ts +1 -1
- package/dist/src/commands/warp.d.ts.map +1 -1
- package/dist/src/commands/warp.js +12 -9
- package/dist/src/commands/warp.js.map +1 -1
- package/dist/src/config/agent.d.ts +7 -0
- package/dist/src/config/agent.d.ts.map +1 -0
- package/dist/src/config/agent.js +40 -0
- package/dist/src/config/agent.js.map +1 -0
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +5 -7
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/core.d.ts +7 -0
- package/dist/src/config/core.d.ts.map +1 -0
- package/dist/src/config/core.js +48 -0
- package/dist/src/config/core.js.map +1 -0
- package/dist/src/config/hooks.d.ts +528 -368
- package/dist/src/config/hooks.d.ts.map +1 -1
- package/dist/src/config/hooks.js +78 -75
- package/dist/src/config/hooks.js.map +1 -1
- package/dist/src/config/ism.d.ts +61 -6
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +81 -42
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/utils.d.ts +3 -0
- package/dist/src/config/utils.d.ts.map +1 -0
- package/dist/src/config/utils.js +14 -0
- package/dist/src/config/utils.js.map +1 -0
- package/dist/src/config/warp.d.ts +2 -2
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +33 -15
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/deploy/dry-run.js +1 -1
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +62 -5
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/send/message.js +1 -1
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.js +1 -1
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/status/message.js +1 -1
- package/dist/src/status/message.js.map +1 -1
- package/dist/src/utils/chains.js +1 -1
- package/dist/src/utils/chains.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 +7 -0
- package/dist/src/utils/files.js.map +1 -1
- 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/package.json +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/config/hooks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/config/hooks.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA8B,CAAC;AACzD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAKlE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAa7D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAalD;AAED,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,aAAkC,EAClC,QAAgB,GACjB,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmCtB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uKAKlC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uKA2DnC,CAAC;AAGF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uKA0C3B,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uKA2BnC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uKA0B/B,CAAC"}
|
package/dist/src/config/hooks.js
CHANGED
|
@@ -5,14 +5,17 @@ import { z } from 'zod';
|
|
|
5
5
|
import { HookConfigSchema, HookType, } from '@hyperlane-xyz/sdk';
|
|
6
6
|
import { normalizeAddressEvm, objMap, toWei, } from '@hyperlane-xyz/utils';
|
|
7
7
|
import { errorRed, logBlue, logGreen, logRed } from '../logger.js';
|
|
8
|
-
import { runMultiChainSelectionStep } from '../utils/chains.js';
|
|
8
|
+
import { detectAndConfirmOrPrompt, runMultiChainSelectionStep, } from '../utils/chains.js';
|
|
9
9
|
import { readYamlOrJson } from '../utils/files.js';
|
|
10
|
+
import { callWithConfigCreationLogs } from './utils.js';
|
|
10
11
|
// TODO: deprecate in favor of CoreConfigSchema
|
|
11
12
|
const HooksConfigSchema = z.object({
|
|
12
13
|
default: HookConfigSchema,
|
|
13
14
|
required: HookConfigSchema,
|
|
14
15
|
});
|
|
15
16
|
const HooksConfigMapSchema = z.record(HooksConfigSchema);
|
|
17
|
+
const MAX_PROTOCOL_FEE_DEFAULT = toWei('0.1');
|
|
18
|
+
const PROTOCOL_FEE_DEFAULT = toWei('0');
|
|
16
19
|
export function presetHookConfigs(owner) {
|
|
17
20
|
return {
|
|
18
21
|
required: {
|
|
@@ -38,11 +41,15 @@ export function readHooksConfigMap(filePath) {
|
|
|
38
41
|
logGreen(`All hook configs in ${filePath} are valid for ${hooks}`);
|
|
39
42
|
return hooks;
|
|
40
43
|
}
|
|
41
|
-
export async function createHookConfig(context, selectMessage = 'Select hook type') {
|
|
42
|
-
let lastConfig;
|
|
44
|
+
export async function createHookConfig({ context, selectMessage = 'Select hook type', advanced = false, }) {
|
|
43
45
|
const hookType = await select({
|
|
44
46
|
message: selectMessage,
|
|
45
47
|
choices: [
|
|
48
|
+
{
|
|
49
|
+
value: HookType.AGGREGATION,
|
|
50
|
+
name: HookType.AGGREGATION,
|
|
51
|
+
description: 'Aggregate multiple hooks into a single hook (e.g. merkle tree + IGP) which will be called in sequence',
|
|
52
|
+
},
|
|
46
53
|
{
|
|
47
54
|
value: HookType.MERKLE_TREE,
|
|
48
55
|
name: HookType.MERKLE_TREE,
|
|
@@ -53,91 +60,84 @@ export async function createHookConfig(context, selectMessage = 'Select hook typ
|
|
|
53
60
|
name: HookType.PROTOCOL_FEE,
|
|
54
61
|
description: 'Charge fees for each message dispatch from this chain',
|
|
55
62
|
},
|
|
56
|
-
{
|
|
57
|
-
value: HookType.AGGREGATION,
|
|
58
|
-
name: HookType.AGGREGATION,
|
|
59
|
-
description: 'Aggregate multiple hooks into a single hook (e.g. merkle tree + IGP) which will be called in sequence',
|
|
60
|
-
},
|
|
61
63
|
],
|
|
62
64
|
pageSize: 10,
|
|
63
65
|
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
else {
|
|
74
|
-
throw new Error(`Invalid hook type: ${hookType}`);
|
|
66
|
+
switch (hookType) {
|
|
67
|
+
case HookType.AGGREGATION:
|
|
68
|
+
return createAggregationConfig(context, advanced);
|
|
69
|
+
case HookType.MERKLE_TREE:
|
|
70
|
+
return createMerkleTreeConfig();
|
|
71
|
+
case HookType.PROTOCOL_FEE:
|
|
72
|
+
return createProtocolFeeConfig(context, advanced);
|
|
73
|
+
default:
|
|
74
|
+
throw new Error(`Invalid hook type: ${hookType}`);
|
|
75
75
|
}
|
|
76
|
-
return lastConfig;
|
|
77
76
|
}
|
|
78
|
-
export
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
77
|
+
export const createMerkleTreeConfig = callWithConfigCreationLogs(async () => {
|
|
78
|
+
return { type: HookType.MERKLE_TREE };
|
|
79
|
+
}, HookType.MERKLE_TREE);
|
|
80
|
+
export const createProtocolFeeConfig = callWithConfigCreationLogs(async (context, advanced = false) => {
|
|
81
|
+
const unnormalizedOwner = !advanced && context.signer
|
|
82
|
+
? await context.signer.getAddress()
|
|
83
|
+
: await detectAndConfirmOrPrompt(async () => context.signer?.getAddress(), 'For protocol fee hook, enter', 'owner address', 'signer');
|
|
84
|
+
const owner = normalizeAddressEvm(unnormalizedOwner);
|
|
85
|
+
let beneficiary = owner;
|
|
86
|
+
const isBeneficiarySameAsOwner = advanced
|
|
87
|
+
? await confirm({
|
|
88
|
+
message: `Use this same address (${owner}) for the beneficiary?`,
|
|
89
|
+
})
|
|
90
|
+
: true;
|
|
91
|
+
if (!isBeneficiarySameAsOwner) {
|
|
92
|
+
const unnormalizedBeneficiary = await input({
|
|
93
|
+
message: 'Enter beneficiary address for protocol fee hook:',
|
|
94
94
|
});
|
|
95
|
+
beneficiary = normalizeAddressEvm(unnormalizedBeneficiary);
|
|
95
96
|
}
|
|
96
|
-
const beneficiaryAddress = normalizeAddressEvm(beneficiary);
|
|
97
97
|
// TODO: input in gwei, wei, etc
|
|
98
|
-
const maxProtocolFee =
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
const maxProtocolFee = advanced
|
|
99
|
+
? toWei(await input({
|
|
100
|
+
message: `Enter max protocol fee for protocol fee hook (in wei):`,
|
|
101
|
+
}))
|
|
102
|
+
: MAX_PROTOCOL_FEE_DEFAULT;
|
|
103
|
+
const protocolFee = advanced
|
|
104
|
+
? toWei(await input({
|
|
105
|
+
message: `Enter protocol fee for protocol fee hook (in wei):`,
|
|
106
|
+
}))
|
|
107
|
+
: PROTOCOL_FEE_DEFAULT;
|
|
104
108
|
if (BigNumberJs(protocolFee).gt(maxProtocolFee)) {
|
|
105
|
-
errorRed(
|
|
106
|
-
throw new Error('Invalid protocol fee');
|
|
109
|
+
errorRed(`Protocol fee (${protocolFee}) cannot be greater than max protocol fee (${maxProtocolFee}).`);
|
|
110
|
+
throw new Error('Invalid protocol fee.');
|
|
107
111
|
}
|
|
108
112
|
return {
|
|
109
113
|
type: HookType.PROTOCOL_FEE,
|
|
110
|
-
maxProtocolFee
|
|
111
|
-
protocolFee
|
|
112
|
-
beneficiary
|
|
113
|
-
owner
|
|
114
|
+
maxProtocolFee,
|
|
115
|
+
protocolFee,
|
|
116
|
+
beneficiary,
|
|
117
|
+
owner,
|
|
114
118
|
};
|
|
115
|
-
}
|
|
119
|
+
}, HookType.PROTOCOL_FEE);
|
|
116
120
|
// TODO: make this usable
|
|
117
|
-
export
|
|
118
|
-
const
|
|
121
|
+
export const createIGPConfig = callWithConfigCreationLogs(async (remotes) => {
|
|
122
|
+
const unnormalizedOwner = await input({
|
|
119
123
|
message: 'Enter owner address for IGP hook',
|
|
120
124
|
});
|
|
121
|
-
const
|
|
122
|
-
let beneficiary
|
|
123
|
-
let
|
|
124
|
-
|
|
125
|
+
const owner = normalizeAddressEvm(unnormalizedOwner);
|
|
126
|
+
let beneficiary = owner;
|
|
127
|
+
let oracleKey = owner;
|
|
128
|
+
const beneficiarySameAsOwner = await confirm({
|
|
125
129
|
message: 'Use this same address for the beneficiary and gasOracleKey?',
|
|
126
130
|
});
|
|
127
|
-
if (
|
|
128
|
-
|
|
129
|
-
oracleKey = ownerAddress;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
beneficiary = await input({
|
|
131
|
+
if (!beneficiarySameAsOwner) {
|
|
132
|
+
const unnormalizedBeneficiary = await input({
|
|
133
133
|
message: 'Enter beneficiary address for IGP hook',
|
|
134
134
|
});
|
|
135
|
-
|
|
135
|
+
beneficiary = normalizeAddressEvm(unnormalizedBeneficiary);
|
|
136
|
+
const unnormalizedOracleKey = await input({
|
|
136
137
|
message: 'Enter gasOracleKey address for IGP hook',
|
|
137
138
|
});
|
|
139
|
+
oracleKey = normalizeAddressEvm(unnormalizedOracleKey);
|
|
138
140
|
}
|
|
139
|
-
const beneficiaryAddress = normalizeAddressEvm(beneficiary);
|
|
140
|
-
const oracleKeyAddress = normalizeAddressEvm(oracleKey);
|
|
141
141
|
const overheads = {};
|
|
142
142
|
for (const chain of remotes) {
|
|
143
143
|
const overhead = parseInt(await input({
|
|
@@ -147,28 +147,31 @@ export async function createIGPConfig(remotes) {
|
|
|
147
147
|
}
|
|
148
148
|
return {
|
|
149
149
|
type: HookType.INTERCHAIN_GAS_PAYMASTER,
|
|
150
|
-
beneficiary
|
|
151
|
-
owner
|
|
152
|
-
oracleKey
|
|
150
|
+
beneficiary,
|
|
151
|
+
owner,
|
|
152
|
+
oracleKey,
|
|
153
153
|
overhead: overheads,
|
|
154
154
|
oracleConfig: {},
|
|
155
155
|
};
|
|
156
|
-
}
|
|
157
|
-
export
|
|
156
|
+
}, HookType.INTERCHAIN_GAS_PAYMASTER);
|
|
157
|
+
export const createAggregationConfig = callWithConfigCreationLogs(async (context, advanced = false) => {
|
|
158
158
|
const hooksNum = parseInt(await input({
|
|
159
159
|
message: 'Enter the number of hooks to aggregate (number)',
|
|
160
160
|
}), 10);
|
|
161
161
|
const hooks = [];
|
|
162
162
|
for (let i = 0; i < hooksNum; i++) {
|
|
163
163
|
logBlue(`Creating hook ${i + 1} of ${hooksNum} ...`);
|
|
164
|
-
hooks.push(await createHookConfig(
|
|
164
|
+
hooks.push(await createHookConfig({
|
|
165
|
+
context,
|
|
166
|
+
advanced,
|
|
167
|
+
}));
|
|
165
168
|
}
|
|
166
169
|
return {
|
|
167
170
|
type: HookType.AGGREGATION,
|
|
168
171
|
hooks,
|
|
169
172
|
};
|
|
170
|
-
}
|
|
171
|
-
export
|
|
173
|
+
}, HookType.AGGREGATION);
|
|
174
|
+
export const createRoutingConfig = callWithConfigCreationLogs(async (context, advanced = false) => {
|
|
172
175
|
const owner = await input({
|
|
173
176
|
message: 'Enter owner address for routing ISM',
|
|
174
177
|
});
|
|
@@ -179,7 +182,7 @@ export async function createRoutingConfig(context) {
|
|
|
179
182
|
await confirm({
|
|
180
183
|
message: `You are about to configure hook for remote chain ${chain}. Continue?`,
|
|
181
184
|
});
|
|
182
|
-
const config = await createHookConfig(context);
|
|
185
|
+
const config = await createHookConfig({ context, advanced });
|
|
183
186
|
domainsMap[chain] = config;
|
|
184
187
|
}
|
|
185
188
|
return {
|
|
@@ -187,5 +190,5 @@ export async function createRoutingConfig(context) {
|
|
|
187
190
|
owner: ownerAddress,
|
|
188
191
|
domains: domainsMap,
|
|
189
192
|
};
|
|
190
|
-
}
|
|
193
|
+
}, HookType.ROUTING);
|
|
191
194
|
//# 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,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAIL,gBAAgB,EAChB,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,mBAAmB,EACnB,MAAM,EACN,KAAK,GACN,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,
|
|
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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { AggregationIsmConfig, IsmConfig, IsmType
|
|
2
|
+
import { AggregationIsmConfig, IsmConfig, IsmType } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { CommandContext } from '../context/types.js';
|
|
4
4
|
export declare function parseIsmConfig(filePath: string): z.SafeParseReturnType<Record<string, string | {
|
|
5
5
|
type: IsmType.TEST_ISM;
|
|
@@ -63,9 +63,64 @@ export declare function readIsmConfig(filePath: string): Record<string, string |
|
|
|
63
63
|
} & {
|
|
64
64
|
type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
|
|
65
65
|
})>;
|
|
66
|
-
export declare function
|
|
67
|
-
export declare
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
export declare function createAdvancedIsmConfig(context: CommandContext): Promise<IsmConfig>;
|
|
67
|
+
export declare const createMerkleRootMultisigConfig: (...args: any[]) => Promise<{
|
|
68
|
+
validators: string[];
|
|
69
|
+
threshold: number;
|
|
70
|
+
} & {
|
|
71
|
+
type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
|
|
72
|
+
}>;
|
|
73
|
+
export declare const createMessageIdMultisigConfig: (...args: any[]) => Promise<{
|
|
74
|
+
validators: string[];
|
|
75
|
+
threshold: number;
|
|
76
|
+
} & {
|
|
77
|
+
type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
|
|
78
|
+
}>;
|
|
79
|
+
export declare const createTrustedRelayerConfig: (...args: any[]) => Promise<{
|
|
80
|
+
type: IsmType.TRUSTED_RELAYER;
|
|
81
|
+
relayer: string;
|
|
82
|
+
}>;
|
|
83
|
+
export declare const createAggregationConfig: (...args: any[]) => Promise<AggregationIsmConfig>;
|
|
84
|
+
export declare const createRoutingConfig: (...args: any[]) => Promise<string | {
|
|
85
|
+
type: IsmType.TEST_ISM;
|
|
86
|
+
} | {
|
|
87
|
+
type: IsmType.OP_STACK;
|
|
88
|
+
origin: string;
|
|
89
|
+
nativeBridge: string;
|
|
90
|
+
} | {
|
|
91
|
+
type: IsmType.TRUSTED_RELAYER;
|
|
92
|
+
relayer: string;
|
|
93
|
+
} | import("@hyperlane-xyz/sdk").RoutingIsmConfig | AggregationIsmConfig | ({
|
|
94
|
+
owner: string;
|
|
95
|
+
paused: boolean;
|
|
96
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
97
|
+
} & {
|
|
98
|
+
type: IsmType.PAUSABLE;
|
|
99
|
+
}) | ({
|
|
100
|
+
validators: string[];
|
|
101
|
+
threshold: number;
|
|
102
|
+
} & {
|
|
103
|
+
type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
|
|
104
|
+
})>;
|
|
105
|
+
export declare const createFallbackRoutingConfig: (...args: any[]) => Promise<string | {
|
|
106
|
+
type: IsmType.TEST_ISM;
|
|
107
|
+
} | {
|
|
108
|
+
type: IsmType.OP_STACK;
|
|
109
|
+
origin: string;
|
|
110
|
+
nativeBridge: string;
|
|
111
|
+
} | {
|
|
112
|
+
type: IsmType.TRUSTED_RELAYER;
|
|
113
|
+
relayer: string;
|
|
114
|
+
} | import("@hyperlane-xyz/sdk").RoutingIsmConfig | AggregationIsmConfig | ({
|
|
115
|
+
owner: string;
|
|
116
|
+
paused: boolean;
|
|
117
|
+
ownerOverrides?: Record<string, string> | undefined;
|
|
118
|
+
} & {
|
|
119
|
+
type: IsmType.PAUSABLE;
|
|
120
|
+
}) | ({
|
|
121
|
+
validators: string[];
|
|
122
|
+
threshold: number;
|
|
123
|
+
} & {
|
|
124
|
+
type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG;
|
|
125
|
+
})>;
|
|
71
126
|
//# 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,EACL,oBAAoB,EAEpB,SAAS,EAET,OAAO,
|
|
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,EACL,oBAAoB,EAEpB,SAAS,EAET,OAAO,EAGR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAsCrD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAI9C;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;IAU7C;AAiBD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,SAAS,CAAC,CAoCpB;AAED,eAAO,MAAM,8BAA8B;;;;;EAyB1C,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;EAoBzC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;EAoBtC,CAAC;AAEF,eAAO,MAAM,uBAAuB,mDA2BnC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;GA0B/B,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;GAuBvC,CAAC"}
|
package/dist/src/config/ism.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { input, select } from '@inquirer/prompts';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { IsmConfigSchema, IsmType, } from '@hyperlane-xyz/sdk';
|
|
4
|
+
import { errorRed, log, logBlue, logBoldUnderlinedRed, logRed, } from '../logger.js';
|
|
4
5
|
import { detectAndConfirmOrPrompt, runMultiChainSelectionStep, } from '../utils/chains.js';
|
|
5
6
|
import { readYamlOrJson } from '../utils/files.js';
|
|
7
|
+
import { callWithConfigCreationLogs } from './utils.js';
|
|
6
8
|
const IsmConfigMapSchema = z.record(IsmConfigSchema).refine((ismConfigMap) => {
|
|
7
9
|
// check if any key in IsmConfigMap is found in its own RoutingIsmConfigSchema.domains
|
|
8
10
|
for (const [key, config] of Object.entries(ismConfigMap)) {
|
|
@@ -35,15 +37,18 @@ export function readIsmConfig(filePath) {
|
|
|
35
37
|
return parsedConfig;
|
|
36
38
|
}
|
|
37
39
|
const ISM_TYPE_DESCRIPTIONS = {
|
|
38
|
-
[IsmType.
|
|
40
|
+
[IsmType.AGGREGATION]: 'You can aggregate multiple ISMs into one ISM via AggregationISM',
|
|
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",
|
|
39
42
|
[IsmType.MERKLE_ROOT_MULTISIG]: 'Validators need to sign the root of the merkle tree of all messages from origin chain',
|
|
43
|
+
[IsmType.MESSAGE_ID_MULTISIG]: 'Validators need to sign just this messageId',
|
|
40
44
|
[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
45
|
[IsmType.TEST_ISM]: 'ISM where you can deliver messages without any validation (WARNING: only for testing, do not use in production)',
|
|
46
|
+
[IsmType.TRUSTED_RELAYER]: 'Deliver messages from an authorized address',
|
|
45
47
|
};
|
|
46
|
-
export async function
|
|
48
|
+
export async function createAdvancedIsmConfig(context) {
|
|
49
|
+
logBlue('Creating a new advanced ISM config');
|
|
50
|
+
logBoldUnderlinedRed('WARNING: USE AT YOUR RISK.');
|
|
51
|
+
logRed('Advanced ISM configs require knowledge of different ISM types and how they work together topologically. If possible, use the basic ISM configs are recommended.');
|
|
47
52
|
const moduleType = await select({
|
|
48
53
|
message: 'Select ISM type',
|
|
49
54
|
choices: Object.entries(ISM_TYPE_DESCRIPTIONS).map(([value, description]) => ({
|
|
@@ -52,48 +57,69 @@ export async function createIsmConfig(context) {
|
|
|
52
57
|
})),
|
|
53
58
|
pageSize: 10,
|
|
54
59
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
switch (moduleType) {
|
|
61
|
+
case IsmType.AGGREGATION:
|
|
62
|
+
return createAggregationConfig(context);
|
|
63
|
+
case IsmType.FALLBACK_ROUTING:
|
|
64
|
+
return createFallbackRoutingConfig(context);
|
|
65
|
+
case IsmType.MERKLE_ROOT_MULTISIG:
|
|
66
|
+
return createMerkleRootMultisigConfig(context);
|
|
67
|
+
case IsmType.MESSAGE_ID_MULTISIG:
|
|
68
|
+
return createMessageIdMultisigConfig(context);
|
|
69
|
+
case IsmType.ROUTING:
|
|
70
|
+
return createRoutingConfig(context);
|
|
71
|
+
case IsmType.TEST_ISM:
|
|
72
|
+
return { type: IsmType.TEST_ISM };
|
|
73
|
+
case IsmType.TRUSTED_RELAYER:
|
|
74
|
+
return createTrustedRelayerConfig(context, true);
|
|
75
|
+
default:
|
|
76
|
+
throw new Error(`Invalid ISM type: ${moduleType}.`);
|
|
62
77
|
}
|
|
63
|
-
else if (moduleType === IsmType.AGGREGATION) {
|
|
64
|
-
return createAggregationConfig(context);
|
|
65
|
-
}
|
|
66
|
-
else if (moduleType === IsmType.TEST_ISM) {
|
|
67
|
-
return { type: IsmType.TEST_ISM };
|
|
68
|
-
}
|
|
69
|
-
else if (moduleType === IsmType.TRUSTED_RELAYER) {
|
|
70
|
-
return createTrustedRelayerConfig(context);
|
|
71
|
-
}
|
|
72
|
-
throw new Error(`Invalid ISM type: ${moduleType}`);
|
|
73
78
|
}
|
|
74
|
-
export
|
|
79
|
+
export const createMerkleRootMultisigConfig = callWithConfigCreationLogs(async () => {
|
|
80
|
+
const validatorsInput = await input({
|
|
81
|
+
message: 'Enter validator addresses (comma separated list) for merkle root multisig ISM:',
|
|
82
|
+
});
|
|
83
|
+
const validators = validatorsInput.split(',').map((v) => v.trim());
|
|
84
|
+
const thresholdInput = await input({
|
|
85
|
+
message: 'Enter threshold of validators (number) for merkle root multisig ISM:',
|
|
86
|
+
});
|
|
87
|
+
const threshold = parseInt(thresholdInput, 10);
|
|
88
|
+
if (threshold > validators.length) {
|
|
89
|
+
errorRed(`Merkle root multisig signer threshold (${threshold}) cannot be greater than total number of validators (${validators.length}).`);
|
|
90
|
+
throw new Error('Invalid protocol fee.');
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
type: IsmType.MERKLE_ROOT_MULTISIG,
|
|
94
|
+
threshold,
|
|
95
|
+
validators,
|
|
96
|
+
};
|
|
97
|
+
}, IsmType.MERKLE_ROOT_MULTISIG);
|
|
98
|
+
export const createMessageIdMultisigConfig = callWithConfigCreationLogs(async () => {
|
|
75
99
|
const thresholdInput = await input({
|
|
76
|
-
message: 'Enter threshold of validators (number) for multisig ISM',
|
|
100
|
+
message: 'Enter threshold of validators (number) for message ID multisig ISM',
|
|
77
101
|
});
|
|
78
102
|
const threshold = parseInt(thresholdInput, 10);
|
|
79
103
|
const validatorsInput = await input({
|
|
80
|
-
message: 'Enter validator addresses (comma separated list) for multisig ISM',
|
|
104
|
+
message: 'Enter validator addresses (comma separated list) for message ID multisig ISM',
|
|
81
105
|
});
|
|
82
106
|
const validators = validatorsInput.split(',').map((v) => v.trim());
|
|
83
107
|
return {
|
|
84
|
-
type,
|
|
108
|
+
type: IsmType.MESSAGE_ID_MULTISIG,
|
|
85
109
|
threshold,
|
|
86
110
|
validators,
|
|
87
111
|
};
|
|
88
|
-
}
|
|
89
|
-
export
|
|
90
|
-
const relayer =
|
|
112
|
+
}, IsmType.MESSAGE_ID_MULTISIG);
|
|
113
|
+
export const createTrustedRelayerConfig = callWithConfigCreationLogs(async (context, advanced = false) => {
|
|
114
|
+
const relayer = !advanced && context.signer
|
|
115
|
+
? await context.signer.getAddress()
|
|
116
|
+
: await detectAndConfirmOrPrompt(async () => context.signer?.getAddress(), 'For trusted relayer ISM, enter', 'relayer address', 'signer');
|
|
91
117
|
return {
|
|
92
118
|
type: IsmType.TRUSTED_RELAYER,
|
|
93
119
|
relayer,
|
|
94
120
|
};
|
|
95
|
-
}
|
|
96
|
-
export
|
|
121
|
+
}, IsmType.TRUSTED_RELAYER);
|
|
122
|
+
export const createAggregationConfig = callWithConfigCreationLogs(async (context) => {
|
|
97
123
|
const isms = parseInt(await input({
|
|
98
124
|
message: 'Enter the number of ISMs to aggregate (number)',
|
|
99
125
|
}), 10);
|
|
@@ -102,32 +128,45 @@ export async function createAggregationConfig(context) {
|
|
|
102
128
|
}), 10);
|
|
103
129
|
const modules = [];
|
|
104
130
|
for (let i = 0; i < isms; i++) {
|
|
105
|
-
modules.push(await
|
|
131
|
+
modules.push(await createAdvancedIsmConfig(context));
|
|
106
132
|
}
|
|
107
133
|
return {
|
|
108
134
|
type: IsmType.AGGREGATION,
|
|
109
135
|
modules,
|
|
110
136
|
threshold,
|
|
111
137
|
};
|
|
112
|
-
}
|
|
113
|
-
export
|
|
138
|
+
}, IsmType.AGGREGATION);
|
|
139
|
+
export const createRoutingConfig = callWithConfigCreationLogs(async (context) => {
|
|
114
140
|
const owner = await input({
|
|
115
141
|
message: 'Enter owner address for routing ISM',
|
|
116
142
|
});
|
|
117
143
|
const ownerAddress = owner;
|
|
118
|
-
const
|
|
144
|
+
const requireMultiple = true;
|
|
145
|
+
const chains = await runMultiChainSelectionStep(context.chainMetadata, 'Select chains to configure routing ISM for', requireMultiple);
|
|
119
146
|
const domainsMap = {};
|
|
120
147
|
for (const chain of chains) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
});
|
|
124
|
-
const config = await createIsmConfig(context);
|
|
148
|
+
log(`You are about to configure routing ISM from source chain ${chain}.`);
|
|
149
|
+
const config = await createAdvancedIsmConfig(context);
|
|
125
150
|
domainsMap[chain] = config;
|
|
126
151
|
}
|
|
127
152
|
return {
|
|
128
|
-
type,
|
|
153
|
+
type: IsmType.ROUTING,
|
|
129
154
|
owner: ownerAddress,
|
|
130
155
|
domains: domainsMap,
|
|
131
156
|
};
|
|
132
|
-
}
|
|
157
|
+
}, IsmType.ROUTING);
|
|
158
|
+
export const createFallbackRoutingConfig = callWithConfigCreationLogs(async (context) => {
|
|
159
|
+
const chains = await runMultiChainSelectionStep(context.chainMetadata, 'Select chains to configure fallback routing ISM for', true);
|
|
160
|
+
const domainsMap = {};
|
|
161
|
+
for (const chain of chains) {
|
|
162
|
+
log(`You are about to configure fallback routing ISM from source chain ${chain}.`);
|
|
163
|
+
const config = await createAdvancedIsmConfig(context);
|
|
164
|
+
domainsMap[chain] = config;
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
type: IsmType.FALLBACK_ROUTING,
|
|
168
|
+
owner: '',
|
|
169
|
+
domains: domainsMap,
|
|
170
|
+
};
|
|
171
|
+
}, IsmType.FALLBACK_ROUTING);
|
|
133
172
|
//# sourceMappingURL=ism.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/config/ism.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/config/ism.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { HookConfig, HookType, IsmConfig, IsmType } from '@hyperlane-xyz/sdk';
|
|
2
|
+
export declare function callWithConfigCreationLogs<T extends IsmConfig | HookConfig>(fn: (...args: any[]) => Promise<T>, type: IsmType | HookType): (...args: any[]) => Promise<T>;
|
|
3
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/config/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI9E,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,SAAS,GAAG,UAAU,EACzE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EAClC,IAAI,EAAE,OAAO,GAAG,QAAQ,aAED,GAAG,EAAE,KAAG,QAAQ,CAAC,CAAC,CAS1C"}
|