@hyperlane-xyz/cli 4.0.0-beta → 4.0.0-beta2
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/src/avs/config.d.ts.map +1 -1
- package/dist/src/avs/config.js +6 -0
- package/dist/src/avs/config.js.map +1 -1
- package/dist/src/avs/stakeRegistry.d.ts +2 -2
- package/dist/src/avs/stakeRegistry.d.ts.map +1 -1
- package/dist/src/avs/stakeRegistry.js +3 -3
- package/dist/src/avs/stakeRegistry.js.map +1 -1
- package/dist/src/commands/avs.js +3 -3
- package/dist/src/commands/avs.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +2 -23
- package/dist/src/commands/config.js.map +1 -1
- 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 +4 -4
- package/dist/src/commands/core.js.map +1 -1
- package/dist/src/commands/hook.d.ts +12 -0
- package/dist/src/commands/hook.d.ts.map +1 -0
- package/dist/src/commands/hook.js +36 -0
- package/dist/src/commands/hook.js.map +1 -0
- package/dist/src/commands/ism.d.ts +12 -0
- package/dist/src/commands/ism.d.ts.map +1 -0
- package/dist/src/commands/ism.js +38 -0
- package/dist/src/commands/ism.js.map +1 -0
- package/dist/src/commands/options.d.ts +3 -0
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +13 -2
- 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 +12 -2
- package/dist/src/commands/registry.js.map +1 -1
- package/dist/src/commands/validator.d.ts.map +1 -1
- package/dist/src/commands/validator.js +47 -3
- package/dist/src/commands/validator.js.map +1 -1
- package/dist/src/commands/warp.d.ts +5 -4
- package/dist/src/commands/warp.d.ts.map +1 -1
- package/dist/src/commands/warp.js +58 -21
- package/dist/src/commands/warp.js.map +1 -1
- package/dist/src/config/agent.js +2 -2
- package/dist/src/config/agent.js.map +1 -1
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +98 -57
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/core.js +1 -1
- package/dist/src/config/core.js.map +1 -1
- package/dist/src/config/hooks.d.ts.map +1 -1
- package/dist/src/config/hooks.js +9 -6
- package/dist/src/config/hooks.js.map +1 -1
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +2 -1
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/warp.d.ts +1 -1
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +3 -2
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +5 -2
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/utils.js +1 -1
- package/dist/src/deploy/utils.js.map +1 -1
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +5 -7
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/send/message.d.ts.map +1 -1
- package/dist/src/send/message.js +3 -1
- 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 +5 -7
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/utils/chains.d.ts +0 -1
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +4 -20
- package/dist/src/utils/chains.js.map +1 -1
- package/dist/src/utils/cli-options.d.ts +9 -0
- package/dist/src/utils/cli-options.d.ts.map +1 -0
- package/dist/src/utils/cli-options.js +14 -0
- package/dist/src/utils/cli-options.js.map +1 -0
- package/dist/src/utils/input.d.ts +7 -0
- package/dist/src/utils/input.d.ts.map +1 -0
- package/dist/src/utils/input.js +37 -0
- package/dist/src/utils/input.js.map +1 -0
- package/dist/src/utils/tokens.d.ts +3 -1
- package/dist/src/utils/tokens.d.ts.map +1 -1
- package/dist/src/utils/tokens.js +26 -0
- package/dist/src/utils/tokens.js.map +1 -1
- package/dist/src/validator/address.d.ts.map +1 -1
- package/dist/src/validator/address.js.map +1 -1
- package/dist/src/validator/preFlightCheck.d.ts +4 -0
- package/dist/src/validator/preFlightCheck.d.ts.map +1 -0
- package/dist/src/validator/preFlightCheck.js +74 -0
- package/dist/src/validator/preFlightCheck.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { MerkleTreeHook__factory } from '@hyperlane-xyz/core';
|
|
2
|
+
import { HyperlaneCore, S3Validator } from '@hyperlane-xyz/sdk';
|
|
3
|
+
import { errorRed, logBlue, logGreen, warnYellow } from '../logger.js';
|
|
4
|
+
export const checkValidatorSetup = async (context, chain, validators) => {
|
|
5
|
+
const { multiProvider, registry } = context;
|
|
6
|
+
const addresses = await registry.getAddresses();
|
|
7
|
+
const core = HyperlaneCore.fromAddressesMap(addresses, multiProvider);
|
|
8
|
+
const validatorAnnounce = core.getContracts(chain).validatorAnnounce;
|
|
9
|
+
const merkleTreeHook = MerkleTreeHook__factory.connect(addresses[chain].merkleTreeHook, multiProvider.getProvider(chain));
|
|
10
|
+
let merkleTreeLatestCheckpointIndex;
|
|
11
|
+
try {
|
|
12
|
+
const [_, latestCheckpointIndex] = await merkleTreeHook.latestCheckpoint();
|
|
13
|
+
merkleTreeLatestCheckpointIndex = latestCheckpointIndex;
|
|
14
|
+
logBlue(`\nLatest checkpoint index of incremental merkle tree: ${merkleTreeLatestCheckpointIndex}\n`);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
warnYellow(`❗️ Failed to fetch latest checkpoint index of merkleTreeHook on ${chain}: ${err} \n`);
|
|
18
|
+
}
|
|
19
|
+
const errorSet = new Set();
|
|
20
|
+
const validatorsArray = Array.from(validators);
|
|
21
|
+
let validatorStorageLocations;
|
|
22
|
+
try {
|
|
23
|
+
validatorStorageLocations =
|
|
24
|
+
await validatorAnnounce.getAnnouncedStorageLocations(validatorsArray);
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
errorSet.add('Failed to read announced storage locations on chain.');
|
|
28
|
+
}
|
|
29
|
+
if (validatorStorageLocations) {
|
|
30
|
+
for (let i = 0; i < validatorsArray.length; i++) {
|
|
31
|
+
const validator = validatorsArray[i];
|
|
32
|
+
const storageLocations = validatorStorageLocations[i];
|
|
33
|
+
if (storageLocations.length === 0) {
|
|
34
|
+
errorRed(`❌ Validator ${validator} has not been announced\n`);
|
|
35
|
+
errorSet.add('Some validators have not been announced.');
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const s3StorageLocation = storageLocations[0];
|
|
39
|
+
let s3Validator;
|
|
40
|
+
try {
|
|
41
|
+
s3Validator = await S3Validator.fromStorageLocation(s3StorageLocation);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
errorRed(`❌ Failed to fetch storage locations for validator ${validator}, this may be due to the storage location not being an S3 bucket\n\n`);
|
|
45
|
+
errorSet.add('Failed to fetch storage locations for some validators.');
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const latestCheckpointIndex = await s3Validator.getLatestCheckpointIndex();
|
|
49
|
+
logBlue(`✅ Validator ${validator} announced\nstorage location: ${s3StorageLocation}\nlatest checkpoint index: ${latestCheckpointIndex}`);
|
|
50
|
+
// check is latestCheckpointIndex is within 1% of the merkleTreeLatestCheckpointIndex
|
|
51
|
+
if (merkleTreeLatestCheckpointIndex) {
|
|
52
|
+
const diff = Math.abs(latestCheckpointIndex - merkleTreeLatestCheckpointIndex);
|
|
53
|
+
if (diff > merkleTreeLatestCheckpointIndex / 100) {
|
|
54
|
+
errorRed(`❌ Validator is not signing the latest available checkpoint\n\n`);
|
|
55
|
+
errorSet.add(`Some validators are not signing the latest available checkpoint`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
logBlue(`✅ Validator is signing the latest available checkpoint\n\n`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
warnYellow(`❗️ Cannot compare validator checkpoint signatures to latest checkpoint in the incremental merkletree, merkletree checkpoint could not be read\n`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (errorSet.size > 0) {
|
|
67
|
+
errorRed(`\n❌ Validator pre flight check failed:\n${Array.from(errorSet).join('\n')}`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
logGreen(`\n✅ Validator pre flight check passed`);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=preFlightCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preFlightCheck.js","sourceRoot":"","sources":["../../../src/validator/preFlightCheck.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "4.0.0-
|
|
1
|
+
export declare const VERSION = "4.0.0-beta2";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,gBAAgB,CAAC"}
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '4.0.0-
|
|
1
|
+
export const VERSION = '4.0.0-beta2';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperlane-xyz/cli",
|
|
3
|
-
"version": "4.0.0-
|
|
3
|
+
"version": "4.0.0-beta2",
|
|
4
4
|
"description": "A command-line utility for common Hyperlane operations",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@aws-sdk/client-kms": "^3.577.0",
|
|
7
7
|
"@aws-sdk/client-s3": "^3.577.0",
|
|
8
|
-
"@hyperlane-xyz/registry": "1.
|
|
9
|
-
"@hyperlane-xyz/sdk": "4.0.0-
|
|
10
|
-
"@hyperlane-xyz/utils": "4.0.0-
|
|
8
|
+
"@hyperlane-xyz/registry": "2.1.1",
|
|
9
|
+
"@hyperlane-xyz/sdk": "4.0.0-beta2",
|
|
10
|
+
"@hyperlane-xyz/utils": "4.0.0-beta2",
|
|
11
11
|
"@inquirer/prompts": "^3.0.0",
|
|
12
12
|
"asn1.js": "^5.4.1",
|
|
13
13
|
"bignumber.js": "^9.1.1",
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
"zod-validation-error": "^3.3.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
+
"@ethersproject/abi": "*",
|
|
26
|
+
"@ethersproject/providers": "*",
|
|
25
27
|
"@types/mocha": "^10.0.1",
|
|
26
28
|
"@types/node": "^18.14.5",
|
|
27
29
|
"@types/yargs": "^17.0.24",
|