@hyperlane-xyz/cli 8.9.0 → 9.1.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/src/check/warp.d.ts +3 -3
- package/dist/src/check/warp.d.ts.map +1 -1
- package/dist/src/check/warp.js +2 -8
- package/dist/src/check/warp.js.map +1 -1
- package/dist/src/commands/config.js +2 -2
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/warp.js +1 -1
- package/dist/src/commands/warp.js.map +1 -1
- package/dist/src/config/warp.d.ts +2 -2
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +5 -18
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/deploy/warp.d.ts +12 -2
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +73 -155
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/tests/commands/helpers.d.ts +15 -0
- package/dist/src/tests/commands/helpers.d.ts.map +1 -1
- package/dist/src/tests/commands/helpers.js +58 -2
- package/dist/src/tests/commands/helpers.js.map +1 -1
- package/dist/src/tests/commands/warp.d.ts +2 -2
- package/dist/src/tests/commands/warp.d.ts.map +1 -1
- package/dist/src/tests/commands/warp.js.map +1 -1
- package/dist/src/tests/warp/warp-apply-extend.e2e-test.js +251 -2
- package/dist/src/tests/warp/warp-apply-extend.e2e-test.js.map +1 -1
- package/dist/src/tests/warp/warp-apply.e2e-test.js +41 -2
- package/dist/src/tests/warp/warp-apply.e2e-test.js.map +1 -1
- package/dist/src/tests/warp/warp-check.e2e-test.js +25 -3
- package/dist/src/tests/warp/warp-check.e2e-test.js.map +1 -1
- package/dist/src/tests/warp/warp-init.e2e-test.js +4 -18
- package/dist/src/tests/warp/warp-init.e2e-test.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +3 -3
package/dist/src/check/warp.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WarpRouteDeployConfigMailboxRequired } from '@hyperlane-xyz/sdk';
|
|
2
2
|
export declare function runWarpRouteCheck({ warpRouteConfig, onChainWarpConfig, }: {
|
|
3
|
-
warpRouteConfig:
|
|
4
|
-
onChainWarpConfig:
|
|
3
|
+
warpRouteConfig: WarpRouteDeployConfigMailboxRequired;
|
|
4
|
+
onChainWarpConfig: WarpRouteDeployConfigMailboxRequired;
|
|
5
5
|
}): Promise<void>;
|
|
6
6
|
//# sourceMappingURL=warp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/check/warp.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/check/warp.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oCAAoC,EAErC,MAAM,oBAAoB,CAAC;AAM5B,wBAAsB,iBAAiB,CAAC,EACtC,eAAe,EACf,iBAAiB,GAClB,EAAE;IACD,eAAe,EAAE,oCAAoC,CAAC;IACtD,iBAAiB,EAAE,oCAAoC,CAAC;CACzD,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB"}
|
package/dist/src/check/warp.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { stringify as yamlStringify } from 'yaml';
|
|
2
|
-
import {
|
|
2
|
+
import { transformConfigToCheck, } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { diffObjMerge } from '@hyperlane-xyz/utils';
|
|
4
4
|
import { log, logGreen } from '../logger.js';
|
|
5
5
|
import { formatYamlViolationsOutput } from '../utils/output.js';
|
|
6
|
-
const KEYS_TO_IGNORE = ['totalSupply'];
|
|
7
|
-
function sanitizeConfig(obj) {
|
|
8
|
-
// Remove keys from obj
|
|
9
|
-
const filteredObj = Object.fromEntries(Object.entries(obj).filter(([key]) => !KEYS_TO_IGNORE.includes(key)));
|
|
10
|
-
return normalizeConfig(filteredObj);
|
|
11
|
-
}
|
|
12
6
|
export async function runWarpRouteCheck({ warpRouteConfig, onChainWarpConfig, }) {
|
|
13
7
|
// Go through each chain and only add to the output the chains that have mismatches
|
|
14
8
|
const [violations, isInvalid] = Object.keys(warpRouteConfig).reduce((acc, chain) => {
|
|
15
|
-
const { mergedObject, isInvalid } = diffObjMerge(
|
|
9
|
+
const { mergedObject, isInvalid } = diffObjMerge(transformConfigToCheck(onChainWarpConfig[chain]), transformConfigToCheck(warpRouteConfig[chain]));
|
|
16
10
|
if (isInvalid) {
|
|
17
11
|
acc[0][chain] = mergedObject;
|
|
18
12
|
acc[1] ||= isInvalid;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/check/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/check/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,EAEL,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAc,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,eAAe,EACf,iBAAiB,GAIlB;IACC,mFAAmF;IACnF,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CACjE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,YAAY,CAC9C,sBAAsB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAChD,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAC/C,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;YAC7B,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;QACvB,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EACD,CAAC,EAAE,EAAE,KAAK,CAA+C,CAC1D,CAAC;IAEF,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,0BAA0B,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -84,8 +84,8 @@ const validateWarpCommand = {
|
|
|
84
84
|
builder: {
|
|
85
85
|
path: inputFileCommandOption(),
|
|
86
86
|
},
|
|
87
|
-
handler: async ({ path }) => {
|
|
88
|
-
await readWarpRouteDeployConfig(path);
|
|
87
|
+
handler: async ({ path, context }) => {
|
|
88
|
+
await readWarpRouteDeployConfig(path, context);
|
|
89
89
|
logGreen('Config is valid');
|
|
90
90
|
process.exit(0);
|
|
91
91
|
},
|
|
@@ -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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"}
|
|
@@ -63,7 +63,7 @@ export const apply = {
|
|
|
63
63
|
});
|
|
64
64
|
if (strategyUrl)
|
|
65
65
|
ChainSubmissionStrategySchema.parse(readYamlOrJson(strategyUrl));
|
|
66
|
-
const warpDeployConfig = await readWarpRouteDeployConfig(config);
|
|
66
|
+
const warpDeployConfig = await readWarpRouteDeployConfig(config, context);
|
|
67
67
|
await runWarpRouteApply({
|
|
68
68
|
context,
|
|
69
69
|
warpDeployConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/commands/warp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/commands/warp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { WarpCoreConfig,
|
|
1
|
+
import { WarpCoreConfig, WarpRouteDeployConfigMailboxRequired } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import { CommandContext } from '../context/types.js';
|
|
3
|
-
export declare function readWarpRouteDeployConfig(filePath: string, context
|
|
3
|
+
export declare function readWarpRouteDeployConfig(filePath: string, context: CommandContext): Promise<WarpRouteDeployConfigMailboxRequired>;
|
|
4
4
|
export declare function isValidWarpRouteDeployConfig(config: any): boolean;
|
|
5
5
|
export declare function createWarpRouteDeployConfig({ context, outPath, advanced, }: {
|
|
6
6
|
context: CommandContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,cAAc,
|
|
1
|
+
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,cAAc,EAGd,oCAAoC,EAGrC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAyErD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,oCAAoC,CAAC,CAS/C;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,GAAG,WAEvD;AAED,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,OAAO,EACP,QAAgB,GACjB,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB,iBAyIA;AAQD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAInE"}
|
package/dist/src/config/warp.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { confirm, input, select } from '@inquirer/prompts';
|
|
2
2
|
import { stringify as yamlStringify } from 'yaml';
|
|
3
|
-
import { IsmType, TokenType, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, } from '@hyperlane-xyz/sdk';
|
|
4
|
-
import { assert,
|
|
3
|
+
import { IsmType, TokenType, WarpCoreConfigSchema, WarpRouteDeployConfigMailboxRequiredSchema, WarpRouteDeployConfigSchema, } from '@hyperlane-xyz/sdk';
|
|
4
|
+
import { assert, objMap, promiseObjAll } from '@hyperlane-xyz/utils';
|
|
5
5
|
import { errorRed, log, logBlue, logGreen } from '../logger.js';
|
|
6
6
|
import { runMultiChainSelectionStep } from '../utils/chains.js';
|
|
7
7
|
import { indentYamlOrJson, readYamlOrJson, writeYamlOrJson, } from '../utils/files.js';
|
|
@@ -54,10 +54,9 @@ export async function readWarpRouteDeployConfig(filePath, context) {
|
|
|
54
54
|
let config = readYamlOrJson(filePath);
|
|
55
55
|
if (!config)
|
|
56
56
|
throw new Error(`No warp route deploy config found at ${filePath}`);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return WarpRouteDeployConfigSchema.parse(config);
|
|
57
|
+
config = await fillDefaults(context, config);
|
|
58
|
+
//fillDefaults would have added a mailbox to the config if it was missing
|
|
59
|
+
return WarpRouteDeployConfigMailboxRequiredSchema.parse(config);
|
|
61
60
|
}
|
|
62
61
|
export function isValidWarpRouteDeployConfig(config) {
|
|
63
62
|
return WarpRouteDeployConfigSchema.safeParse(config).success;
|
|
@@ -77,13 +76,6 @@ export async function createWarpRouteDeployConfig({ context, outPath, advanced =
|
|
|
77
76
|
for (const chain of warpChains) {
|
|
78
77
|
logBlue(`${chain}: Configuring warp route...`);
|
|
79
78
|
const owner = await detectAndConfirmOrPrompt(async () => context.signerAddress, 'Enter the desired', 'owner address', 'signer');
|
|
80
|
-
// default to the mailbox from the registry and if not found ask to the user to submit one
|
|
81
|
-
const chainAddresses = await context.registry.getChainAddresses(chain);
|
|
82
|
-
const mailbox = chainAddresses?.mailbox ??
|
|
83
|
-
(await input({
|
|
84
|
-
validate: isAddress,
|
|
85
|
-
message: `Could not retrieve mailbox address from the registry for chain "${chain}". Please enter a valid mailbox address:`,
|
|
86
|
-
}));
|
|
87
79
|
const proxyAdmin = await setProxyAdminConfig(context, chain);
|
|
88
80
|
/**
|
|
89
81
|
* The logic from the cli is as follows:
|
|
@@ -119,7 +111,6 @@ export async function createWarpRouteDeployConfig({ context, outPath, advanced =
|
|
|
119
111
|
case TokenType.collateralUri:
|
|
120
112
|
case TokenType.fastCollateral:
|
|
121
113
|
result[chain] = {
|
|
122
|
-
mailbox,
|
|
123
114
|
type,
|
|
124
115
|
owner,
|
|
125
116
|
proxyAdmin,
|
|
@@ -132,7 +123,6 @@ export async function createWarpRouteDeployConfig({ context, outPath, advanced =
|
|
|
132
123
|
break;
|
|
133
124
|
case TokenType.syntheticRebase:
|
|
134
125
|
result[chain] = {
|
|
135
|
-
mailbox,
|
|
136
126
|
type,
|
|
137
127
|
owner,
|
|
138
128
|
isNft,
|
|
@@ -147,7 +137,6 @@ export async function createWarpRouteDeployConfig({ context, outPath, advanced =
|
|
|
147
137
|
break;
|
|
148
138
|
case TokenType.collateralVaultRebase:
|
|
149
139
|
result[chain] = {
|
|
150
|
-
mailbox,
|
|
151
140
|
type,
|
|
152
141
|
owner,
|
|
153
142
|
proxyAdmin,
|
|
@@ -161,7 +150,6 @@ export async function createWarpRouteDeployConfig({ context, outPath, advanced =
|
|
|
161
150
|
break;
|
|
162
151
|
case TokenType.collateralVault:
|
|
163
152
|
result[chain] = {
|
|
164
|
-
mailbox,
|
|
165
153
|
type,
|
|
166
154
|
owner,
|
|
167
155
|
proxyAdmin,
|
|
@@ -174,7 +162,6 @@ export async function createWarpRouteDeployConfig({ context, outPath, advanced =
|
|
|
174
162
|
break;
|
|
175
163
|
default:
|
|
176
164
|
result[chain] = {
|
|
177
|
-
mailbox,
|
|
178
165
|
type,
|
|
179
166
|
owner,
|
|
180
167
|
proxyAdmin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,EAIL,OAAO,EAEP,SAAS,EAET,oBAAoB,
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ChainSubmissionStrategy, WarpCoreConfig,
|
|
1
|
+
import { ChainMap, ChainSubmissionStrategy, WarpCoreConfig, WarpRouteDeployConfigMailboxRequired } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import { WriteCommandContext } from '../context/types.js';
|
|
3
3
|
interface DeployParams {
|
|
4
4
|
context: WriteCommandContext;
|
|
5
|
-
warpDeployConfig:
|
|
5
|
+
warpDeployConfig: WarpRouteDeployConfigMailboxRequired;
|
|
6
6
|
}
|
|
7
7
|
interface WarpApplyParams extends DeployParams {
|
|
8
8
|
warpCoreConfig: WarpCoreConfig;
|
|
@@ -14,6 +14,16 @@ export declare function runWarpRouteDeploy({ context, warpRouteDeploymentConfigP
|
|
|
14
14
|
warpRouteDeploymentConfigPath?: string;
|
|
15
15
|
}): Promise<void>;
|
|
16
16
|
export declare function runWarpRouteApply(params: WarpApplyParams): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Extends an existing Warp route to include new chains.
|
|
19
|
+
* This function manages the entire extension workflow:
|
|
20
|
+
* 1. Divides the configuration into existing and new chain segments.
|
|
21
|
+
* 2. Returns the current configuration if no new chains are added.
|
|
22
|
+
* 3. Deploys and sets up new contracts for the additional chains.
|
|
23
|
+
* 4. Refreshes the Warp core configuration with updated token details.
|
|
24
|
+
* 5. Saves the revised artifacts to the registry.
|
|
25
|
+
*/
|
|
26
|
+
export declare function extendWarpRoute(params: WarpApplyParams, apiKeys: ChainMap<string>, warpCoreConfig: WarpCoreConfig): Promise<WarpCoreConfig>;
|
|
17
27
|
/**
|
|
18
28
|
* Retrieves a chain submission strategy from the provided filepath.
|
|
19
29
|
* @param submissionStrategyFilepath a filepath to the submission strategy file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,QAAQ,EAER,uBAAuB,EA4BvB,cAAc,EAEd,oCAAoC,EAarC,MAAM,oBAAoB,CAAC;AAa5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAiB1D,UAAU,YAAY;IACpB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,oCAAoC,CAAC;CACxD;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC5C,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,6BAA6B,GAC9B,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,iBA4DA;AA+TD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAmCf;AAoDD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,cAAc,CAAC,CAoCzB;AAgED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,0BAA0B,EAAE,MAAM,GACjC,uBAAuB,CAKzB"}
|
package/dist/src/deploy/warp.js
CHANGED
|
@@ -3,8 +3,8 @@ import { groupBy } from 'lodash-es';
|
|
|
3
3
|
import { stringify as yamlStringify } from 'yaml';
|
|
4
4
|
import { ProxyAdmin__factory } from '@hyperlane-xyz/core';
|
|
5
5
|
import { buildArtifact as coreBuildArtifact } from '@hyperlane-xyz/core/buildArtifact.js';
|
|
6
|
-
import { CCIPContractCache, ChainSubmissionStrategySchema, ContractVerifier, EvmERC20WarpModule,
|
|
7
|
-
import { ProtocolType, assert,
|
|
6
|
+
import { CCIPContractCache, ChainSubmissionStrategySchema, ContractVerifier, EvmERC20WarpModule, EvmHookModule, EvmIsmModule, ExplorerLicenseType, HypERC20Deployer, HypERC721Deployer, HyperlaneProxyFactoryDeployer, IsmType, TOKEN_TYPE_TO_STANDARD, TxSubmitterType, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, attachContractsMap, connectContractsMap, expandWarpDeployConfig, extractIsmAndHookFactoryAddresses, getRouterAddressesFromWarpCoreConfig, getTokenConnectionId, hypERC20factories, isCollateralTokenConfig, isTokenMetadata, isXERC20TokenConfig, splitWarpCoreAndExtendedConfigs, } from '@hyperlane-xyz/sdk';
|
|
7
|
+
import { ProtocolType, assert, objMap, promiseObjAll, retryAsync, } from '@hyperlane-xyz/utils';
|
|
8
8
|
import { readWarpRouteDeployConfig } from '../config/warp.js';
|
|
9
9
|
import { MINIMUM_WARP_DEPLOY_GAS } from '../consts.js';
|
|
10
10
|
import { requestAndSaveApiKeys } from '../context/context.js';
|
|
@@ -126,20 +126,11 @@ async function createWarpIsm({ ccipContractCache, chain, chainAddresses, context
|
|
|
126
126
|
logBlue(`Loading registry factory addresses for ${chain}...`);
|
|
127
127
|
logGray(`Creating ${interchainSecurityModule.type} ISM for token on ${chain} chain...`);
|
|
128
128
|
logGreen(`Finished creating ${interchainSecurityModule.type} ISM for token on ${chain} chain.`);
|
|
129
|
-
const { mailbox, domainRoutingIsmFactory, staticAggregationHookFactory, staticAggregationIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, } = chainAddresses;
|
|
130
129
|
const evmIsmModule = await EvmIsmModule.create({
|
|
131
130
|
chain,
|
|
132
|
-
mailbox,
|
|
131
|
+
mailbox: chainAddresses.mailbox,
|
|
133
132
|
multiProvider: context.multiProvider,
|
|
134
|
-
proxyFactoryFactories:
|
|
135
|
-
domainRoutingIsmFactory,
|
|
136
|
-
staticAggregationHookFactory,
|
|
137
|
-
staticAggregationIsmFactory,
|
|
138
|
-
staticMerkleRootMultisigIsmFactory,
|
|
139
|
-
staticMessageIdMultisigIsmFactory,
|
|
140
|
-
staticMerkleRootWeightedMultisigIsmFactory,
|
|
141
|
-
staticMessageIdWeightedMultisigIsmFactory,
|
|
142
|
-
},
|
|
133
|
+
proxyFactoryFactories: extractIsmAndHookFactoryAddresses(chainAddresses),
|
|
143
134
|
config: interchainSecurityModule,
|
|
144
135
|
ccipContractCache,
|
|
145
136
|
contractVerifier,
|
|
@@ -155,16 +146,6 @@ async function createWarpHook({ ccipContractCache, chain, chainAddresses, contex
|
|
|
155
146
|
}
|
|
156
147
|
logBlue(`Loading registry factory addresses for ${chain}...`);
|
|
157
148
|
logGray(`Creating ${hook.type} Hook for token on ${chain} chain...`);
|
|
158
|
-
const { mailbox, domainRoutingIsmFactory, staticAggregationHookFactory, staticAggregationIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, } = chainAddresses;
|
|
159
|
-
const proxyFactoryFactories = {
|
|
160
|
-
domainRoutingIsmFactory,
|
|
161
|
-
staticAggregationHookFactory,
|
|
162
|
-
staticAggregationIsmFactory,
|
|
163
|
-
staticMerkleRootMultisigIsmFactory,
|
|
164
|
-
staticMessageIdMultisigIsmFactory,
|
|
165
|
-
staticMerkleRootWeightedMultisigIsmFactory,
|
|
166
|
-
staticMessageIdWeightedMultisigIsmFactory,
|
|
167
|
-
};
|
|
168
149
|
// If config.proxyadmin.address exists, then use that. otherwise deploy a new proxyAdmin
|
|
169
150
|
const proxyAdminAddress = warpConfig.proxyAdmin?.address ??
|
|
170
151
|
(await context.multiProvider.handleDeploy(chain, new ProxyAdmin__factory(), [])).address;
|
|
@@ -172,26 +153,26 @@ async function createWarpHook({ ccipContractCache, chain, chainAddresses, contex
|
|
|
172
153
|
chain,
|
|
173
154
|
multiProvider: context.multiProvider,
|
|
174
155
|
coreAddresses: {
|
|
175
|
-
mailbox,
|
|
156
|
+
mailbox: chainAddresses.mailbox,
|
|
176
157
|
proxyAdmin: proxyAdminAddress,
|
|
177
158
|
},
|
|
178
159
|
config: hook,
|
|
179
160
|
ccipContractCache,
|
|
180
161
|
contractVerifier,
|
|
181
|
-
proxyFactoryFactories,
|
|
162
|
+
proxyFactoryFactories: extractIsmAndHookFactoryAddresses(chainAddresses),
|
|
182
163
|
});
|
|
183
164
|
logGreen(`Finished creating ${hook.type} Hook for token on ${chain} chain.`);
|
|
184
165
|
const { deployedHook } = evmHookModule.serialize();
|
|
185
166
|
return deployedHook;
|
|
186
167
|
}
|
|
187
|
-
async function getWarpCoreConfig(
|
|
168
|
+
async function getWarpCoreConfig(params, contracts) {
|
|
188
169
|
const warpCoreConfig = { tokens: [] };
|
|
189
170
|
// TODO: replace with warp read
|
|
190
|
-
const tokenMetadata = await HypERC20Deployer.deriveTokenMetadata(context.multiProvider, warpDeployConfig);
|
|
171
|
+
const tokenMetadata = await HypERC20Deployer.deriveTokenMetadata(params.context.multiProvider, params.warpDeployConfig);
|
|
191
172
|
assert(tokenMetadata && isTokenMetadata(tokenMetadata), 'Missing required token metadata');
|
|
192
173
|
const { decimals, symbol, name } = tokenMetadata;
|
|
193
174
|
assert(decimals, 'Missing decimals on token metadata');
|
|
194
|
-
generateTokenConfigs(warpCoreConfig, warpDeployConfig, contracts, symbol, name, decimals);
|
|
175
|
+
generateTokenConfigs(warpCoreConfig, params.warpDeployConfig, contracts, symbol, name, decimals);
|
|
195
176
|
fullyConnectTokens(warpCoreConfig);
|
|
196
177
|
return { warpCoreConfig, addWarpRouteOptions: { symbol } };
|
|
197
178
|
}
|
|
@@ -240,70 +221,98 @@ export async function runWarpRouteApply(params) {
|
|
|
240
221
|
const { chainMetadata, skipConfirmation } = context;
|
|
241
222
|
WarpRouteDeployConfigSchema.parse(warpDeployConfig);
|
|
242
223
|
WarpCoreConfigSchema.parse(warpCoreConfig);
|
|
243
|
-
const warpCoreConfigByChain = Object.fromEntries(warpCoreConfig.tokens.map((token) => [token.chainName, token]));
|
|
244
224
|
const chains = Object.keys(warpDeployConfig);
|
|
245
225
|
let apiKeys = {};
|
|
246
226
|
if (!skipConfirmation)
|
|
247
227
|
apiKeys = await requestAndSaveApiKeys(chains, chainMetadata, context.registry);
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
228
|
+
// Extend the warp route and get the updated configs
|
|
229
|
+
const updatedWarpCoreConfig = await extendWarpRoute(params, apiKeys, warpCoreConfig);
|
|
230
|
+
// Then create and submit update transactions
|
|
231
|
+
const transactions = await updateExistingWarpRoute(params, apiKeys, warpDeployConfig, updatedWarpCoreConfig);
|
|
252
232
|
if (transactions.length == 0)
|
|
253
233
|
return logGreen(`Warp config is the same as target. No updates needed.`);
|
|
254
234
|
await submitWarpApplyTransactions(params, groupBy(transactions, 'chainId'));
|
|
255
235
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
extendedConfigs = await deriveMetadataFromExisting(multiProvider, existingConfigs,
|
|
236
|
+
/**
|
|
237
|
+
* Handles the deployment and configuration of new contracts for extending a Warp route.
|
|
238
|
+
* This function performs several key steps:
|
|
239
|
+
* 1. Derives metadata from existing contracts and applies it to new configurations
|
|
240
|
+
* 2. Deploys new contracts using the derived configurations
|
|
241
|
+
* 3. Merges existing and new router configurations
|
|
242
|
+
* 4. Generates an updated Warp core configuration
|
|
243
|
+
*/
|
|
244
|
+
async function deployWarpExtensionContracts(params, apiKeys, existingConfigs, initialExtendedConfigs, warpCoreConfigByChain) {
|
|
245
|
+
// Deploy new contracts with derived metadata
|
|
246
|
+
const extendedConfigs = await deriveMetadataFromExisting(params.context.multiProvider, existingConfigs, initialExtendedConfigs);
|
|
267
247
|
const newDeployedContracts = await executeDeploy({
|
|
268
248
|
context: params.context,
|
|
269
249
|
warpDeployConfig: extendedConfigs,
|
|
270
250
|
}, apiKeys);
|
|
271
|
-
|
|
251
|
+
// Merge existing and new routers
|
|
252
|
+
const mergedRouters = mergeAllRouters(params.context.multiProvider, existingConfigs, newDeployedContracts, warpCoreConfigByChain);
|
|
253
|
+
// Get the updated core config
|
|
272
254
|
const { warpCoreConfig: updatedWarpCoreConfig, addWarpRouteOptions } = await getWarpCoreConfig(params, mergedRouters);
|
|
273
255
|
WarpCoreConfigSchema.parse(updatedWarpCoreConfig);
|
|
274
|
-
|
|
275
|
-
|
|
256
|
+
return {
|
|
257
|
+
newDeployedContracts,
|
|
258
|
+
updatedWarpCoreConfig,
|
|
259
|
+
addWarpRouteOptions,
|
|
260
|
+
};
|
|
276
261
|
}
|
|
277
|
-
|
|
262
|
+
/**
|
|
263
|
+
* Extends an existing Warp route to include new chains.
|
|
264
|
+
* This function manages the entire extension workflow:
|
|
265
|
+
* 1. Divides the configuration into existing and new chain segments.
|
|
266
|
+
* 2. Returns the current configuration if no new chains are added.
|
|
267
|
+
* 3. Deploys and sets up new contracts for the additional chains.
|
|
268
|
+
* 4. Refreshes the Warp core configuration with updated token details.
|
|
269
|
+
* 5. Saves the revised artifacts to the registry.
|
|
270
|
+
*/
|
|
271
|
+
export async function extendWarpRoute(params, apiKeys, warpCoreConfig) {
|
|
272
|
+
const { context, warpDeployConfig } = params;
|
|
273
|
+
const warpCoreConfigByChain = Object.fromEntries(warpCoreConfig.tokens.map((token) => [token.chainName, token]));
|
|
274
|
+
const warpCoreChains = Object.keys(warpCoreConfigByChain);
|
|
275
|
+
// Split between the existing and additional config
|
|
276
|
+
const [existingConfigs, initialExtendedConfigs] = splitWarpCoreAndExtendedConfigs(warpDeployConfig, warpCoreChains);
|
|
277
|
+
const extendedChains = Object.keys(initialExtendedConfigs);
|
|
278
|
+
if (extendedChains.length === 0) {
|
|
279
|
+
return warpCoreConfig;
|
|
280
|
+
}
|
|
281
|
+
logBlue(`Extending Warp Route to ${extendedChains.join(', ')}`);
|
|
282
|
+
// Deploy new contracts with derived metadata and merge with existing config
|
|
283
|
+
const { updatedWarpCoreConfig, addWarpRouteOptions } = await deployWarpExtensionContracts(params, apiKeys, existingConfigs, initialExtendedConfigs, warpCoreConfigByChain);
|
|
284
|
+
// Write the updated artifacts
|
|
285
|
+
await writeDeploymentArtifacts(updatedWarpCoreConfig, context, addWarpRouteOptions);
|
|
286
|
+
return updatedWarpCoreConfig;
|
|
287
|
+
}
|
|
288
|
+
// Updates Warp routes with new configurations.
|
|
289
|
+
async function updateExistingWarpRoute(params, apiKeys, warpDeployConfig, warpCoreConfig) {
|
|
278
290
|
logBlue('Updating deployed Warp Routes');
|
|
279
291
|
const { multiProvider, registry } = params.context;
|
|
280
292
|
const registryAddresses = (await registry.getAddresses());
|
|
281
293
|
const ccipContractCache = new CCIPContractCache(registryAddresses);
|
|
282
294
|
const contractVerifier = new ContractVerifier(multiProvider, apiKeys, coreBuildArtifact, ExplorerLicenseType.MIT);
|
|
283
295
|
const transactions = [];
|
|
284
|
-
|
|
296
|
+
// Get all deployed router addresses
|
|
297
|
+
const deployedRoutersAddresses = getRouterAddressesFromWarpCoreConfig(warpCoreConfig);
|
|
298
|
+
const expandedWarpDeployConfig = await expandWarpDeployConfig(multiProvider, warpDeployConfig, deployedRoutersAddresses);
|
|
299
|
+
await promiseObjAll(objMap(expandedWarpDeployConfig, async (chain, config) => {
|
|
285
300
|
await retryAsync(async () => {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
301
|
+
const deployedTokenRoute = deployedRoutersAddresses[chain];
|
|
302
|
+
assert(deployedTokenRoute, `Missing artifacts for ${chain}.`);
|
|
303
|
+
const configWithMailbox = {
|
|
304
|
+
...config,
|
|
305
|
+
mailbox: registryAddresses[chain].mailbox,
|
|
306
|
+
};
|
|
292
307
|
const evmERC20WarpModule = new EvmERC20WarpModule(multiProvider, {
|
|
293
|
-
config,
|
|
308
|
+
config: configWithMailbox,
|
|
294
309
|
chain,
|
|
295
310
|
addresses: {
|
|
296
311
|
deployedTokenRoute,
|
|
297
|
-
|
|
298
|
-
staticMessageIdMultisigIsmFactory,
|
|
299
|
-
staticAggregationIsmFactory,
|
|
300
|
-
staticAggregationHookFactory,
|
|
301
|
-
domainRoutingIsmFactory,
|
|
302
|
-
staticMerkleRootWeightedMultisigIsmFactory,
|
|
303
|
-
staticMessageIdWeightedMultisigIsmFactory,
|
|
312
|
+
...extractIsmAndHookFactoryAddresses(registryAddresses[chain]),
|
|
304
313
|
},
|
|
305
314
|
}, ccipContractCache, contractVerifier);
|
|
306
|
-
transactions.push(...(await evmERC20WarpModule.update(
|
|
315
|
+
transactions.push(...(await evmERC20WarpModule.update(configWithMailbox)));
|
|
307
316
|
});
|
|
308
317
|
}));
|
|
309
318
|
return transactions;
|
|
@@ -342,97 +351,6 @@ function mergeAllRouters(multiProvider, existingConfigs, deployedContractsMap, w
|
|
|
342
351
|
...deployedContractsMap,
|
|
343
352
|
};
|
|
344
353
|
}
|
|
345
|
-
/**
|
|
346
|
-
* Enroll all deployed routers with each other.
|
|
347
|
-
*
|
|
348
|
-
* @param deployedContractsMap - A map of deployed Hyperlane contracts by chain.
|
|
349
|
-
* @param multiProvider - A MultiProvider instance to interact with multiple chains.
|
|
350
|
-
*/
|
|
351
|
-
async function enrollRemoteRouters(params, deployedContractsMap) {
|
|
352
|
-
logBlue(`Enrolling deployed routers with each other...`);
|
|
353
|
-
const { multiProvider, registry } = params.context;
|
|
354
|
-
const registryAddresses = await registry.getAddresses();
|
|
355
|
-
const deployedRoutersAddresses = objMap(deployedContractsMap, (_, contracts) => getRouter(contracts).address);
|
|
356
|
-
const deployedDestinationGas = await populateDestinationGas(multiProvider, params.warpDeployConfig, deployedContractsMap);
|
|
357
|
-
const deployedChains = Object.keys(deployedRoutersAddresses);
|
|
358
|
-
const transactions = [];
|
|
359
|
-
await promiseObjAll(objMap(deployedContractsMap, async (chain, contracts) => {
|
|
360
|
-
await retryAsync(async () => {
|
|
361
|
-
const router = getRouter(contracts); // Assume deployedContract always has 1 value
|
|
362
|
-
const deployedTokenRoute = router.address;
|
|
363
|
-
// Mutate the config.remoteRouters by setting it to all other routers to update
|
|
364
|
-
const warpRouteReader = new EvmERC20WarpRouteReader(multiProvider, chain);
|
|
365
|
-
const mutatedWarpRouteConfig = await warpRouteReader.deriveWarpRouteConfig(deployedTokenRoute);
|
|
366
|
-
const { domainRoutingIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticAggregationIsmFactory, staticAggregationHookFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, } = registryAddresses[chain];
|
|
367
|
-
const evmERC20WarpModule = new EvmERC20WarpModule(multiProvider, {
|
|
368
|
-
config: mutatedWarpRouteConfig,
|
|
369
|
-
chain,
|
|
370
|
-
addresses: {
|
|
371
|
-
deployedTokenRoute,
|
|
372
|
-
staticMerkleRootMultisigIsmFactory,
|
|
373
|
-
staticMessageIdMultisigIsmFactory,
|
|
374
|
-
staticAggregationIsmFactory,
|
|
375
|
-
staticAggregationHookFactory,
|
|
376
|
-
domainRoutingIsmFactory,
|
|
377
|
-
staticMerkleRootWeightedMultisigIsmFactory,
|
|
378
|
-
staticMessageIdWeightedMultisigIsmFactory,
|
|
379
|
-
},
|
|
380
|
-
});
|
|
381
|
-
const otherChains = multiProvider
|
|
382
|
-
.getRemoteChains(chain)
|
|
383
|
-
.filter((c) => deployedChains.includes(c));
|
|
384
|
-
mutatedWarpRouteConfig.remoteRouters =
|
|
385
|
-
otherChains.reduce((remoteRouters, otherChain) => {
|
|
386
|
-
remoteRouters[multiProvider.getDomainId(otherChain)] = {
|
|
387
|
-
address: deployedRoutersAddresses[otherChain],
|
|
388
|
-
};
|
|
389
|
-
return remoteRouters;
|
|
390
|
-
}, {});
|
|
391
|
-
mutatedWarpRouteConfig.destinationGas =
|
|
392
|
-
otherChains.reduce((destinationGas, otherChain) => {
|
|
393
|
-
const otherChainDomain = multiProvider.getDomainId(otherChain);
|
|
394
|
-
destinationGas[otherChainDomain] =
|
|
395
|
-
deployedDestinationGas[otherChainDomain];
|
|
396
|
-
return destinationGas;
|
|
397
|
-
}, {});
|
|
398
|
-
const mutatedConfigTxs = await evmERC20WarpModule.update(mutatedWarpRouteConfig);
|
|
399
|
-
if (mutatedConfigTxs.length == 0)
|
|
400
|
-
return logGreen(`Warp config on ${chain} is the same as target. No updates needed.`);
|
|
401
|
-
transactions.push(...mutatedConfigTxs);
|
|
402
|
-
});
|
|
403
|
-
}));
|
|
404
|
-
return transactions;
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* Populates the destination gas amounts for each chain using warpConfig.gas OR querying other router's destinationGas
|
|
408
|
-
*/
|
|
409
|
-
async function populateDestinationGas(multiProvider, warpDeployConfig, deployedContractsMap) {
|
|
410
|
-
const destinationGas = {};
|
|
411
|
-
const deployedChains = Object.keys(deployedContractsMap);
|
|
412
|
-
await promiseObjAll(objMap(deployedContractsMap, async (chain, contracts) => {
|
|
413
|
-
await retryAsync(async () => {
|
|
414
|
-
const router = getRouter(contracts);
|
|
415
|
-
const otherChains = multiProvider
|
|
416
|
-
.getRemoteChains(chain)
|
|
417
|
-
.filter((c) => deployedChains.includes(c));
|
|
418
|
-
for (const otherChain of otherChains) {
|
|
419
|
-
const otherDomain = multiProvider.getDomainId(otherChain);
|
|
420
|
-
if (!destinationGas[otherDomain])
|
|
421
|
-
destinationGas[otherDomain] =
|
|
422
|
-
warpDeployConfig[otherChain].gas?.toString() ||
|
|
423
|
-
(await router.destinationGas(otherDomain)).toString();
|
|
424
|
-
}
|
|
425
|
-
});
|
|
426
|
-
}));
|
|
427
|
-
return destinationGas;
|
|
428
|
-
}
|
|
429
|
-
function getRouter(contracts) {
|
|
430
|
-
for (const key of objKeys(hypERC20factories)) {
|
|
431
|
-
if (contracts[key])
|
|
432
|
-
return contracts[key];
|
|
433
|
-
}
|
|
434
|
-
throw new Error('No matching contract found.');
|
|
435
|
-
}
|
|
436
354
|
function displayWarpDeployPlan(deployConfig) {
|
|
437
355
|
logBlue('\nWarp Route Deployment Plan');
|
|
438
356
|
logGray('==========================');
|