@hyperlane-xyz/cli 3.11.1 → 3.12.1-alpha.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 +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/src/avs/config.d.ts +11 -0
- package/dist/src/avs/config.d.ts.map +1 -0
- package/dist/src/avs/config.js +10 -0
- package/dist/src/avs/config.js.map +1 -0
- package/dist/src/avs/stakeRegistry.d.ts +20 -0
- package/dist/src/avs/stakeRegistry.d.ts.map +1 -0
- package/dist/src/avs/stakeRegistry.js +92 -0
- package/dist/src/avs/stakeRegistry.js.map +1 -0
- package/dist/src/commands/avs.d.ts +12 -0
- package/dist/src/commands/avs.d.ts.map +1 -0
- package/dist/src/commands/avs.js +62 -0
- package/dist/src/commands/avs.js.map +1 -0
- package/dist/src/commands/config.js +8 -8
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +7 -5
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/hook.js +2 -2
- package/dist/src/commands/hook.js.map +1 -1
- package/dist/src/commands/ism.js +2 -2
- package/dist/src/commands/ism.js.map +1 -1
- package/dist/src/commands/options.d.ts +6 -5
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +14 -9
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/send.js +2 -2
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/commands/signCommands.d.ts.map +1 -1
- package/dist/src/commands/signCommands.js +3 -1
- package/dist/src/commands/signCommands.js.map +1 -1
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +21 -9
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/consts.d.ts +1 -0
- package/dist/src/consts.d.ts.map +1 -1
- package/dist/src/consts.js +1 -0
- package/dist/src/consts.js.map +1 -1
- package/dist/src/context/context.d.ts +1 -1
- package/dist/src/context/context.d.ts.map +1 -1
- package/dist/src/context/context.js +6 -2
- package/dist/src/context/context.js.map +1 -1
- package/dist/src/context/types.d.ts +1 -0
- package/dist/src/context/types.d.ts.map +1 -1
- package/dist/src/deploy/agent.js +1 -1
- package/dist/src/deploy/agent.js.map +1 -1
- package/dist/src/deploy/utils.js +4 -3
- package/dist/src/deploy/utils.js.map +1 -1
- package/dist/src/submit/submit.d.ts +5 -0
- package/dist/src/submit/submit.d.ts.map +1 -0
- package/dist/src/submit/submit.js +30 -0
- package/dist/src/submit/submit.js.map +1 -0
- package/dist/src/submit/types.d.ts +18 -0
- package/dist/src/submit/types.d.ts.map +1 -0
- package/dist/src/submit/types.js +2 -0
- package/dist/src/submit/types.js.map +1 -0
- package/dist/src/utils/balances.d.ts +2 -2
- package/dist/src/utils/balances.d.ts.map +1 -1
- package/dist/src/utils/balances.js +8 -3
- package/dist/src/utils/balances.js.map +1 -1
- package/dist/src/utils/chains.d.ts +1 -0
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +16 -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 +8 -0
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/utils/keys.d.ts +5 -3
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +14 -11
- package/dist/src/utils/keys.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 +3 -3
package/dist/cli.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import yargs from 'yargs';
|
|
4
4
|
import './env.js';
|
|
5
|
+
import { avsCommand } from './src/commands/avs.js';
|
|
5
6
|
import { chainsCommand } from './src/commands/chains.js';
|
|
6
7
|
import { configCommand } from './src/commands/config.js';
|
|
7
8
|
import { deployCommand } from './src/commands/deploy.js';
|
|
@@ -34,6 +35,7 @@ try {
|
|
|
34
35
|
},
|
|
35
36
|
contextMiddleware,
|
|
36
37
|
])
|
|
38
|
+
.command(avsCommand)
|
|
37
39
|
.command(chainsCommand)
|
|
38
40
|
.command(configCommand)
|
|
39
41
|
.command(deployCommand)
|
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,11 @@
|
|
|
1
|
+
import { ChainMap } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import { Address } from '@hyperlane-xyz/utils';
|
|
3
|
+
interface AVSContracts {
|
|
4
|
+
avsDirectory: Address;
|
|
5
|
+
proxyAdmin: Address;
|
|
6
|
+
ecdsaStakeRegistry: Address;
|
|
7
|
+
hyperlaneServiceManager: Address;
|
|
8
|
+
}
|
|
9
|
+
export declare const avsAddresses: ChainMap<AVSContracts>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// TODO: move to registry
|
|
2
|
+
export const avsAddresses = {
|
|
3
|
+
holesky: {
|
|
4
|
+
avsDirectory: '0x055733000064333CaDDbC92763c58BF0192fFeBf',
|
|
5
|
+
proxyAdmin: '0x6e7b29cb2a7617405b4d30c6f84bbd51b4bb4be8',
|
|
6
|
+
ecdsaStakeRegistry: '0x275aCcCa81cAD931dC6fB6E49ED233Bc99Bed4A7',
|
|
7
|
+
hyperlaneServiceManager: '0x16B710b86CAd07E6F1C531861a16F5feC29dba37',
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BigNumberish } from 'ethers';
|
|
2
|
+
import { BytesLike } from 'ethers/lib/utils.js';
|
|
3
|
+
import { ChainName } from '@hyperlane-xyz/sdk';
|
|
4
|
+
import { WriteCommandContext } from '../context/types.js';
|
|
5
|
+
export type SignatureWithSaltAndExpiryStruct = {
|
|
6
|
+
signature: BytesLike;
|
|
7
|
+
salt: BytesLike;
|
|
8
|
+
expiry: BigNumberish;
|
|
9
|
+
};
|
|
10
|
+
export declare function registerOperatorWithSignature({ context, chain, operatorKeyPath, }: {
|
|
11
|
+
context: WriteCommandContext;
|
|
12
|
+
chain: ChainName;
|
|
13
|
+
operatorKeyPath: string;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
export declare function deregisterOperator({ context, chain, operatorKeyPath, }: {
|
|
16
|
+
context: WriteCommandContext;
|
|
17
|
+
chain: ChainName;
|
|
18
|
+
operatorKeyPath: string;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=stakeRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stakeRegistry.d.ts","sourceRoot":"","sources":["../../../src/avs/stakeRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAyB,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,SAAS,EAA4B,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO1D,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,wBAAsB,6BAA6B,CAAC,EAClD,OAAO,EACP,KAAK,EACL,eAAe,GAChB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,iBAiDA;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,iBA+BA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { password } from '@inquirer/prompts';
|
|
2
|
+
import { ethers, utils } from 'ethers';
|
|
3
|
+
import { joinSignature, keccak256 } from 'ethers/lib/utils.js';
|
|
4
|
+
import { ECDSAStakeRegistry__factory } from '@hyperlane-xyz/core';
|
|
5
|
+
import { addressToBytes32 } from '@hyperlane-xyz/utils';
|
|
6
|
+
import { MINIMUM_AVS_GAS } from '../consts.js';
|
|
7
|
+
import { runPreflightChecksForChains } from '../deploy/utils.js';
|
|
8
|
+
import { log, logBlue } from '../logger.js';
|
|
9
|
+
import { readFileAtPath, resolvePath } from '../utils/files.js';
|
|
10
|
+
import { avsAddresses } from './config.js';
|
|
11
|
+
export async function registerOperatorWithSignature({ context, chain, operatorKeyPath, }) {
|
|
12
|
+
const { multiProvider, signer } = context;
|
|
13
|
+
await runPreflightChecksForChains({
|
|
14
|
+
context,
|
|
15
|
+
chains: [chain],
|
|
16
|
+
minGas: MINIMUM_AVS_GAS,
|
|
17
|
+
});
|
|
18
|
+
const provider = multiProvider.getProvider(chain);
|
|
19
|
+
const connectedSigner = signer.connect(provider);
|
|
20
|
+
// Read the encrypted JSON key from the file
|
|
21
|
+
const encryptedJson = readFileAtPath(resolvePath(operatorKeyPath));
|
|
22
|
+
const keyFilePassword = await password({
|
|
23
|
+
mask: '*',
|
|
24
|
+
message: 'Enter the password for the operator key file: ',
|
|
25
|
+
});
|
|
26
|
+
const operator = await ethers.Wallet.fromEncryptedJson(encryptedJson, keyFilePassword);
|
|
27
|
+
const stakeRegistryAddress = avsAddresses[chain].ecdsaStakeRegistry;
|
|
28
|
+
const ecdsaStakeRegistry = ECDSAStakeRegistry__factory.connect(stakeRegistryAddress, connectedSigner);
|
|
29
|
+
const domainId = multiProvider.getDomainId(chain);
|
|
30
|
+
const operatorSignature = await getOperatorSignature(domainId, avsAddresses[chain].hyperlaneServiceManager, avsAddresses[chain].avsDirectory, operator);
|
|
31
|
+
log(`Registering operator ${operator.address} with signature on ${chain}...`);
|
|
32
|
+
await multiProvider.handleTx(chain, ecdsaStakeRegistry.registerOperatorWithSignature(operator.address, operatorSignature));
|
|
33
|
+
logBlue(`Operator ${operator.address} registered to Hyperlane AVS`);
|
|
34
|
+
}
|
|
35
|
+
export async function deregisterOperator({ context, chain, operatorKeyPath, }) {
|
|
36
|
+
const { multiProvider } = context;
|
|
37
|
+
// Read the encrypted JSON key from the file
|
|
38
|
+
const encryptedJson = readFileAtPath(resolvePath(operatorKeyPath));
|
|
39
|
+
const keyFilePassword = await password({
|
|
40
|
+
mask: '*',
|
|
41
|
+
message: 'Enter the password for the operator key file: ',
|
|
42
|
+
});
|
|
43
|
+
const operatorAsSigner = await ethers.Wallet.fromEncryptedJson(encryptedJson, keyFilePassword);
|
|
44
|
+
const provider = multiProvider.getProvider(chain);
|
|
45
|
+
const connectedSigner = operatorAsSigner.connect(provider);
|
|
46
|
+
const stakeRegistryAddress = avsAddresses[chain].ecdsaStakeRegistry;
|
|
47
|
+
const ecdsaStakeRegistry = ECDSAStakeRegistry__factory.connect(stakeRegistryAddress, connectedSigner);
|
|
48
|
+
log(`Deregistering operator ${operatorAsSigner.address} on ${chain}...`);
|
|
49
|
+
await multiProvider.handleTx(chain, ecdsaStakeRegistry.deregisterOperator());
|
|
50
|
+
logBlue(`Operator ${operatorAsSigner.address} deregistered from Hyperlane AVS`);
|
|
51
|
+
}
|
|
52
|
+
async function getOperatorSignature(domain, serviceManager, avsDirectory, operator) {
|
|
53
|
+
const operatorRegistrationTypehash = keccak256(ethers.utils.toUtf8Bytes('OperatorAVSRegistration(address operator,address avs,bytes32 salt,uint256 expiry)'));
|
|
54
|
+
const salt = utils.hexZeroPad(utils.randomBytes(32), 32);
|
|
55
|
+
// give a expiry timestamp 1 week from now
|
|
56
|
+
const expiry = utils.hexZeroPad(utils.hexlify(Math.floor(Date.now() / 1000) + 60 * 60 * 24 * 7), 32);
|
|
57
|
+
const structHash = keccak256(ethers.utils.solidityPack(['bytes32', 'bytes32', 'bytes32', 'bytes32', 'bytes32'], [
|
|
58
|
+
operatorRegistrationTypehash,
|
|
59
|
+
addressToBytes32(operator.address),
|
|
60
|
+
addressToBytes32(serviceManager),
|
|
61
|
+
salt,
|
|
62
|
+
expiry,
|
|
63
|
+
]));
|
|
64
|
+
const domainSeparator = getDomainSeparator(domain, avsDirectory);
|
|
65
|
+
const signingHash = ethers.utils.keccak256(ethers.utils.solidityPack(['bytes', 'bytes32', 'bytes32'], [ethers.utils.toUtf8Bytes('\x19\x01'), domainSeparator, structHash]));
|
|
66
|
+
// Eigenlayer's AVSDirectory expects the signature over raw signed hash instead of EIP-191 compatible toEthSignedMessageHash
|
|
67
|
+
// see https://github.com/Layr-Labs/eigenlayer-contracts/blob/ef2ea4a7459884f381057aa9bbcd29c7148cfb63/src/contracts/libraries/EIP1271SignatureUtils.sol#L22
|
|
68
|
+
const signature = operator
|
|
69
|
+
._signingKey()
|
|
70
|
+
.signDigest(ethers.utils.arrayify(signingHash));
|
|
71
|
+
return {
|
|
72
|
+
signature: joinSignature(signature),
|
|
73
|
+
salt,
|
|
74
|
+
expiry,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function getDomainSeparator(domain, avsDirectory) {
|
|
78
|
+
if (!avsDirectory) {
|
|
79
|
+
throw new Error('Invalid domain for operator to the AVS, currently only Ethereum Mainnet and Holesky are supported.');
|
|
80
|
+
}
|
|
81
|
+
const domainTypehash = keccak256(ethers.utils.toUtf8Bytes('EIP712Domain(string name,uint256 chainId,address verifyingContract)'));
|
|
82
|
+
const domainBN = utils.hexZeroPad(utils.hexlify(domain), 32);
|
|
83
|
+
const eigenlayerDigest = keccak256(ethers.utils.toUtf8Bytes('EigenLayer'));
|
|
84
|
+
const domainSeparator = keccak256(ethers.utils.solidityPack(['bytes32', 'bytes32', 'bytes32', 'bytes32'], [
|
|
85
|
+
domainTypehash,
|
|
86
|
+
eigenlayerDigest,
|
|
87
|
+
domainBN,
|
|
88
|
+
addressToBytes32(avsDirectory),
|
|
89
|
+
]));
|
|
90
|
+
return domainSeparator;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=stakeRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stakeRegistry.js","sourceRoot":"","sources":["../../../src/avs/stakeRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CommandModule, Options } from 'yargs';
|
|
2
|
+
/**
|
|
3
|
+
* Parent command
|
|
4
|
+
*/
|
|
5
|
+
export declare const avsCommand: CommandModule;
|
|
6
|
+
/**
|
|
7
|
+
* Registration command
|
|
8
|
+
*/
|
|
9
|
+
export declare const registrationOptions: {
|
|
10
|
+
[k: string]: Options;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=avs.d.ts.map
|
|
@@ -0,0 +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;AAW/C;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,aAUxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAYvD,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { deregisterOperator, registerOperatorWithSignature, } from '../avs/stakeRegistry.js';
|
|
2
|
+
import { log } from '../logger.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parent command
|
|
5
|
+
*/
|
|
6
|
+
export const avsCommand = {
|
|
7
|
+
command: 'avs',
|
|
8
|
+
describe: 'Interact with the Hyperlane AVS',
|
|
9
|
+
builder: (yargs) => yargs
|
|
10
|
+
.command(registerCommand)
|
|
11
|
+
.command(deregisterCommand)
|
|
12
|
+
.version(false)
|
|
13
|
+
.demandCommand(),
|
|
14
|
+
handler: () => log('Command required'),
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Registration command
|
|
18
|
+
*/
|
|
19
|
+
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
|
+
};
|
|
32
|
+
const registerCommand = {
|
|
33
|
+
command: 'register',
|
|
34
|
+
describe: 'Register operator with the AVS',
|
|
35
|
+
builder: {
|
|
36
|
+
...registrationOptions,
|
|
37
|
+
},
|
|
38
|
+
handler: async ({ context, chain, operatorKeyPath }) => {
|
|
39
|
+
await registerOperatorWithSignature({
|
|
40
|
+
context,
|
|
41
|
+
chain,
|
|
42
|
+
operatorKeyPath,
|
|
43
|
+
});
|
|
44
|
+
process.exit(0);
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
const deregisterCommand = {
|
|
48
|
+
command: 'deregister',
|
|
49
|
+
describe: 'Deregister yourself with the AVS',
|
|
50
|
+
builder: {
|
|
51
|
+
...registrationOptions,
|
|
52
|
+
},
|
|
53
|
+
handler: async ({ context, chain, operatorKeyPath }) => {
|
|
54
|
+
await deregisterOperator({
|
|
55
|
+
context,
|
|
56
|
+
chain,
|
|
57
|
+
operatorKeyPath,
|
|
58
|
+
});
|
|
59
|
+
process.exit(0);
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=avs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avs.js","sourceRoot":"","sources":["../../../src/commands/avs.ts"],"names":[],"mappings":"AAIA,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;CACF,CAAC;AAEF,MAAM,eAAe,GAGhB;IACH,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE;QACP,GAAG,mBAAmB;KACvB;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE;QACrD,MAAM,6BAA6B,CAAC;YAClC,OAAO;YACP,KAAK;YACL,eAAe;SAChB,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;QACP,GAAG,mBAAmB;KACvB;IACD,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"}
|
|
@@ -4,7 +4,7 @@ import { createIsmConfigMap, readIsmConfig } from '../config/ism.js';
|
|
|
4
4
|
import { createMultisigConfig, readMultisigConfig, } from '../config/multisig.js';
|
|
5
5
|
import { createWarpRouteDeployConfig, readWarpRouteDeployConfig, } from '../config/warp.js';
|
|
6
6
|
import { log, logGreen } from '../logger.js';
|
|
7
|
-
import {
|
|
7
|
+
import { inputFileCommandOption, outputFileCommandOption } from './options.js';
|
|
8
8
|
/**
|
|
9
9
|
* Parent command
|
|
10
10
|
*/
|
|
@@ -45,7 +45,7 @@ const createIsmConfigCommand = {
|
|
|
45
45
|
command: 'ism',
|
|
46
46
|
describe: 'Create a basic or advanced ISM config for a validator set',
|
|
47
47
|
builder: {
|
|
48
|
-
out:
|
|
48
|
+
out: outputFileCommandOption('./configs/ism.yaml'),
|
|
49
49
|
advanced: {
|
|
50
50
|
type: 'boolean',
|
|
51
51
|
describe: 'Create an advanced ISM configuration',
|
|
@@ -66,7 +66,7 @@ const createHookConfigCommand = {
|
|
|
66
66
|
command: 'hooks',
|
|
67
67
|
describe: 'Create a new hooks config (required & default)',
|
|
68
68
|
builder: {
|
|
69
|
-
out:
|
|
69
|
+
out: outputFileCommandOption('./configs/hooks.yaml'),
|
|
70
70
|
},
|
|
71
71
|
handler: async ({ context, out }) => {
|
|
72
72
|
await createHooksConfigMap({ context, outPath: out });
|
|
@@ -77,7 +77,7 @@ const createWarpRouteDeployConfigCommand = {
|
|
|
77
77
|
command: 'warp',
|
|
78
78
|
describe: 'Create a new Warp Route deployment config',
|
|
79
79
|
builder: {
|
|
80
|
-
out:
|
|
80
|
+
out: outputFileCommandOption('./configs/warp-route-deployment.yaml'),
|
|
81
81
|
},
|
|
82
82
|
handler: async ({ context, out }) => {
|
|
83
83
|
await createWarpRouteDeployConfig({ context, outPath: out });
|
|
@@ -103,7 +103,7 @@ const validateChainCommand = {
|
|
|
103
103
|
command: 'chain',
|
|
104
104
|
describe: 'Validate a chain config file',
|
|
105
105
|
builder: {
|
|
106
|
-
path:
|
|
106
|
+
path: inputFileCommandOption,
|
|
107
107
|
},
|
|
108
108
|
handler: async ({ path }) => {
|
|
109
109
|
readChainConfigs(path);
|
|
@@ -115,7 +115,7 @@ const validateIsmCommand = {
|
|
|
115
115
|
command: 'ism',
|
|
116
116
|
describe: 'Validate the basic ISM config file',
|
|
117
117
|
builder: {
|
|
118
|
-
path:
|
|
118
|
+
path: inputFileCommandOption,
|
|
119
119
|
},
|
|
120
120
|
handler: async ({ path }) => {
|
|
121
121
|
readMultisigConfig(path);
|
|
@@ -127,7 +127,7 @@ const validateIsmAdvancedCommand = {
|
|
|
127
127
|
command: 'ism-advanced',
|
|
128
128
|
describe: 'Validate the advanced ISM config file',
|
|
129
129
|
builder: {
|
|
130
|
-
path:
|
|
130
|
+
path: inputFileCommandOption,
|
|
131
131
|
},
|
|
132
132
|
handler: async ({ path }) => {
|
|
133
133
|
readIsmConfig(path);
|
|
@@ -139,7 +139,7 @@ const validateWarpCommand = {
|
|
|
139
139
|
command: 'warp',
|
|
140
140
|
describe: 'Validate a Warp Route deployment config file',
|
|
141
141
|
builder: {
|
|
142
|
-
path:
|
|
142
|
+
path: inputFileCommandOption,
|
|
143
143
|
},
|
|
144
144
|
handler: async ({ path }) => {
|
|
145
145
|
readWarpRouteDeployConfig(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,sCAAsC;IAChD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,KAAK,CAAC;SACd,aAAa,EAAE;IACpB,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAkB;IACnC,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,+BAA+B;IACzC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,wBAAwB,CAAC;SACjC,OAAO,CAAC,sBAAsB,CAAC;SAC/B,OAAO,CAAC,uBAAuB,CAAC;SAChC,OAAO,CAAC,kCAAkC,CAAC;SAC3C,OAAO,CAAC,KAAK,CAAC;SACd,aAAa,EAAE;IACpB,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC;CACvC,CAAC;AAEF,MAAM,wBAAwB,GAAiC;IAC7D,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,mEAAmE;IAC7E,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,sBAAsB,GAGvB;IACH,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,2DAA2D;IACrE,OAAO,EAAE;QACP,GAAG,EAAE,uBAAuB,CAAC,oBAAoB,CAAC;QAClD,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,sCAAsC;YAChD,OAAO,EAAE,KAAK;SACf;KACF;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,uBAAuB,GAA8C;IACzE,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,gDAAgD;IAC1D,OAAO,EAAE;QACP,GAAG,EAAE,uBAAuB,CAAC,sBAAsB,CAAC;KACrD;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;QAClC,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,kCAAkC,GAEnC;IACH,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,2CAA2C;IACrD,OAAO,EAAE;QACP,GAAG,EAAE,uBAAuB,CAAC,sCAAsC,CAAC;KACrE;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;QAClC,MAAM,2BAA2B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAkB;IACrC,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,0CAA0C;IACpD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,oBAAoB,CAAC;SAC7B,OAAO,CAAC,kBAAkB,CAAC;SAC3B,OAAO,CAAC,0BAA0B,CAAC;SACnC,OAAO,CAAC,mBAAmB,CAAC;SAC5B,OAAO,CAAC,KAAK,CAAC;SACd,aAAa,EAAE;IACpB,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC;CACvC,CAAC;AAEF,MAAM,oBAAoB,GAA+C;IACvE,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,8BAA8B;IACxC,OAAO,EAAE;QACP,IAAI,EAAE,sBAAsB;KAC7B;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,QAAQ,CAAC,wBAAwB,IAAI,YAAY,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,kBAAkB,GAA+C;IACrE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,oCAAoC;IAC9C,OAAO,EAAE;QACP,IAAI,EAAE,sBAAsB;KAC7B;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,0BAA0B,GAA+C;IAC7E,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,uCAAuC;IACjD,OAAO,EAAE;QACP,IAAI,EAAE,sBAAsB;KAC7B;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,mBAAmB,GAA+C;IACtE,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,8CAA8C;IACxD,OAAO,EAAE;QACP,IAAI,EAAE,sBAAsB;KAC7B;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAChC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAwBtC;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAW3B,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { runCoreDeploy } from '../deploy/core.js';
|
|
|
3
3
|
import { evaluateIfDryRunFailure } from '../deploy/dry-run.js';
|
|
4
4
|
import { runWarpRouteDeploy } from '../deploy/warp.js';
|
|
5
5
|
import { log, logGray } from '../logger.js';
|
|
6
|
-
import { agentConfigCommandOption, agentTargetsCommandOption, coreTargetsCommandOption,
|
|
6
|
+
import { agentConfigCommandOption, agentTargetsCommandOption, coreTargetsCommandOption, dryRunCommandOption, fromAddressCommandOption, hookCommandOption, ismCommandOption, originCommandOption, warpDeploymentConfigCommandOption, } from './options.js';
|
|
7
7
|
/**
|
|
8
8
|
* Parent command
|
|
9
9
|
*/
|
|
@@ -52,11 +52,12 @@ const coreCommand = {
|
|
|
52
52
|
ism: ismCommandOption,
|
|
53
53
|
hook: hookCommandOption,
|
|
54
54
|
agent: agentConfigCommandOption(false, './configs/agent.json'),
|
|
55
|
-
'dry-run':
|
|
55
|
+
'dry-run': dryRunCommandOption,
|
|
56
|
+
'from-address': fromAddressCommandOption,
|
|
56
57
|
},
|
|
57
58
|
handler: async ({ context, targets, ism, hook, agent, dryRun }) => {
|
|
58
59
|
logGray(`Hyperlane permissionless core deployment${dryRun ? ' dry-run' : ''}`);
|
|
59
|
-
logGray(
|
|
60
|
+
logGray(`------------------------------------------------`);
|
|
60
61
|
try {
|
|
61
62
|
const chains = targets?.split(',').map((r) => r.trim());
|
|
62
63
|
await runCoreDeploy({
|
|
@@ -81,8 +82,9 @@ const warpCommand = {
|
|
|
81
82
|
command: 'warp',
|
|
82
83
|
describe: 'Deploy Warp Route contracts',
|
|
83
84
|
builder: {
|
|
84
|
-
config:
|
|
85
|
-
'dry-run':
|
|
85
|
+
config: warpDeploymentConfigCommandOption,
|
|
86
|
+
'dry-run': dryRunCommandOption,
|
|
87
|
+
'from-address': fromAddressCommandOption,
|
|
86
88
|
},
|
|
87
89
|
handler: async ({ context, config, dryRun }) => {
|
|
88
90
|
logGray(`Hyperlane warp route deployment${dryRun ? ' dry-run' : ''}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readHookConfig } from '../hook/read.js';
|
|
2
2
|
import { log } from '../logger.js';
|
|
3
|
-
import { addressCommandOption, chainCommandOption,
|
|
3
|
+
import { addressCommandOption, chainCommandOption, outputFileCommandOption, } from './options.js';
|
|
4
4
|
/**
|
|
5
5
|
* Parent command
|
|
6
6
|
*/
|
|
@@ -24,7 +24,7 @@ export const read = {
|
|
|
24
24
|
demandOption: true,
|
|
25
25
|
},
|
|
26
26
|
address: addressCommandOption('Address of the Hook to read.', true),
|
|
27
|
-
out:
|
|
27
|
+
out: outputFileCommandOption(),
|
|
28
28
|
},
|
|
29
29
|
handler: async (args) => {
|
|
30
30
|
await readHookConfig(args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/commands/hook.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/commands/hook.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,8BAA8B;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE;IACtE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC;CACvC,CAAC;AAEF,wBAAwB;AACxB,kDAAkD;AAClD,+FAA+F;AAC/F,mCAAmC;AACnC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,IAAI,GAIZ;IACH,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,sDAAsD;IAChE,OAAO,EAAE;QACP,KAAK,EAAE;YACL,GAAG,kBAAkB;YACrB,YAAY,EAAE,IAAI;SACnB;QACD,OAAO,EAAE,oBAAoB,CAAC,8BAA8B,EAAE,IAAI,CAAC;QACnE,GAAG,EAAE,uBAAuB,EAAE;KAC/B;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC"}
|
package/dist/src/commands/ism.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readIsmConfig } from '../ism/read.js';
|
|
2
2
|
import { log } from '../logger.js';
|
|
3
|
-
import { addressCommandOption, chainCommandOption,
|
|
3
|
+
import { addressCommandOption, chainCommandOption, outputFileCommandOption, } from './options.js';
|
|
4
4
|
/**
|
|
5
5
|
* Parent command
|
|
6
6
|
*/
|
|
@@ -26,7 +26,7 @@ export const read = {
|
|
|
26
26
|
demandOption: true,
|
|
27
27
|
},
|
|
28
28
|
address: addressCommandOption('Address of the Interchain Security Module to read.', true),
|
|
29
|
-
out:
|
|
29
|
+
out: outputFileCommandOption(),
|
|
30
30
|
},
|
|
31
31
|
handler: async (argv) => {
|
|
32
32
|
await readIsmConfig(argv);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/commands/ism.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"ism.js","sourceRoot":"","sources":["../../../src/commands/ism.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,6BAA6B;IACvC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE;IACtE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC;CACvC,CAAC;AAEF,wBAAwB;AACxB,mDAAmD;AACnD,2FAA2F;AAC3F,wDAAwD;AACxD,4FAA4F;AAC5F,gCAAgC;AAChC,gGAAgG;AAChG,MAAM,CAAC,MAAM,IAAI,GAIZ;IACH,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,qDAAqD;IAC/D,OAAO,EAAE;QACP,KAAK,EAAE;YACL,GAAG,kBAAkB;YACrB,YAAY,EAAE,IAAI;SACnB;QACD,OAAO,EAAE,oBAAoB,CAC3B,oDAAoD,EACpD,IAAI,CACL;QACD,GAAG,EAAE,uBAAuB,EAAE;KAC/B;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC"}
|
|
@@ -10,12 +10,13 @@ export declare const agentTargetsCommandOption: Options;
|
|
|
10
10
|
export declare const originCommandOption: Options;
|
|
11
11
|
export declare const ismCommandOption: Options;
|
|
12
12
|
export declare const hookCommandOption: Options;
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const
|
|
13
|
+
export declare const warpDeploymentConfigCommandOption: Options;
|
|
14
|
+
export declare const warpCoreConfigCommandOption: Options;
|
|
15
15
|
export declare const agentConfigCommandOption: (isIn: boolean, defaultPath?: string) => Options;
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
16
|
+
export declare const outputFileCommandOption: (defaultPath?: string) => Options;
|
|
17
|
+
export declare const inputFileCommandOption: Options;
|
|
18
|
+
export declare const fromAddressCommandOption: Options;
|
|
19
|
+
export declare const dryRunCommandOption: Options;
|
|
19
20
|
export declare const chainCommandOption: Options;
|
|
20
21
|
export declare const addressCommandOption: (description: string, demandOption?: boolean) => Options;
|
|
21
22
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/commands/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/commands/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAShC,eAAO,MAAM,sBAAsB,EAAE,OAIpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,OAInC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,OAKtC,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,OAI9C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,OAKpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAO9B,CAAC;AAIF,eAAO,MAAM,wBAAwB,EAAE,OAItC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,OAGvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,OAGjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAI9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,OAI/B,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,OAM/C,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,OAMzC,CAAC;AAEF,eAAO,MAAM,wBAAwB,SAC7B,OAAO,gBACC,MAAM,KACnB,OAMD,CAAC;AAEH,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,KAAG,OAK7D,CAAC;AAEH,eAAO,MAAM,sBAAsB,EAAE,OAKpC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,OAItC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,OAKjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAGhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gBAClB,MAAM,6BAElB,OAID,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import os from 'os';
|
|
1
2
|
import { DEFAULT_GITHUB_REGISTRY } from '@hyperlane-xyz/registry';
|
|
2
3
|
import { LogFormat, LogLevel } from '@hyperlane-xyz/utils';
|
|
3
4
|
import { ENV } from '../utils/env.js';
|
|
@@ -21,7 +22,7 @@ export const registryUriCommandOption = {
|
|
|
21
22
|
export const overrideRegistryUriCommandOption = {
|
|
22
23
|
type: 'string',
|
|
23
24
|
description: 'Path to a local registry to override the default registry',
|
|
24
|
-
default:
|
|
25
|
+
default: `${os.homedir()}/.hyperlane`,
|
|
25
26
|
};
|
|
26
27
|
export const skipConfirmationOption = {
|
|
27
28
|
type: 'boolean',
|
|
@@ -31,9 +32,8 @@ export const skipConfirmationOption = {
|
|
|
31
32
|
};
|
|
32
33
|
export const keyCommandOption = {
|
|
33
34
|
type: 'string',
|
|
34
|
-
description:
|
|
35
|
-
|
|
36
|
-
alias: 'k',
|
|
35
|
+
description: 'A hex private key or seed phrase for transaction signing, or use the HYP_KEY env var.',
|
|
36
|
+
alias: ['k', 'private-key', 'seed-phrase'],
|
|
37
37
|
default: ENV.HYP_KEY,
|
|
38
38
|
defaultDescription: 'process.env.HYP_KEY',
|
|
39
39
|
};
|
|
@@ -58,13 +58,13 @@ export const hookCommandOption = {
|
|
|
58
58
|
type: 'string',
|
|
59
59
|
description: 'A path to a JSON or YAML file with Hook configs (for every chain)',
|
|
60
60
|
};
|
|
61
|
-
export const
|
|
61
|
+
export const warpDeploymentConfigCommandOption = {
|
|
62
62
|
type: 'string',
|
|
63
63
|
description: 'A path to a JSON or YAML file with a warp route deployment config.',
|
|
64
64
|
default: './configs/warp-route-deployment.yaml',
|
|
65
65
|
alias: 'w',
|
|
66
66
|
};
|
|
67
|
-
export const
|
|
67
|
+
export const warpCoreConfigCommandOption = {
|
|
68
68
|
type: 'string',
|
|
69
69
|
description: 'File path to Warp Route config',
|
|
70
70
|
alias: 'w',
|
|
@@ -76,19 +76,24 @@ export const agentConfigCommandOption = (isIn, defaultPath) => ({
|
|
|
76
76
|
description: `${isIn ? 'Input' : 'Output'} file path for the agent configuration`,
|
|
77
77
|
default: defaultPath,
|
|
78
78
|
});
|
|
79
|
-
export const
|
|
79
|
+
export const outputFileCommandOption = (defaultPath) => ({
|
|
80
80
|
type: 'string',
|
|
81
81
|
description: 'Output file path',
|
|
82
82
|
default: defaultPath,
|
|
83
83
|
alias: 'o',
|
|
84
84
|
});
|
|
85
|
-
export const
|
|
85
|
+
export const inputFileCommandOption = {
|
|
86
86
|
type: 'string',
|
|
87
87
|
description: 'Input file path',
|
|
88
88
|
alias: 'i',
|
|
89
89
|
demandOption: true,
|
|
90
90
|
};
|
|
91
|
-
export const
|
|
91
|
+
export const fromAddressCommandOption = {
|
|
92
|
+
type: 'string',
|
|
93
|
+
description: `An address to simulate transaction signing on a forked network`,
|
|
94
|
+
alias: 'f',
|
|
95
|
+
};
|
|
96
|
+
export const dryRunCommandOption = {
|
|
92
97
|
type: 'string',
|
|
93
98
|
description: 'Chain name to fork and simulate deployment. Please ensure an anvil node instance is running during execution via `anvil`.',
|
|
94
99
|
alias: 'd',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/commands/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/commands/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { ethers } from 'ethers';
|
|
|
2
2
|
import { log } from '../logger.js';
|
|
3
3
|
import { sendTestMessage } from '../send/message.js';
|
|
4
4
|
import { sendTestTransfer } from '../send/transfer.js';
|
|
5
|
-
import {
|
|
5
|
+
import { warpCoreConfigCommandOption } from './options.js';
|
|
6
6
|
/**
|
|
7
7
|
* Parent command
|
|
8
8
|
*/
|
|
@@ -76,7 +76,7 @@ const transferCommand = {
|
|
|
76
76
|
describe: 'Send a test token transfer on a warp route',
|
|
77
77
|
builder: {
|
|
78
78
|
...messageOptions,
|
|
79
|
-
warp:
|
|
79
|
+
warp: warpCoreConfigCommandOption,
|
|
80
80
|
wei: {
|
|
81
81
|
type: 'string',
|
|
82
82
|
description: 'Amount in wei to send',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/commands/send.ts"],"names":[],"mappings":"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"}
|