@hyperlane-xyz/cli 4.0.0-beta → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/cli.js +4 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/src/avs/check.d.ts +3 -0
  4. package/dist/src/avs/check.d.ts.map +1 -0
  5. package/dist/src/avs/check.js +236 -0
  6. package/dist/src/avs/check.js.map +1 -0
  7. package/dist/src/avs/config.d.ts +1 -0
  8. package/dist/src/avs/config.d.ts.map +1 -1
  9. package/dist/src/avs/config.js +8 -0
  10. package/dist/src/avs/config.js.map +1 -1
  11. package/dist/src/avs/stakeRegistry.d.ts +4 -3
  12. package/dist/src/avs/stakeRegistry.d.ts.map +1 -1
  13. package/dist/src/avs/stakeRegistry.js +4 -4
  14. package/dist/src/avs/stakeRegistry.js.map +1 -1
  15. package/dist/src/commands/avs.d.ts.map +1 -1
  16. package/dist/src/commands/avs.js +37 -15
  17. package/dist/src/commands/avs.js.map +1 -1
  18. package/dist/src/commands/config.d.ts.map +1 -1
  19. package/dist/src/commands/config.js +2 -23
  20. package/dist/src/commands/config.js.map +1 -1
  21. package/dist/src/commands/core.d.ts +1 -1
  22. package/dist/src/commands/core.d.ts.map +1 -1
  23. package/dist/src/commands/core.js +4 -4
  24. package/dist/src/commands/core.js.map +1 -1
  25. package/dist/src/commands/hook.d.ts +12 -0
  26. package/dist/src/commands/hook.d.ts.map +1 -0
  27. package/dist/src/commands/hook.js +36 -0
  28. package/dist/src/commands/hook.js.map +1 -0
  29. package/dist/src/commands/ism.d.ts +12 -0
  30. package/dist/src/commands/ism.d.ts.map +1 -0
  31. package/dist/src/commands/ism.js +38 -0
  32. package/dist/src/commands/ism.js.map +1 -0
  33. package/dist/src/commands/options.d.ts +5 -0
  34. package/dist/src/commands/options.d.ts.map +1 -1
  35. package/dist/src/commands/options.js +23 -2
  36. package/dist/src/commands/options.js.map +1 -1
  37. package/dist/src/commands/registry.d.ts.map +1 -1
  38. package/dist/src/commands/registry.js +12 -2
  39. package/dist/src/commands/registry.js.map +1 -1
  40. package/dist/src/commands/validator.d.ts.map +1 -1
  41. package/dist/src/commands/validator.js +47 -3
  42. package/dist/src/commands/validator.js.map +1 -1
  43. package/dist/src/commands/warp.d.ts +5 -4
  44. package/dist/src/commands/warp.d.ts.map +1 -1
  45. package/dist/src/commands/warp.js +80 -21
  46. package/dist/src/commands/warp.js.map +1 -1
  47. package/dist/src/config/agent.js +2 -2
  48. package/dist/src/config/agent.js.map +1 -1
  49. package/dist/src/config/chain.d.ts.map +1 -1
  50. package/dist/src/config/chain.js +98 -57
  51. package/dist/src/config/chain.js.map +1 -1
  52. package/dist/src/config/core.js +1 -1
  53. package/dist/src/config/core.js.map +1 -1
  54. package/dist/src/config/hooks.d.ts.map +1 -1
  55. package/dist/src/config/hooks.js +9 -6
  56. package/dist/src/config/hooks.js.map +1 -1
  57. package/dist/src/config/ism.d.ts.map +1 -1
  58. package/dist/src/config/ism.js +2 -1
  59. package/dist/src/config/ism.js.map +1 -1
  60. package/dist/src/config/warp.d.ts +1 -1
  61. package/dist/src/config/warp.d.ts.map +1 -1
  62. package/dist/src/config/warp.js +3 -2
  63. package/dist/src/config/warp.js.map +1 -1
  64. package/dist/src/deploy/core.d.ts.map +1 -1
  65. package/dist/src/deploy/core.js +5 -3
  66. package/dist/src/deploy/core.js.map +1 -1
  67. package/dist/src/deploy/utils.d.ts.map +1 -1
  68. package/dist/src/deploy/utils.js +21 -6
  69. package/dist/src/deploy/utils.js.map +1 -1
  70. package/dist/src/deploy/warp.d.ts.map +1 -1
  71. package/dist/src/deploy/warp.js +5 -7
  72. package/dist/src/deploy/warp.js.map +1 -1
  73. package/dist/src/logger.d.ts +3 -0
  74. package/dist/src/logger.d.ts.map +1 -1
  75. package/dist/src/logger.js +5 -0
  76. package/dist/src/logger.js.map +1 -1
  77. package/dist/src/send/message.d.ts.map +1 -1
  78. package/dist/src/send/message.js +3 -1
  79. package/dist/src/send/message.js.map +1 -1
  80. package/dist/src/send/transfer.d.ts +4 -4
  81. package/dist/src/send/transfer.d.ts.map +1 -1
  82. package/dist/src/send/transfer.js +5 -7
  83. package/dist/src/send/transfer.js.map +1 -1
  84. package/dist/src/utils/chains.d.ts +0 -1
  85. package/dist/src/utils/chains.d.ts.map +1 -1
  86. package/dist/src/utils/chains.js +4 -20
  87. package/dist/src/utils/chains.js.map +1 -1
  88. package/dist/src/utils/cli-options.d.ts +9 -0
  89. package/dist/src/utils/cli-options.d.ts.map +1 -0
  90. package/dist/src/utils/cli-options.js +14 -0
  91. package/dist/src/utils/cli-options.js.map +1 -0
  92. package/dist/src/utils/input.d.ts +7 -0
  93. package/dist/src/utils/input.d.ts.map +1 -0
  94. package/dist/src/utils/input.js +37 -0
  95. package/dist/src/utils/input.js.map +1 -0
  96. package/dist/src/utils/tokens.d.ts +3 -1
  97. package/dist/src/utils/tokens.d.ts.map +1 -1
  98. package/dist/src/utils/tokens.js +26 -0
  99. package/dist/src/utils/tokens.js.map +1 -1
  100. package/dist/src/validator/address.d.ts.map +1 -1
  101. package/dist/src/validator/address.js.map +1 -1
  102. package/dist/src/validator/preFlightCheck.d.ts +4 -0
  103. package/dist/src/validator/preFlightCheck.d.ts.map +1 -0
  104. package/dist/src/validator/preFlightCheck.js +74 -0
  105. package/dist/src/validator/preFlightCheck.js.map +1 -0
  106. package/dist/src/validator/utils.d.ts +9 -0
  107. package/dist/src/validator/utils.d.ts.map +1 -0
  108. package/dist/src/validator/utils.js +46 -0
  109. package/dist/src/validator/utils.js.map +1 -0
  110. package/dist/src/version.d.ts +1 -1
  111. package/dist/src/version.d.ts.map +1 -1
  112. package/dist/src/version.js +1 -1
  113. package/dist/src/version.js.map +1 -1
  114. package/package.json +6 -4
package/dist/cli.js CHANGED
@@ -6,6 +6,8 @@ import { avsCommand } from './src/commands/avs.js';
6
6
  import { configCommand } from './src/commands/config.js';
7
7
  import { coreCommand } from './src/commands/core.js';
8
8
  import { deployCommand } from './src/commands/deploy.js';
9
+ import { hookCommand } from './src/commands/hook.js';
10
+ import { ismCommand } from './src/commands/ism.js';
9
11
  import { keyCommandOption, logFormatCommandOption, logLevelCommandOption, overrideRegistryUriCommandOption, registryUriCommandOption, skipConfirmationOption, } from './src/commands/options.js';
10
12
  import { registryCommand } from './src/commands/registry.js';
11
13
  import { sendCommand } from './src/commands/send.js';
@@ -40,6 +42,8 @@ try {
40
42
  .command(configCommand)
41
43
  .command(coreCommand)
42
44
  .command(deployCommand)
45
+ .command(hookCommand)
46
+ .command(ismCommand)
43
47
  .command(registryCommand)
44
48
  .command(sendCommand)
45
49
  .command(statusCommand)
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { CommandContext } from '../context/types.js';
2
+ export declare const checkValidatorAvsSetup: (chain: string, context: CommandContext, operatorKeyPath?: string, operatorAddress?: string) => Promise<void>;
3
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/avs/check.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAoCrD,eAAO,MAAM,sBAAsB,UAC1B,MAAM,WACJ,cAAc,oBACL,MAAM,oBACN,MAAM,kBAoCzB,CAAC"}
@@ -0,0 +1,236 @@
1
+ import { ECDSAStakeRegistry__factory, IDelegationManager__factory, MerkleTreeHook__factory, ValidatorAnnounce__factory, } from '@hyperlane-xyz/core';
2
+ import { ProtocolType, isObjEmpty } from '@hyperlane-xyz/utils';
3
+ import { errorRed, log, logBlue, logBlueKeyValue, logBoldBlue, logDebug, logGreen, warnYellow, } from '../logger.js';
4
+ import { indentYamlOrJson } from '../utils/files.js';
5
+ import { getLatestMerkleTreeCheckpointIndex, getLatestValidatorCheckpointIndexAndUrl, getValidatorStorageLocations, isValidatorSigningLatestCheckpoint, } from '../validator/utils.js';
6
+ import { avsAddresses } from './config.js';
7
+ import { readOperatorFromEncryptedJson } from './stakeRegistry.js';
8
+ export const checkValidatorAvsSetup = async (chain, context, operatorKeyPath, operatorAddress) => {
9
+ logBlue(`Checking AVS validator status for ${chain}, ${!operatorKeyPath ? 'this may take up to a minute to run' : ''}...`);
10
+ const { multiProvider } = context;
11
+ const topLevelErrors = [];
12
+ let operatorWallet;
13
+ if (operatorKeyPath) {
14
+ operatorWallet = await readOperatorFromEncryptedJson(operatorKeyPath);
15
+ }
16
+ const avsOperatorRecord = await getAvsOperators(chain, multiProvider, topLevelErrors, operatorAddress ?? operatorWallet?.address);
17
+ await setOperatorName(chain, avsOperatorRecord, multiProvider, topLevelErrors);
18
+ if (!isObjEmpty(avsOperatorRecord)) {
19
+ await setValidatorInfo(context, avsOperatorRecord, topLevelErrors);
20
+ }
21
+ logOutput(avsOperatorRecord, topLevelErrors);
22
+ };
23
+ const getAvsOperators = async (chain, multiProvider, topLevelErrors, operatorKey) => {
24
+ const avsOperators = {};
25
+ const ecdsaStakeRegistryAddress = getEcdsaStakeRegistryAddress(chain, topLevelErrors);
26
+ if (!ecdsaStakeRegistryAddress) {
27
+ return avsOperators;
28
+ }
29
+ const ecdsaStakeRegistry = ECDSAStakeRegistry__factory.connect(ecdsaStakeRegistryAddress, multiProvider.getProvider(chain));
30
+ if (operatorKey) {
31
+ // If operator key is provided, only fetch the operator's validator info
32
+ const signingKey = await ecdsaStakeRegistry.getLastestOperatorSigningKey(operatorKey);
33
+ avsOperators[signingKey] = {
34
+ operatorAddress: operatorKey,
35
+ chains: {},
36
+ };
37
+ return avsOperators;
38
+ }
39
+ const filter = ecdsaStakeRegistry.filters.SigningKeyUpdate(null, null);
40
+ const provider = multiProvider.getProvider(chain);
41
+ const latestBlock = await provider.getBlockNumber();
42
+ const blockLimit = 50000; // 50k blocks per query
43
+ let fromBlock = 1625972; // when ecdsaStakeRegistry was deployed
44
+ while (fromBlock < latestBlock) {
45
+ const toBlock = Math.min(fromBlock + blockLimit, latestBlock);
46
+ const logs = await ecdsaStakeRegistry.queryFilter(filter, fromBlock, toBlock);
47
+ logs.forEach((log) => {
48
+ const event = ecdsaStakeRegistry.interface.parseLog(log);
49
+ const operatorKey = event.args.operator;
50
+ const signingKey = event.args.newSigningKey;
51
+ if (avsOperators[signingKey]) {
52
+ avsOperators[signingKey].operatorAddress = operatorKey;
53
+ }
54
+ else {
55
+ avsOperators[signingKey] = {
56
+ operatorAddress: operatorKey,
57
+ chains: {},
58
+ };
59
+ }
60
+ });
61
+ fromBlock = toBlock + 1;
62
+ }
63
+ return avsOperators;
64
+ };
65
+ const getAVSMetadataURI = async (chain, operatorAddress, multiProvider) => {
66
+ const delegationManagerAddress = avsAddresses[chain]['delegationManager'];
67
+ const delegationManager = IDelegationManager__factory.connect(delegationManagerAddress, multiProvider.getProvider(chain));
68
+ const filter = delegationManager.filters.OperatorMetadataURIUpdated(operatorAddress, null);
69
+ const provider = multiProvider.getProvider(chain);
70
+ const latestBlock = await provider.getBlockNumber();
71
+ const blockLimit = 50000; // 50k blocks per query
72
+ let fromBlock = 17445563;
73
+ while (fromBlock < latestBlock) {
74
+ const toBlock = Math.min(fromBlock + blockLimit, latestBlock);
75
+ const logs = await delegationManager.queryFilter(filter, fromBlock, toBlock);
76
+ if (logs.length > 0) {
77
+ const event = delegationManager.interface.parseLog(logs[0]);
78
+ return event.args.metadataURI;
79
+ }
80
+ fromBlock = toBlock + 1;
81
+ }
82
+ return undefined;
83
+ };
84
+ const setOperatorName = async (chain, avsOperatorRecord, multiProvider, topLevelErrors = []) => {
85
+ for (const [_, validatorInfo] of Object.entries(avsOperatorRecord)) {
86
+ const metadataURI = await getAVSMetadataURI(chain, validatorInfo.operatorAddress, multiProvider);
87
+ if (metadataURI) {
88
+ const operatorName = await fetchOperatorName(metadataURI);
89
+ if (operatorName) {
90
+ validatorInfo.operatorName = operatorName;
91
+ }
92
+ else {
93
+ topLevelErrors.push(`❗️ Failed to fetch operator name from metadataURI: ${metadataURI}`);
94
+ }
95
+ }
96
+ }
97
+ };
98
+ const setValidatorInfo = async (context, avsOperatorRecord, topLevelErrors) => {
99
+ const { multiProvider, registry, chainMetadata } = context;
100
+ const failedToReadChains = [];
101
+ const validatorAddresses = Object.keys(avsOperatorRecord);
102
+ const chains = await registry.getChains();
103
+ const addresses = await registry.getAddresses();
104
+ for (const chain of chains) {
105
+ // skip if chain is not an Ethereum chain
106
+ if (chainMetadata[chain].protocol !== ProtocolType.Ethereum)
107
+ continue;
108
+ const chainAddresses = addresses[chain];
109
+ // skip if no contract addresses are found for this chain
110
+ if (chainAddresses === undefined)
111
+ continue;
112
+ if (!chainAddresses.validatorAnnounce) {
113
+ topLevelErrors.push(`❗️ ValidatorAnnounce is not deployed on ${chain}`);
114
+ }
115
+ if (!chainAddresses.merkleTreeHook) {
116
+ topLevelErrors.push(`❗️ MerkleTreeHook is not deployed on ${chain}`);
117
+ }
118
+ if (!chainAddresses.validatorAnnounce || !chainAddresses.merkleTreeHook) {
119
+ continue;
120
+ }
121
+ const validatorAnnounce = ValidatorAnnounce__factory.connect(chainAddresses.validatorAnnounce, multiProvider.getProvider(chain));
122
+ const merkleTreeHook = MerkleTreeHook__factory.connect(chainAddresses.merkleTreeHook, multiProvider.getProvider(chain));
123
+ const latestMerkleTreeCheckpointIndex = await getLatestMerkleTreeCheckpointIndex(merkleTreeHook, chain);
124
+ const validatorStorageLocations = await getValidatorStorageLocations(validatorAnnounce, validatorAddresses, chain);
125
+ if (!validatorStorageLocations) {
126
+ failedToReadChains.push(chain);
127
+ continue;
128
+ }
129
+ for (let i = 0; i < validatorAddresses.length; i++) {
130
+ const validatorAddress = validatorAddresses[i];
131
+ const storageLocation = validatorStorageLocations[i];
132
+ const warnings = [];
133
+ // Skip if no storage location is found, address is not validating on this chain or if storage location string doesn't not start with s3://
134
+ if (storageLocation.length === 0 ||
135
+ !storageLocation[0].startsWith('s3://')) {
136
+ continue;
137
+ }
138
+ const [latestValidatorCheckpointIndex, latestCheckpointUrl] = (await getLatestValidatorCheckpointIndexAndUrl(storageLocation[0])) ?? [
139
+ undefined,
140
+ undefined,
141
+ ];
142
+ if (!latestMerkleTreeCheckpointIndex) {
143
+ warnings.push(`❗️ Failed to fetch latest checkpoint index of merkleTreeHook on ${chain}.`);
144
+ }
145
+ if (!latestValidatorCheckpointIndex) {
146
+ warnings.push(`❗️ Failed to fetch latest signed checkpoint index of validator on ${chain}, this is likely due to failing to read an S3 bucket`);
147
+ }
148
+ let validatorSynced = undefined;
149
+ if (latestMerkleTreeCheckpointIndex && latestValidatorCheckpointIndex) {
150
+ validatorSynced = isValidatorSigningLatestCheckpoint(latestValidatorCheckpointIndex, latestMerkleTreeCheckpointIndex);
151
+ }
152
+ const chainInfo = {
153
+ storageLocation: latestCheckpointUrl,
154
+ latestMerkleTreeCheckpointIndex,
155
+ latestValidatorCheckpointIndex,
156
+ validatorSynced,
157
+ warnings,
158
+ };
159
+ const validatorInfo = avsOperatorRecord[validatorAddress];
160
+ if (validatorInfo) {
161
+ validatorInfo.chains[chain] = chainInfo;
162
+ }
163
+ }
164
+ }
165
+ if (failedToReadChains.length > 0) {
166
+ topLevelErrors.push(`❗️ Failed to read storage locations onchain for ${failedToReadChains.join(', ')}`);
167
+ }
168
+ };
169
+ const logOutput = (avsKeysRecord, topLevelErrors) => {
170
+ if (topLevelErrors.length > 0) {
171
+ for (const error of topLevelErrors) {
172
+ errorRed(error);
173
+ }
174
+ }
175
+ for (const [validatorAddress, data] of Object.entries(avsKeysRecord)) {
176
+ log('\n\n');
177
+ if (data.operatorName)
178
+ logBlueKeyValue('Operator name', data.operatorName);
179
+ logBlueKeyValue('Operator address', data.operatorAddress);
180
+ logBlueKeyValue('Validator address', validatorAddress);
181
+ if (!isObjEmpty(data.chains)) {
182
+ logBoldBlue(indentYamlOrJson('Validating on...', 2));
183
+ for (const [chain, chainInfo] of Object.entries(data.chains)) {
184
+ logBoldBlue(indentYamlOrJson(chain, 2));
185
+ if (chainInfo.storageLocation) {
186
+ logBlueKeyValue(indentYamlOrJson('Storage location', 2), chainInfo.storageLocation);
187
+ }
188
+ if (chainInfo.latestMerkleTreeCheckpointIndex) {
189
+ logBlueKeyValue(indentYamlOrJson('Latest merkle tree checkpoint index', 2), String(chainInfo.latestMerkleTreeCheckpointIndex));
190
+ }
191
+ if (chainInfo.latestValidatorCheckpointIndex) {
192
+ logBlueKeyValue(indentYamlOrJson('Latest validator checkpoint index', 2), String(chainInfo.latestValidatorCheckpointIndex));
193
+ if (chainInfo.validatorSynced) {
194
+ logGreen(indentYamlOrJson('✅ Validator is signing latest checkpoint', 2));
195
+ }
196
+ else {
197
+ errorRed(indentYamlOrJson('❌ Validator is not signing latest checkpoint', 2));
198
+ }
199
+ }
200
+ else {
201
+ errorRed(indentYamlOrJson('❌ Failed to fetch latest signed checkpoint index', 2));
202
+ }
203
+ if (chainInfo.warnings && chainInfo.warnings.length > 0) {
204
+ warnYellow(indentYamlOrJson('The following warnings were encountered:', 2));
205
+ for (const warning of chainInfo.warnings) {
206
+ warnYellow(indentYamlOrJson(warning, 3));
207
+ }
208
+ }
209
+ }
210
+ }
211
+ else {
212
+ logBlue('Validator is not validating on any chain');
213
+ }
214
+ }
215
+ };
216
+ const getEcdsaStakeRegistryAddress = (chain, topLevelErrors) => {
217
+ try {
218
+ return avsAddresses[chain]['ecdsaStakeRegistry'];
219
+ }
220
+ catch (err) {
221
+ topLevelErrors.push(`❗️ EcdsaStakeRegistry address not found for ${chain}`);
222
+ return undefined;
223
+ }
224
+ };
225
+ const fetchOperatorName = async (metadataURI) => {
226
+ try {
227
+ const response = await fetch(metadataURI);
228
+ const data = await response.json();
229
+ return data['name'];
230
+ }
231
+ catch (err) {
232
+ logDebug(`Failed to fetch operator name from ${metadataURI}: ${err}`);
233
+ return undefined;
234
+ }
235
+ };
236
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/avs/check.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { ChainMap } from '@hyperlane-xyz/sdk';
2
2
  import { Address } from '@hyperlane-xyz/utils';
3
3
  interface AVSContracts {
4
4
  avsDirectory: Address;
5
+ delegationManager: Address;
5
6
  proxyAdmin: Address;
6
7
  ecdsaStakeRegistry: Address;
7
8
  hyperlaneServiceManager: Address;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/avs/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,UAAU,YAAY;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAGD,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,YAAY,CAO/C,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/avs/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,UAAU,YAAY;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAGD,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,YAAY,CAe/C,CAAC"}
@@ -2,9 +2,17 @@
2
2
  export const avsAddresses = {
3
3
  holesky: {
4
4
  avsDirectory: '0x055733000064333CaDDbC92763c58BF0192fFeBf',
5
+ delegationManager: '0xA44151489861Fe9e3055d95adC98FbD462B948e7',
5
6
  proxyAdmin: '0x33dB966328Ea213b0f76eF96CA368AB37779F065',
6
7
  ecdsaStakeRegistry: '0xFfa913705484C9BAea32Ffe9945BeA099A1DFF72',
7
8
  hyperlaneServiceManager: '0xc76E477437065093D353b7d56c81ff54D167B0Ab',
8
9
  },
10
+ ethereum: {
11
+ avsDirectory: '0x135dda560e946695d6f155dacafc6f1f25c1f5af',
12
+ delegationManager: '0x39053D51B77DC0d36036Fc1fCc8Cb819df8Ef37A',
13
+ proxyAdmin: '0x75EE15Ee1B4A75Fa3e2fDF5DF3253c25599cc659',
14
+ ecdsaStakeRegistry: '0x272CF0BB70D3B4f79414E0823B426d2EaFd48910',
15
+ hyperlaneServiceManager: '0xe8E59c6C8B56F2c178f63BCFC4ce5e5e2359c8fc',
16
+ },
9
17
  };
10
18
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/avs/config.ts"],"names":[],"mappings":"AAUA,yBAAyB;AACzB,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,OAAO,EAAE;QACP,YAAY,EAAE,4CAA4C;QAC1D,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAChE,uBAAuB,EAAE,4CAA4C;KACtE;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/avs/config.ts"],"names":[],"mappings":"AAWA,yBAAyB;AACzB,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,OAAO,EAAE;QACP,YAAY,EAAE,4CAA4C;QAC1D,iBAAiB,EAAE,4CAA4C;QAC/D,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAChE,uBAAuB,EAAE,4CAA4C;KACtE;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,4CAA4C;QAC1D,iBAAiB,EAAE,4CAA4C;QAC/D,UAAU,EAAE,4CAA4C;QACxD,kBAAkB,EAAE,4CAA4C;QAChE,uBAAuB,EAAE,4CAA4C;KACtE;CACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BigNumberish, utils } from 'ethers';
1
+ import { BigNumberish, Wallet, utils } from 'ethers';
2
2
  import { ChainName } from '@hyperlane-xyz/sdk';
3
3
  import { Address } from '@hyperlane-xyz/utils';
4
4
  import { WriteCommandContext } from '../context/types.js';
@@ -7,15 +7,16 @@ export type SignatureWithSaltAndExpiryStruct = {
7
7
  salt: utils.BytesLike;
8
8
  expiry: BigNumberish;
9
9
  };
10
- export declare function registerOperatorWithSignature({ context, chain, operatorKeyPath, avsSigningKey, }: {
10
+ export declare function registerOperatorWithSignature({ context, chain, operatorKeyPath, avsSigningKeyAddress, }: {
11
11
  context: WriteCommandContext;
12
12
  chain: ChainName;
13
13
  operatorKeyPath: string;
14
- avsSigningKey: Address;
14
+ avsSigningKeyAddress: Address;
15
15
  }): Promise<void>;
16
16
  export declare function deregisterOperator({ context, chain, operatorKeyPath, }: {
17
17
  context: WriteCommandContext;
18
18
  chain: ChainName;
19
19
  operatorKeyPath: string;
20
20
  }): Promise<void>;
21
+ export declare function readOperatorFromEncryptedJson(operatorKeyPath: string): Promise<Wallet>;
21
22
  //# sourceMappingURL=stakeRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stakeRegistry.d.ts","sourceRoot":"","sources":["../../../src/avs/stakeRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAMrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,wBAAsB,6BAA6B,CAAC,EAClD,OAAO,EACP,KAAK,EACL,eAAe,EACf,aAAa,GACd,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB,iBA+CA;AAED,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,KAAK,EACL,eAAe,GAChB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,iBAoBA"}
1
+ {"version":3,"file":"stakeRegistry.d.ts","sourceRoot":"","sources":["../../../src/avs/stakeRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAMrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,wBAAsB,6BAA6B,CAAC,EAClD,OAAO,EACP,KAAK,EACL,eAAe,EACf,oBAAoB,GACrB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;CAC/B,iBA+CA;AAED,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,KAAK,EACL,eAAe,GAChB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,iBAoBA;AAED,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,CASjB"}
@@ -4,7 +4,7 @@ import { ECDSAStakeRegistry__factory, TestAVSDirectory__factory, } from '@hyperl
4
4
  import { log, logBlue } from '../logger.js';
5
5
  import { readFileAtPath, resolvePath } from '../utils/files.js';
6
6
  import { avsAddresses } from './config.js';
7
- export async function registerOperatorWithSignature({ context, chain, operatorKeyPath, avsSigningKey, }) {
7
+ export async function registerOperatorWithSignature({ context, chain, operatorKeyPath, avsSigningKeyAddress, }) {
8
8
  const { multiProvider } = context;
9
9
  const operatorAsSigner = await readOperatorFromEncryptedJson(operatorKeyPath);
10
10
  const provider = multiProvider.getProvider(chain);
@@ -20,8 +20,8 @@ export async function registerOperatorWithSignature({ context, chain, operatorKe
20
20
  logBlue(`Operator ${operatorAsSigner.address} already registered to Hyperlane AVS`);
21
21
  return;
22
22
  }
23
- log(`Registering operator ${operatorAsSigner.address} attesting ${avsSigningKey} with signature on ${chain}...`);
24
- await multiProvider.handleTx(chain, ecdsaStakeRegistry.registerOperatorWithSignature(operatorSignature, avsSigningKey));
23
+ log(`Registering operator ${operatorAsSigner.address} attesting ${avsSigningKeyAddress} with signature on ${chain}...`);
24
+ await multiProvider.handleTx(chain, ecdsaStakeRegistry.registerOperatorWithSignature(operatorSignature, avsSigningKeyAddress));
25
25
  logBlue(`Operator ${operatorAsSigner.address} registered to Hyperlane AVS`);
26
26
  }
27
27
  export async function deregisterOperator({ context, chain, operatorKeyPath, }) {
@@ -35,7 +35,7 @@ export async function deregisterOperator({ context, chain, operatorKeyPath, }) {
35
35
  await multiProvider.handleTx(chain, ecdsaStakeRegistry.deregisterOperator());
36
36
  logBlue(`Operator ${operatorAsSigner.address} deregistered from Hyperlane AVS`);
37
37
  }
38
- async function readOperatorFromEncryptedJson(operatorKeyPath) {
38
+ export async function readOperatorFromEncryptedJson(operatorKeyPath) {
39
39
  const encryptedJson = readFileAtPath(resolvePath(operatorKeyPath));
40
40
  const keyFilePassword = await password({
41
41
  mask: '*',
@@ -1 +1 @@
1
- {"version":3,"file":"stakeRegistry.js","sourceRoot":"","sources":["../../../src/avs/stakeRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stakeRegistry.js","sourceRoot":"","sources":["../../../src/avs/stakeRegistry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"avs.d.ts","sourceRoot":"","sources":["../../../src/commands/avs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAY/C;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,aAUxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAiBvD,CAAC"}
1
+ {"version":3,"file":"avs.d.ts","sourceRoot":"","sources":["../../../src/commands/avs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAmB/C;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,aAWxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAQvD,CAAC"}
@@ -1,5 +1,8 @@
1
+ import { ProtocolType } from '@hyperlane-xyz/utils';
2
+ import { checkValidatorAvsSetup } from '../avs/check.js';
1
3
  import { deregisterOperator, registerOperatorWithSignature, } from '../avs/stakeRegistry.js';
2
- import { log } from '../logger.js';
4
+ import { errorRed, log } from '../logger.js';
5
+ import { avsChainCommandOption, demandOption, operatorKeyPathCommandOption, } from './options.js';
3
6
  /**
4
7
  * Parent command
5
8
  */
@@ -9,6 +12,7 @@ export const avsCommand = {
9
12
  builder: (yargs) => yargs
10
13
  .command(registerCommand)
11
14
  .command(deregisterCommand)
15
+ .command(checkCommand)
12
16
  .version(false)
13
17
  .demandCommand(),
14
18
  handler: () => log('Command required'),
@@ -17,18 +21,9 @@ export const avsCommand = {
17
21
  * Registration command
18
22
  */
19
23
  export const registrationOptions = {
20
- chain: {
21
- type: 'string',
22
- description: 'Chain to interact with the AVS on',
23
- demandOption: true,
24
- choices: ['holesky', 'ethereum'],
25
- },
26
- operatorKeyPath: {
27
- type: 'string',
28
- description: 'Path to the operator key file',
29
- demandOption: true,
30
- },
31
- avsSigningKey: {
24
+ chain: avsChainCommandOption,
25
+ operatorKeyPath: demandOption(operatorKeyPathCommandOption),
26
+ avsSigningKeyAddress: {
32
27
  type: 'string',
33
28
  description: 'Address of the AVS signing key',
34
29
  demandOption: true,
@@ -38,12 +33,12 @@ const registerCommand = {
38
33
  command: 'register',
39
34
  describe: 'Register operator with the AVS',
40
35
  builder: registrationOptions,
41
- handler: async ({ context, chain, operatorKeyPath, avsSigningKey }) => {
36
+ handler: async ({ context, chain, operatorKeyPath, avsSigningKeyAddress, }) => {
42
37
  await registerOperatorWithSignature({
43
38
  context,
44
39
  chain,
45
40
  operatorKeyPath,
46
- avsSigningKey,
41
+ avsSigningKeyAddress,
47
42
  });
48
43
  process.exit(0);
49
44
  },
@@ -61,4 +56,31 @@ const deregisterCommand = {
61
56
  process.exit(0);
62
57
  },
63
58
  };
59
+ const checkCommand = {
60
+ command: 'check',
61
+ describe: 'Check AVS',
62
+ builder: {
63
+ chain: avsChainCommandOption,
64
+ operatorKeyPath: operatorKeyPathCommandOption,
65
+ operatorAddress: {
66
+ type: 'string',
67
+ description: 'Address of the operator to check',
68
+ },
69
+ },
70
+ handler: async ({ context, chain, operatorKeyPath, operatorAddress }) => {
71
+ const { multiProvider } = context;
72
+ // validate chain
73
+ if (!multiProvider.hasChain(chain)) {
74
+ errorRed(`❌ No metadata found for ${chain}. Ensure it is included in your configured registry.`);
75
+ process.exit(1);
76
+ }
77
+ const chainMetadata = multiProvider.getChainMetadata(chain);
78
+ if (chainMetadata.protocol !== ProtocolType.Ethereum) {
79
+ errorRed(`\n❌ Validator AVS check only supports EVM chains. Exiting.`);
80
+ process.exit(1);
81
+ }
82
+ await checkValidatorAvsSetup(chain, context, operatorKeyPath, operatorAddress);
83
+ process.exit(0);
84
+ },
85
+ };
64
86
  //# sourceMappingURL=avs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avs.js","sourceRoot":"","sources":["../../../src/commands/avs.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,iBAAiB,CAAC;SAC1B,OAAO,CAAC,KAAK,CAAC;SACd,aAAa,EAAE;IACpB,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B;IAC3D,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,mCAAmC;QAChD,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;KACjC;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,+BAA+B;QAC5C,YAAY,EAAE,IAAI;KACnB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gCAAgC;QAC7C,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,eAAe,GAIhB;IACH,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,EAAE;QACpE,MAAM,6BAA6B,CAAC;YAClC,OAAO;YACP,KAAK;YACL,eAAe;YACf,aAAa;SACd,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,iBAAiB,GAGlB;IACH,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,kCAAkC;IAC5C,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE;QACrD,MAAM,kBAAkB,CAAC;YACvB,OAAO;YACP,KAAK;YACL,eAAe;SAChB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"avs.js","sourceRoot":"","sources":["../../../src/commands/avs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAWtC;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAU3B,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAWtC;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAM3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { createChainConfig, readChainConfigs } from '../config/chain.js';
1
+ import { readChainConfigs } from '../config/chain.js';
2
2
  import { readIsmConfig } from '../config/ism.js';
3
3
  import { readMultisigConfig } from '../config/multisig.js';
4
4
  import { readWarpRouteDeployConfig } from '../config/warp.js';
@@ -10,30 +10,9 @@ import { inputFileCommandOption } from './options.js';
10
10
  export const configCommand = {
11
11
  command: 'config',
12
12
  describe: 'Create or validate Hyperlane configs',
13
- builder: (yargs) => yargs
14
- .command(createCommand)
15
- .command(validateCommand)
16
- .version(false)
17
- .demandCommand(),
13
+ builder: (yargs) => yargs.command(validateCommand).version(false).demandCommand(),
18
14
  handler: () => log('Command required'),
19
15
  };
20
- /**
21
- * Create commands
22
- */
23
- const createCommand = {
24
- command: 'create',
25
- describe: 'Create a new Hyperlane config',
26
- builder: (yargs) => yargs.command(createChainConfigCommand).version(false).demandCommand(),
27
- handler: () => log('Command required'),
28
- };
29
- const createChainConfigCommand = {
30
- command: 'chain',
31
- describe: 'Create a new, minimal Hyperlane chain config (aka chain metadata)',
32
- handler: async ({ context }) => {
33
- await createChainConfig({ context });
34
- process.exit(0);
35
- },
36
- };
37
16
  /**
38
17
  * Validate commands
39
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export declare const deploy: CommandModuleWithWriteContext<{
16
16
  dryRun: string;
17
17
  fromAddress: string;
18
18
  }>;
19
- export declare const configure: CommandModuleWithContext<{
19
+ export declare const init: CommandModuleWithContext<{
20
20
  advanced: boolean;
21
21
  config: string;
22
22
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/commands/core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAC;AAiB7B;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,aAWzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,6BAA6B,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CA6BA,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CA2BA,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,wBAAwB,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAkCA,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/commands/core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAC;AAiB7B;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,aAWzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,6BAA6B,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CA6BA,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CA2BA,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,wBAAwB,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAkCA,CAAC"}
@@ -13,8 +13,8 @@ export const coreCommand = {
13
13
  command: 'core',
14
14
  describe: 'Manage core Hyperlane contracts & configs',
15
15
  builder: (yargs) => yargs
16
- .command(configure)
17
16
  .command(deploy)
17
+ .command(init)
18
18
  .command(read)
19
19
  .version(false)
20
20
  .demandCommand(),
@@ -52,8 +52,8 @@ export const deploy = {
52
52
  process.exit(0);
53
53
  },
54
54
  };
55
- export const configure = {
56
- command: 'configure',
55
+ export const init = {
56
+ command: 'init',
57
57
  describe: 'Create a core configuration, including ISMs and hooks.',
58
58
  builder: {
59
59
  advanced: {
@@ -76,7 +76,7 @@ export const configure = {
76
76
  };
77
77
  export const read = {
78
78
  command: 'read',
79
- describe: 'Reads onchain ISM & Hook configurations for given addresses',
79
+ describe: 'Reads onchain Core configuration for a given mailbox address',
80
80
  builder: {
81
81
  chain: {
82
82
  ...chainCommandOption,