@hyperlane-xyz/cli 3.1.10 → 3.2.0-alpha
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/README.md +6 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +27 -4
- package/dist/cli.js.map +1 -1
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +14 -0
- package/dist/env.js.map +1 -0
- 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 +19 -0
- package/dist/src/avs/stakeRegistry.d.ts.map +1 -0
- package/dist/src/avs/stakeRegistry.js +94 -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 +58 -0
- package/dist/src/commands/avs.js.map +1 -0
- package/dist/src/commands/chains.d.ts.map +1 -1
- package/dist/src/commands/chains.js +46 -27
- package/dist/src/commands/chains.js.map +1 -1
- package/dist/src/commands/config.js +74 -85
- 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 +58 -91
- package/dist/src/commands/deploy.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 +34 -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 +36 -0
- package/dist/src/commands/ism.js.map +1 -0
- package/dist/src/commands/options.d.ts +19 -7
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +90 -27
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/send.d.ts +14 -1
- package/dist/src/commands/send.d.ts.map +1 -1
- package/dist/src/commands/send.js +32 -55
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/commands/signCommands.d.ts +3 -0
- package/dist/src/commands/signCommands.d.ts.map +1 -0
- package/dist/src/commands/signCommands.js +11 -0
- package/dist/src/commands/signCommands.js.map +1 -0
- package/dist/src/commands/status.d.ts +5 -2
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +9 -19
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/config/chain.d.ts +5 -7
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +94 -68
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/chain.test.js +1 -5
- package/dist/src/config/chain.test.js.map +1 -1
- package/dist/src/config/hooks.d.ts +91 -214
- package/dist/src/config/hooks.d.ts.map +1 -1
- package/dist/src/config/hooks.js +218 -122
- package/dist/src/config/hooks.js.map +1 -1
- package/dist/src/config/ism.d.ts +74 -0
- package/dist/src/config/ism.d.ts.map +1 -0
- package/dist/src/config/ism.js +223 -0
- package/dist/src/config/ism.js.map +1 -0
- package/dist/src/config/multisig.d.ts +4 -14
- package/dist/src/config/multisig.d.ts.map +1 -1
- package/dist/src/config/multisig.js +35 -29
- package/dist/src/config/multisig.js.map +1 -1
- package/dist/src/config/warp.d.ts +7 -180
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +55 -62
- package/dist/src/config/warp.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 +14 -0
- package/dist/src/context/context.d.ts.map +1 -0
- package/dist/src/context/context.js +108 -0
- package/dist/src/context/context.js.map +1 -0
- package/dist/src/context/types.d.ts +33 -0
- package/dist/src/context/types.d.ts.map +1 -0
- package/dist/src/context/types.js.map +1 -0
- package/dist/src/deploy/agent.d.ts +6 -4
- package/dist/src/deploy/agent.d.ts.map +1 -1
- package/dist/src/deploy/agent.js +10 -24
- package/dist/src/deploy/agent.js.map +1 -1
- package/dist/src/deploy/core.d.ts +10 -7
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +156 -160
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/dry-run.d.ts +19 -0
- package/dist/src/deploy/dry-run.d.ts.map +1 -0
- package/dist/src/deploy/dry-run.js +45 -0
- package/dist/src/deploy/dry-run.js.map +1 -0
- package/dist/src/deploy/utils.d.ts +15 -8
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +60 -11
- package/dist/src/deploy/utils.js.map +1 -1
- package/dist/src/deploy/warp.d.ts +4 -7
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +129 -169
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/hook/read.d.ts +13 -0
- package/dist/src/hook/read.d.ts.map +1 -0
- package/dist/src/hook/read.js +25 -0
- package/dist/src/hook/read.js.map +1 -0
- package/dist/src/ism/read.d.ts +13 -0
- package/dist/src/ism/read.d.ts.map +1 -0
- package/dist/src/ism/read.js +25 -0
- package/dist/src/ism/read.js.map +1 -0
- package/dist/src/logger.d.ts +17 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +32 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/registry/MergedRegistry.d.ts +35 -0
- package/dist/src/registry/MergedRegistry.d.ts.map +1 -0
- package/dist/src/registry/MergedRegistry.js +83 -0
- package/dist/src/registry/MergedRegistry.js.map +1 -0
- package/dist/src/send/message.d.ts +7 -6
- package/dist/src/send/message.d.ts.map +1 -1
- package/dist/src/send/message.js +40 -22
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.d.ts +8 -10
- package/dist/src/send/transfer.d.ts.map +1 -1
- package/dist/src/send/transfer.js +68 -70
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/status/message.d.ts +7 -5
- package/dist/src/status/message.d.ts.map +1 -1
- package/dist/src/status/message.js +25 -12
- package/dist/src/status/message.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/{deploy → submit}/types.js.map +1 -1
- package/dist/src/tests/deployTestErc20.d.ts +2 -0
- package/dist/src/tests/deployTestErc20.d.ts.map +1 -0
- package/dist/src/tests/deployTestErc20.js +26 -0
- package/dist/src/tests/deployTestErc20.js.map +1 -0
- package/dist/src/tests/hooks.test.d.ts +2 -0
- package/dist/src/tests/hooks.test.d.ts.map +1 -0
- package/dist/src/tests/hooks.test.js +83 -0
- package/dist/src/tests/hooks.test.js.map +1 -0
- package/dist/src/tests/ism.test.d.ts +2 -0
- package/dist/src/tests/ism.test.d.ts.map +1 -0
- package/dist/src/tests/ism.test.js +76 -0
- package/dist/src/tests/ism.test.js.map +1 -0
- package/dist/src/tests/multisig.test.d.ts +2 -0
- package/dist/src/tests/multisig.test.d.ts.map +1 -0
- package/dist/src/tests/multisig.test.js +34 -0
- package/dist/src/tests/multisig.test.js.map +1 -0
- package/dist/src/utils/balances.d.ts +2 -4
- package/dist/src/utils/balances.d.ts.map +1 -1
- package/dist/src/utils/balances.js +8 -12
- package/dist/src/utils/balances.js.map +1 -1
- package/dist/src/utils/chains.d.ts +3 -2
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +33 -18
- package/dist/src/utils/chains.js.map +1 -1
- package/dist/src/utils/env.d.ts +6 -0
- package/dist/src/utils/env.d.ts.map +1 -0
- package/dist/src/utils/env.js +9 -0
- package/dist/src/utils/env.js.map +1 -0
- package/dist/src/utils/files.d.ts +6 -4
- package/dist/src/utils/files.d.ts.map +1 -1
- package/dist/src/utils/files.js +37 -25
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/utils/keys.d.ts +28 -1
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +65 -6
- package/dist/src/utils/keys.js.map +1 -1
- package/dist/src/utils/tokens.d.ts +3 -0
- package/dist/src/utils/tokens.d.ts.map +1 -0
- package/dist/src/utils/tokens.js +14 -0
- package/dist/src/utils/tokens.js.map +1 -0
- package/dist/src/utils/version-check.d.ts +2 -0
- package/dist/src/utils/version-check.d.ts.map +1 -0
- package/dist/src/utils/version-check.js +15 -0
- package/dist/src/utils/version-check.js.map +1 -0
- package/dist/src/version.d.ts +2 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/src/version.js +2 -0
- package/dist/src/version.js.map +1 -0
- package/examples/chain-config.yaml +38 -46
- package/examples/contract-artifacts.yaml +4 -4
- package/examples/hooks.yaml +66 -0
- package/examples/ism-advanced.yaml +33 -0
- package/examples/{multisig-ism.yaml → ism.yaml} +0 -8
- package/examples/warp-route-deployment.yaml +32 -0
- package/package.json +20 -13
- package/dist/logger.d.ts +0 -14
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -45
- package/dist/logger.js.map +0 -1
- package/dist/src/config/artifacts.d.ts +0 -3
- package/dist/src/config/artifacts.d.ts.map +0 -1
- package/dist/src/config/artifacts.js +0 -18
- package/dist/src/config/artifacts.js.map +0 -1
- package/dist/src/context.d.ts +0 -388
- package/dist/src/context.d.ts.map +0 -1
- package/dist/src/context.js +0 -30
- package/dist/src/context.js.map +0 -1
- package/dist/src/deploy/TestRecipientDeployer.d.ts +0 -20
- package/dist/src/deploy/TestRecipientDeployer.d.ts.map +0 -1
- package/dist/src/deploy/TestRecipientDeployer.js +0 -36
- package/dist/src/deploy/TestRecipientDeployer.js.map +0 -1
- package/dist/src/deploy/types.d.ts +0 -21
- package/dist/src/deploy/types.d.ts.map +0 -1
- package/examples/anvil-chains.yaml +0 -22
- package/examples/hook-config.yaml +0 -18
- package/examples/warp-tokens.yaml +0 -26
- /package/dist/src/{deploy → context}/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/utils/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/utils/chains.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,GAAG;;;;CAA0C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
const envScheme = z.object({
|
|
3
|
+
HYP_KEY: z.string().optional(),
|
|
4
|
+
ANVIL_IP_ADDR: z.string().optional(),
|
|
5
|
+
ANVIL_PORT: z.number().optional(),
|
|
6
|
+
});
|
|
7
|
+
const parsedEnv = envScheme.safeParse(process.env);
|
|
8
|
+
export const ENV = parsedEnv.success ? parsedEnv.data : {};
|
|
9
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export type FileFormat = 'yaml' | 'json';
|
|
2
|
+
export type ArtifactsFile = {
|
|
3
|
+
filename: string;
|
|
4
|
+
description: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function resolvePath(filePath: string): string;
|
|
2
7
|
export declare function isFile(filepath: string): boolean;
|
|
3
8
|
export declare function readFileAtPath(filepath: string): string;
|
|
4
9
|
export declare function writeFileAtPath(filepath: string, value: string): void;
|
|
@@ -13,9 +18,6 @@ export declare function mergeYaml<T extends Record<string, any>>(filepath: strin
|
|
|
13
18
|
export declare function readYamlOrJson<T>(filepath: string, format?: FileFormat): T;
|
|
14
19
|
export declare function writeYamlOrJson(filepath: string, obj: Record<string, any>, format?: FileFormat): any;
|
|
15
20
|
export declare function mergeYamlOrJson(filepath: string, obj: Record<string, any>, format?: FileFormat): any;
|
|
16
|
-
export declare function
|
|
17
|
-
filename: string;
|
|
18
|
-
description: string;
|
|
19
|
-
}>): string[];
|
|
21
|
+
export declare function resolveFileFormat(filepath?: string, format?: FileFormat): FileFormat | undefined;
|
|
20
22
|
export declare function runFileSelectionStep(folderPath: string, description: string, pattern?: string): Promise<string>;
|
|
21
23
|
//# sourceMappingURL=files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,WAQtC;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAK9C;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAM9D;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAMzD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAM/D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,CAAC,CAE1E;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,UAAU,OAQpB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,GAAE,UAAmB,OAQ5B;AAoBD,wBAAgB,iBAAiB,CAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,UAAU,GAClB,UAAU,GAAG,SAAS,CAmBxB;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,mBA6BjB"}
|
package/dist/src/utils/files.js
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { input } from '@inquirer/prompts';
|
|
2
2
|
import select from '@inquirer/select';
|
|
3
3
|
import fs from 'fs';
|
|
4
|
+
import os from 'os';
|
|
4
5
|
import path from 'path';
|
|
5
6
|
import { parse as yamlParse, stringify as yamlStringify } from 'yaml';
|
|
6
7
|
import { objMerge } from '@hyperlane-xyz/utils';
|
|
7
|
-
import { log
|
|
8
|
-
|
|
8
|
+
import { log } from '../logger.js';
|
|
9
|
+
export function resolvePath(filePath) {
|
|
10
|
+
if (filePath.startsWith('~')) {
|
|
11
|
+
const homedir = os.homedir();
|
|
12
|
+
return path.join(homedir, filePath.slice(1));
|
|
13
|
+
}
|
|
14
|
+
return filePath;
|
|
15
|
+
}
|
|
9
16
|
export function isFile(filepath) {
|
|
10
17
|
if (!filepath)
|
|
11
18
|
return false;
|
|
@@ -77,44 +84,49 @@ export function mergeYaml(filepath, obj) {
|
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
86
|
export function readYamlOrJson(filepath, format) {
|
|
80
|
-
return
|
|
87
|
+
return resolveYamlOrJsonFn(filepath, readJson, readYaml, format);
|
|
81
88
|
}
|
|
82
89
|
export function writeYamlOrJson(filepath, obj, format) {
|
|
83
|
-
return
|
|
90
|
+
return resolveYamlOrJsonFn(filepath, (f) => writeJson(f, obj), (f) => writeYaml(f, obj), format);
|
|
84
91
|
}
|
|
85
|
-
export function mergeYamlOrJson(filepath, obj, format) {
|
|
86
|
-
return
|
|
92
|
+
export function mergeYamlOrJson(filepath, obj, format = 'yaml') {
|
|
93
|
+
return resolveYamlOrJsonFn(filepath, (f) => mergeJson(f, obj), (f) => mergeYaml(f, obj), format);
|
|
87
94
|
}
|
|
88
|
-
function
|
|
89
|
-
|
|
95
|
+
function resolveYamlOrJsonFn(filepath, jsonFn, yamlFn, format) {
|
|
96
|
+
const fileFormat = resolveFileFormat(filepath, format);
|
|
97
|
+
if (!fileFormat) {
|
|
98
|
+
throw new Error(`Invalid file format for ${filepath}`);
|
|
99
|
+
}
|
|
100
|
+
if (fileFormat === 'json') {
|
|
90
101
|
return jsonFn(filepath);
|
|
91
102
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
103
|
+
return yamlFn(filepath);
|
|
104
|
+
}
|
|
105
|
+
export function resolveFileFormat(filepath, format) {
|
|
106
|
+
// early out if filepath is undefined
|
|
107
|
+
if (!filepath) {
|
|
108
|
+
return format;
|
|
96
109
|
}
|
|
97
|
-
|
|
98
|
-
|
|
110
|
+
if (format === 'json' || filepath?.endsWith('.json')) {
|
|
111
|
+
return 'json';
|
|
99
112
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
for (const file of files) {
|
|
105
|
-
const filePath = path.join(outPath, `${file.filename}-${timestamp}.json`);
|
|
106
|
-
// Write empty object to ensure permissions are okay
|
|
107
|
-
writeJson(filePath, {});
|
|
108
|
-
newPaths.push(filePath);
|
|
109
|
-
logBlue(`${file.description} will be written to ${filePath}`);
|
|
113
|
+
if (format === 'yaml' ||
|
|
114
|
+
filepath?.endsWith('.yaml') ||
|
|
115
|
+
filepath?.endsWith('.yml')) {
|
|
116
|
+
return 'yaml';
|
|
110
117
|
}
|
|
111
|
-
return
|
|
118
|
+
return undefined;
|
|
112
119
|
}
|
|
113
120
|
export async function runFileSelectionStep(folderPath, description, pattern) {
|
|
121
|
+
const noFilesErrorMessage = `No "${description}" found in ${folderPath}. Please confirm the path for "${description}". By default, the CLI writes to folders relative to where its run.`;
|
|
122
|
+
if (!fs.existsSync(folderPath))
|
|
123
|
+
throw new Error(noFilesErrorMessage);
|
|
114
124
|
let filenames = fs.readdirSync(folderPath);
|
|
115
125
|
if (pattern) {
|
|
116
126
|
filenames = filenames.filter((f) => f.includes(pattern));
|
|
117
127
|
}
|
|
128
|
+
if (filenames.length === 0)
|
|
129
|
+
throw new Error(noFilesErrorMessage);
|
|
118
130
|
let filename = (await select({
|
|
119
131
|
message: `Select ${description} file`,
|
|
120
132
|
choices: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils/keys.d.ts
CHANGED
|
@@ -1,4 +1,31 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
|
|
2
|
+
import { Address } from '@hyperlane-xyz/utils';
|
|
3
|
+
/**
|
|
4
|
+
* Retrieves a signer for the current command-context.
|
|
5
|
+
* @returns the signer
|
|
6
|
+
*/
|
|
7
|
+
export declare function getSigner({ key, skipConfirmation, }: {
|
|
8
|
+
key?: string;
|
|
9
|
+
skipConfirmation?: boolean;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
key: string;
|
|
12
|
+
signer: ethers.Wallet;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves an impersonated signer for the current command-context.
|
|
16
|
+
* @returns the impersonated signer
|
|
17
|
+
*/
|
|
18
|
+
export declare function getImpersonatedSigner({ fromAddress, key, skipConfirmation, }: {
|
|
19
|
+
fromAddress?: Address;
|
|
20
|
+
key?: string;
|
|
21
|
+
skipConfirmation?: boolean;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
impersonatedKey: string;
|
|
24
|
+
impersonatedSigner: ethers.providers.JsonRpcSigner;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Verifies the specified signer is valid.
|
|
28
|
+
* @param signer the signer to verify
|
|
29
|
+
*/
|
|
3
30
|
export declare function assertSigner(signer: ethers.Signer): void;
|
|
4
31
|
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AAIzD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,EAC9B,GAAG,EACH,gBAAgB,GACjB,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;;;GAIA;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,WAAW,EACX,GAAG,EACH,gBAAgB,GACjB,EAAE;IACD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;;;GASA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,QAGjD"}
|
package/dist/src/utils/keys.js
CHANGED
|
@@ -1,18 +1,77 @@
|
|
|
1
|
+
import { input } from '@inquirer/prompts';
|
|
1
2
|
import { ethers } from 'ethers';
|
|
3
|
+
import { impersonateAccount } from '@hyperlane-xyz/sdk';
|
|
2
4
|
import { ensure0x } from '@hyperlane-xyz/utils';
|
|
3
|
-
|
|
5
|
+
const ETHEREUM_ADDRESS_LENGTH = 42;
|
|
6
|
+
/**
|
|
7
|
+
* Retrieves a signer for the current command-context.
|
|
8
|
+
* @returns the signer
|
|
9
|
+
*/
|
|
10
|
+
export async function getSigner({ key, skipConfirmation, }) {
|
|
11
|
+
key ||= await retrieveKey(skipConfirmation);
|
|
12
|
+
const signer = privateKeyToSigner(key);
|
|
13
|
+
return { key, signer };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Retrieves an impersonated signer for the current command-context.
|
|
17
|
+
* @returns the impersonated signer
|
|
18
|
+
*/
|
|
19
|
+
export async function getImpersonatedSigner({ fromAddress, key, skipConfirmation, }) {
|
|
20
|
+
if (!fromAddress) {
|
|
21
|
+
const { signer } = await getSigner({ key, skipConfirmation });
|
|
22
|
+
fromAddress = signer.address;
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
impersonatedKey: fromAddress,
|
|
26
|
+
impersonatedSigner: await addressToImpersonatedSigner(fromAddress),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Verifies the specified signer is valid.
|
|
31
|
+
* @param signer the signer to verify
|
|
32
|
+
*/
|
|
33
|
+
export function assertSigner(signer) {
|
|
34
|
+
if (!signer || !ethers.Signer.isSigner(signer))
|
|
35
|
+
throw new Error('Signer is invalid');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Generates a signer from an address.
|
|
39
|
+
* @param address an EOA address
|
|
40
|
+
* @returns a signer for the address
|
|
41
|
+
*/
|
|
42
|
+
async function addressToImpersonatedSigner(address) {
|
|
43
|
+
if (!address)
|
|
44
|
+
throw new Error('No address provided');
|
|
45
|
+
const formattedKey = address.trim().toLowerCase();
|
|
46
|
+
if (address.length != ETHEREUM_ADDRESS_LENGTH)
|
|
47
|
+
throw new Error('Invalid address length.');
|
|
48
|
+
else if (ethers.utils.isHexString(ensure0x(formattedKey)))
|
|
49
|
+
return await impersonateAccount(address);
|
|
50
|
+
else
|
|
51
|
+
throw new Error('Invalid address format');
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generates a signer from a private key.
|
|
55
|
+
* @param key a private key
|
|
56
|
+
* @returns a signer for the private key
|
|
57
|
+
*/
|
|
58
|
+
function privateKeyToSigner(key) {
|
|
4
59
|
if (!key)
|
|
5
|
-
throw new Error('No key provided');
|
|
60
|
+
throw new Error('No private key provided');
|
|
6
61
|
const formattedKey = key.trim().toLowerCase();
|
|
7
62
|
if (ethers.utils.isHexString(ensure0x(formattedKey)))
|
|
8
63
|
return new ethers.Wallet(ensure0x(formattedKey));
|
|
9
64
|
else if (formattedKey.split(' ').length >= 6)
|
|
10
65
|
return ethers.Wallet.fromMnemonic(formattedKey);
|
|
11
66
|
else
|
|
12
|
-
throw new Error('Invalid key format');
|
|
67
|
+
throw new Error('Invalid private key format');
|
|
13
68
|
}
|
|
14
|
-
|
|
15
|
-
if (
|
|
16
|
-
throw new Error(
|
|
69
|
+
async function retrieveKey(skipConfirmation) {
|
|
70
|
+
if (skipConfirmation)
|
|
71
|
+
throw new Error(`No private key provided`);
|
|
72
|
+
else
|
|
73
|
+
return await input({
|
|
74
|
+
message: `Please enter private key or use the HYP_KEY environment variable.`,
|
|
75
|
+
});
|
|
17
76
|
}
|
|
18
77
|
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAW,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAC9B,GAAG,EACH,gBAAgB,GAIjB;IACC,GAAG,KAAK,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,WAAW,EACX,GAAG,EACH,gBAAgB,GAKjB;IACC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC9D,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IACD,OAAO;QACL,eAAe,EAAE,WAAW;QAC5B,kBAAkB,EAAE,MAAM,2BAA2B,CAAC,WAAW,CAAC;KACnE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,2BAA2B,CACxC,OAAgB;IAEhB,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,IAAI,uBAAuB;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SACxC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;;QACtC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;SAC9C,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;;QAC7C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,gBAAqC;IAErC,IAAI,gBAAgB;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;;QAE/D,OAAO,MAAM,KAAK,CAAC;YACjB,OAAO,EAAE,mEAAmE;SAC7E,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/utils/tokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,SAAiB,mBAYzB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import select from '@inquirer/select';
|
|
2
|
+
export async function runTokenSelectionStep(tokens, message = 'Select token') {
|
|
3
|
+
const choices = tokens.map((t) => ({
|
|
4
|
+
name: `${t.symbol} - ${t.addressOrDenom}`,
|
|
5
|
+
value: t.addressOrDenom,
|
|
6
|
+
}));
|
|
7
|
+
const routerAddress = (await select({
|
|
8
|
+
message,
|
|
9
|
+
choices,
|
|
10
|
+
pageSize: 20,
|
|
11
|
+
}));
|
|
12
|
+
return routerAddress;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/utils/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAItC,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAe,EACf,OAAO,GAAG,cAAc;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,cAAc,EAAE;QACzC,KAAK,EAAE,CAAC,CAAC,cAAc;KACxB,CAAC,CAAC,CAAC;IACJ,MAAM,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC;QAClC,OAAO;QACP,OAAO;QACP,QAAQ,EAAE,EAAE;KACb,CAAC,CAAW,CAAC;IACd,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../../src/utils/version-check.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,kBAUjC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import latestVersion from 'latest-version';
|
|
2
|
+
import { log } from '../logger.js';
|
|
3
|
+
import { VERSION } from '../version.js';
|
|
4
|
+
export async function checkVersion() {
|
|
5
|
+
const argv = process.argv;
|
|
6
|
+
// The latestVersion lib (or one of its deps) is confused by the --registry value
|
|
7
|
+
// in the CLI's args, so we need to clear the args before calling it
|
|
8
|
+
process.argv = [];
|
|
9
|
+
const currentVersion = await latestVersion('@hyperlane-xyz/cli');
|
|
10
|
+
process.argv = argv;
|
|
11
|
+
if (VERSION < currentVersion) {
|
|
12
|
+
log(`Your CLI version: ${VERSION}, latest version: ${currentVersion}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=version-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/utils/version-check.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,iFAAiF;IACjF,oEAAoE;IACpE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;IAClB,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,OAAO,GAAG,cAAc,EAAE,CAAC;QAC7B,GAAG,CAAC,qBAAqB,OAAO,qBAAqB,cAAc,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC"}
|
|
@@ -1,50 +1,42 @@
|
|
|
1
1
|
# Configs for describing chain metadata for use in Hyperlane deployments or apps
|
|
2
|
-
# Consists of a map of chain names to metadata
|
|
3
2
|
# Schema here: https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/sdk/src/metadata/chainMetadataTypes.ts
|
|
4
3
|
---
|
|
5
|
-
#
|
|
6
|
-
|
|
4
|
+
# Required fields:
|
|
5
|
+
chainId: 1234567890 # Number: Use EIP-155 for EVM chains
|
|
6
|
+
domainId: 1234567890 # Number: Recommend matching chainId when possible
|
|
7
|
+
name: mychainname # String: Unique identifier for the chain, must match key above
|
|
8
|
+
protocol: ethereum # ProtocolType: Ethereum, Sealevel, etc.
|
|
9
|
+
rpcUrls: # Array: List of RPC configs
|
|
10
|
+
# Only http field is required
|
|
11
|
+
- http: https://mychain.com/rpc # String: HTTP URL of the RPC endpoint (preferably HTTPS)
|
|
12
|
+
# Others here are optional
|
|
13
|
+
pagination:
|
|
14
|
+
maxBlockRange: 1000 # Number
|
|
15
|
+
maxBlockAge: 1000 # Number
|
|
16
|
+
minBlockNumber: 1000 # Number
|
|
17
|
+
retry:
|
|
18
|
+
maxRequests: 5 # Number
|
|
19
|
+
baseRetryMs: 1000 # Number
|
|
20
|
+
# Optional fields, not required for Hyperlane deployments but useful for apps:
|
|
21
|
+
isTestnet: false # Boolean: Whether the chain is considered a testnet or a mainnet
|
|
22
|
+
blockExplorers: # Array: List of BlockExplorer configs
|
|
7
23
|
# Required fields:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
#
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- name: My Chain Explorer # String: Human-readable name for the explorer
|
|
28
|
-
url: https://mychain.com/explorer # String: Base URL for the explorer
|
|
29
|
-
apiUrl: https://mychain.com/api # String: Base URL for the explorer API
|
|
30
|
-
# Optional fields:
|
|
31
|
-
apiKey: myapikey # String: API key for the explorer (optional)
|
|
32
|
-
family: etherscan # ExplorerFamily: See ExplorerFamily for valid values
|
|
33
|
-
nativeToken:
|
|
34
|
-
name: Eth # String
|
|
35
|
-
symbol: ETH # String
|
|
36
|
-
decimals: 18 # Number
|
|
37
|
-
displayName: My Chain Name # String: Human-readable name of the chain
|
|
38
|
-
displayNameShort: My Chain # String: A shorter human-readable name
|
|
39
|
-
logoURI: https://mychain.com/logo.png # String: URI to a logo image for the chain
|
|
40
|
-
blocks:
|
|
41
|
-
confirmations: 12 # Number: Blocks to wait before considering a transaction confirmed
|
|
42
|
-
reorgPeriod: 100 # Number: Blocks before a transaction has a near-zero chance of reverting
|
|
43
|
-
estimateBlockTime: 15 # Number: Rough estimate of time per block in seconds
|
|
44
|
-
# transactionOverrides: # Object: Properties to include when forming transaction requests
|
|
45
|
-
# Any tx fields are allowed
|
|
46
|
-
|
|
47
|
-
# Alternatively, you can extend a core chain config with only fields to be overridden
|
|
48
|
-
sepolia:
|
|
49
|
-
rpcUrls:
|
|
50
|
-
- http: https://mycustomrpc.com
|
|
24
|
+
- name: My Chain Explorer # String: Human-readable name for the explorer
|
|
25
|
+
url: https://mychain.com/explorer # String: Base URL for the explorer
|
|
26
|
+
apiUrl: https://mychain.com/api # String: Base URL for the explorer API
|
|
27
|
+
# Optional fields:
|
|
28
|
+
apiKey: myapikey # String: API key for the explorer (optional)
|
|
29
|
+
family: etherscan # ExplorerFamily: See ExplorerFamily for valid values
|
|
30
|
+
nativeToken:
|
|
31
|
+
name: Eth # String
|
|
32
|
+
symbol: ETH # String
|
|
33
|
+
decimals: 18 # Number
|
|
34
|
+
displayName: My Chain Name # String: Human-readable name of the chain
|
|
35
|
+
displayNameShort: My Chain # String: A shorter human-readable name
|
|
36
|
+
logoURI: https://mychain.com/logo.png # String: URI to a logo image for the chain
|
|
37
|
+
blocks:
|
|
38
|
+
confirmations: 12 # Number: Blocks to wait before considering a transaction confirmed
|
|
39
|
+
reorgPeriod: 100 # Number: Blocks before a transaction has a near-zero chance of reverting
|
|
40
|
+
estimateBlockTime: 15 # Number: Rough estimate of time per block in seconds
|
|
41
|
+
# transactionOverrides: # Object: Properties to include when forming transaction requests
|
|
42
|
+
# Any tx fields are allowed
|
|
@@ -12,9 +12,9 @@ anvil1:
|
|
|
12
12
|
multisigIsm: '0x9bDE63104EE030d9De419EEd6bA7D14b86D6fE3f'
|
|
13
13
|
testRecipient: '0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35'
|
|
14
14
|
interchainAccountIsm: '0x5e8ee6840caa4f367aff1FF28aA36D5B1b836d35'
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
staticAggregationIsmFactory: '0xc864fa3B662613cA5051f41e157d0a997f9a5A87'
|
|
16
|
+
domainRoutingIsmFactory: '0x1fdfD1486b8339638C6b92f8a96D698D8182D2b1'
|
|
17
17
|
interchainQueryRouter: '0xA837e38C3F7D509DF3a7a0fCf65E3814DB6c2618'
|
|
18
18
|
interchainAccountRouter: '0x9521291A43ebA3aD3FD24d610F4b7F7543C8d761'
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
staticMerkleRootMultisigIsmFactory: '0x82140b2ddAd4E4dd7e1D6757Fb5F9485c230B79d'
|
|
20
|
+
staticMessageIdMultisigIsmFactory: '0x1079056da3EC7D55521F27e1E094015C0d39Cc65'
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# A config to define the hooks for core contract deployments
|
|
2
|
+
# Ideally, use the `hyperlane config create hooks` command to generate this file
|
|
3
|
+
# but you we can refer to https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/sdk/src/hook/types.ts for the matching types
|
|
4
|
+
|
|
5
|
+
# HooksConfig:
|
|
6
|
+
# required: HookConfig
|
|
7
|
+
# default: HookConfig
|
|
8
|
+
|
|
9
|
+
# HookConfig:
|
|
10
|
+
# type: HookType
|
|
11
|
+
# ... hook-specific config
|
|
12
|
+
|
|
13
|
+
# HookType:
|
|
14
|
+
# - merkleTreeHook
|
|
15
|
+
# - domainRoutingHook
|
|
16
|
+
# - interchainGasPaymaster
|
|
17
|
+
# - protocolFee
|
|
18
|
+
# - aggregationHook
|
|
19
|
+
# - opStack (not yet supported)
|
|
20
|
+
|
|
21
|
+
anvil1:
|
|
22
|
+
required:
|
|
23
|
+
type: protocolFee
|
|
24
|
+
maxProtocolFee: '1000000000000000000' # in wei (string)
|
|
25
|
+
protocolFee: '200000000000000' # in wei (string)
|
|
26
|
+
beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
27
|
+
owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
28
|
+
default:
|
|
29
|
+
type: domainRoutingHook
|
|
30
|
+
owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
31
|
+
domains:
|
|
32
|
+
anvil2:
|
|
33
|
+
type: aggregationHook
|
|
34
|
+
hooks:
|
|
35
|
+
- type: merkleTreeHook
|
|
36
|
+
- type: interchainGasPaymaster
|
|
37
|
+
beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
38
|
+
owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
39
|
+
oracleKey: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
40
|
+
overhead:
|
|
41
|
+
anvil2: 50000 # gas amount (number)
|
|
42
|
+
gasOracleType:
|
|
43
|
+
anvil2: StorageGasOracle
|
|
44
|
+
anvil2:
|
|
45
|
+
required:
|
|
46
|
+
type: protocolFee
|
|
47
|
+
maxProtocolFee: '1000000000000000000'
|
|
48
|
+
protocolFee: '200000000000000'
|
|
49
|
+
beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
50
|
+
owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
51
|
+
default:
|
|
52
|
+
type: domainRoutingHook
|
|
53
|
+
owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
54
|
+
domains:
|
|
55
|
+
anvil1:
|
|
56
|
+
type: aggregationHook
|
|
57
|
+
hooks:
|
|
58
|
+
- type: merkleTreeHook
|
|
59
|
+
- type: interchainGasPaymaster
|
|
60
|
+
beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
61
|
+
owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
62
|
+
oracleKey: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
|
|
63
|
+
overhead:
|
|
64
|
+
anvil1: 50000
|
|
65
|
+
gasOracleType:
|
|
66
|
+
anvil1: StorageGasOracle
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
anvil1:
|
|
2
|
+
type: defaultFallbackRoutingIsm
|
|
3
|
+
owner: '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
|
|
4
|
+
domains:
|
|
5
|
+
anvil2:
|
|
6
|
+
type: staticAggregationIsm
|
|
7
|
+
modules:
|
|
8
|
+
- type: messageIdMultisigIsm
|
|
9
|
+
threshold: 1
|
|
10
|
+
validators:
|
|
11
|
+
- '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
|
|
12
|
+
- type: merkleRootMultisigIsm
|
|
13
|
+
threshold: 1
|
|
14
|
+
validators:
|
|
15
|
+
- '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
|
|
16
|
+
threshold: 1
|
|
17
|
+
|
|
18
|
+
anvil2:
|
|
19
|
+
type: domainRoutingIsm
|
|
20
|
+
owner: '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
|
|
21
|
+
domains:
|
|
22
|
+
anvil1:
|
|
23
|
+
type: staticAggregationIsm
|
|
24
|
+
modules:
|
|
25
|
+
- type: messageIdMultisigIsm
|
|
26
|
+
threshold: 1
|
|
27
|
+
validators:
|
|
28
|
+
- '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
|
|
29
|
+
- type: merkleRootMultisigIsm
|
|
30
|
+
threshold: 1
|
|
31
|
+
validators:
|
|
32
|
+
- '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
|
|
33
|
+
threshold: 1
|