@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.
Files changed (78) hide show
  1. package/dist/cli.js +2 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/src/avs/config.d.ts +11 -0
  4. package/dist/src/avs/config.d.ts.map +1 -0
  5. package/dist/src/avs/config.js +10 -0
  6. package/dist/src/avs/config.js.map +1 -0
  7. package/dist/src/avs/stakeRegistry.d.ts +20 -0
  8. package/dist/src/avs/stakeRegistry.d.ts.map +1 -0
  9. package/dist/src/avs/stakeRegistry.js +92 -0
  10. package/dist/src/avs/stakeRegistry.js.map +1 -0
  11. package/dist/src/commands/avs.d.ts +12 -0
  12. package/dist/src/commands/avs.d.ts.map +1 -0
  13. package/dist/src/commands/avs.js +62 -0
  14. package/dist/src/commands/avs.js.map +1 -0
  15. package/dist/src/commands/config.js +8 -8
  16. package/dist/src/commands/config.js.map +1 -1
  17. package/dist/src/commands/deploy.d.ts.map +1 -1
  18. package/dist/src/commands/deploy.js +7 -5
  19. package/dist/src/commands/deploy.js.map +1 -1
  20. package/dist/src/commands/hook.js +2 -2
  21. package/dist/src/commands/hook.js.map +1 -1
  22. package/dist/src/commands/ism.js +2 -2
  23. package/dist/src/commands/ism.js.map +1 -1
  24. package/dist/src/commands/options.d.ts +6 -5
  25. package/dist/src/commands/options.d.ts.map +1 -1
  26. package/dist/src/commands/options.js +14 -9
  27. package/dist/src/commands/options.js.map +1 -1
  28. package/dist/src/commands/send.js +2 -2
  29. package/dist/src/commands/send.js.map +1 -1
  30. package/dist/src/commands/signCommands.d.ts.map +1 -1
  31. package/dist/src/commands/signCommands.js +3 -1
  32. package/dist/src/commands/signCommands.js.map +1 -1
  33. package/dist/src/config/chain.d.ts.map +1 -1
  34. package/dist/src/config/chain.js +21 -9
  35. package/dist/src/config/chain.js.map +1 -1
  36. package/dist/src/consts.d.ts +1 -0
  37. package/dist/src/consts.d.ts.map +1 -1
  38. package/dist/src/consts.js +1 -0
  39. package/dist/src/consts.js.map +1 -1
  40. package/dist/src/context/context.d.ts +1 -1
  41. package/dist/src/context/context.d.ts.map +1 -1
  42. package/dist/src/context/context.js +6 -2
  43. package/dist/src/context/context.js.map +1 -1
  44. package/dist/src/context/types.d.ts +1 -0
  45. package/dist/src/context/types.d.ts.map +1 -1
  46. package/dist/src/deploy/agent.js +1 -1
  47. package/dist/src/deploy/agent.js.map +1 -1
  48. package/dist/src/deploy/utils.js +4 -3
  49. package/dist/src/deploy/utils.js.map +1 -1
  50. package/dist/src/submit/submit.d.ts +5 -0
  51. package/dist/src/submit/submit.d.ts.map +1 -0
  52. package/dist/src/submit/submit.js +30 -0
  53. package/dist/src/submit/submit.js.map +1 -0
  54. package/dist/src/submit/types.d.ts +18 -0
  55. package/dist/src/submit/types.d.ts.map +1 -0
  56. package/dist/src/submit/types.js +2 -0
  57. package/dist/src/submit/types.js.map +1 -0
  58. package/dist/src/utils/balances.d.ts +2 -2
  59. package/dist/src/utils/balances.d.ts.map +1 -1
  60. package/dist/src/utils/balances.js +8 -3
  61. package/dist/src/utils/balances.js.map +1 -1
  62. package/dist/src/utils/chains.d.ts +1 -0
  63. package/dist/src/utils/chains.d.ts.map +1 -1
  64. package/dist/src/utils/chains.js +16 -1
  65. package/dist/src/utils/chains.js.map +1 -1
  66. package/dist/src/utils/files.d.ts +1 -0
  67. package/dist/src/utils/files.d.ts.map +1 -1
  68. package/dist/src/utils/files.js +8 -0
  69. package/dist/src/utils/files.js.map +1 -1
  70. package/dist/src/utils/keys.d.ts +5 -3
  71. package/dist/src/utils/keys.d.ts.map +1 -1
  72. package/dist/src/utils/keys.js +14 -11
  73. package/dist/src/utils/keys.js.map +1 -1
  74. package/dist/src/version.d.ts +1 -1
  75. package/dist/src/version.d.ts.map +1 -1
  76. package/dist/src/version.js +1 -1
  77. package/dist/src/version.js.map +1 -1
  78. 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 { inputFileOption, outputFileOption } from './options.js';
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: outputFileOption('./configs/ism.yaml'),
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: outputFileOption('./configs/hooks.yaml'),
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: outputFileOption('./configs/warp-route-deployment.yaml'),
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: inputFileOption,
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: inputFileOption,
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: inputFileOption,
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: inputFileOption,
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":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -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;AAuBtC;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAW3B,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, dryRunOption, hookCommandOption, ismCommandOption, originCommandOption, warpConfigCommandOption, } from './options.js';
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': dryRunOption,
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: warpConfigCommandOption,
85
- 'dry-run': dryRunOption,
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":"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"}
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, outputFileOption, } from './options.js';
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: outputFileOption(),
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,gBAAgB,GACjB,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,gBAAgB,EAAE;KACxB;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"}
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"}
@@ -1,6 +1,6 @@
1
1
  import { readIsmConfig } from '../ism/read.js';
2
2
  import { log } from '../logger.js';
3
- import { addressCommandOption, chainCommandOption, outputFileOption, } from './options.js';
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: outputFileOption(),
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,gBAAgB,GACjB,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,gBAAgB,EAAE;KACxB;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"}
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 warpConfigCommandOption: Options;
14
- export declare const warpConfigOption: Options;
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 outputFileOption: (defaultPath?: string) => Options;
17
- export declare const inputFileOption: Options;
18
- export declare const dryRunOption: Options;
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":"AAAA,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,uBAAuB,EAAE,OAMrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAM9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,SAC7B,OAAO,gBACC,MAAM,KACnB,OAMD,CAAC;AAEH,eAAO,MAAM,gBAAgB,iBAAkB,MAAM,KAAG,OAKtD,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAK7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAK1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAGhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gBAClB,MAAM,6BAElB,OAID,CAAC"}
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: `A hex private key or seed phrase for transaction signing, or use the HYP_KEY env var.
35
- Dry-run: An address to simulate transaction signing on a forked network`,
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 warpConfigCommandOption = {
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 warpConfigOption = {
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 outputFileOption = (defaultPath) => ({
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 inputFileOption = {
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 dryRunOption = {
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":"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"}
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 { warpConfigOption } from './options.js';
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: warpConfigOption,
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":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/commands/send.ts"],"names":[],"mappings":"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"}