@hyperlane-xyz/cli 9.0.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.
@@ -1,6 +1,6 @@
1
- import { WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
1
+ import { WarpRouteDeployConfigMailboxRequired } from '@hyperlane-xyz/sdk';
2
2
  export declare function runWarpRouteCheck({ warpRouteConfig, onChainWarpConfig, }: {
3
- warpRouteConfig: WarpRouteDeployConfig;
4
- onChainWarpConfig: WarpRouteDeployConfig;
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,EAAE,qBAAqB,EAAmB,MAAM,oBAAoB,CAAC;AAgB5E,wBAAsB,iBAAiB,CAAC,EACtC,eAAe,EACf,iBAAiB,GAClB,EAAE;IACD,eAAe,EAAE,qBAAqB,CAAC;IACvC,iBAAiB,EAAE,qBAAqB,CAAC;CAC1C,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB"}
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"}
@@ -1,18 +1,12 @@
1
1
  import { stringify as yamlStringify } from 'yaml';
2
- import { normalizeConfig } from '@hyperlane-xyz/sdk';
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(sanitizeConfig(onChainWarpConfig[chain]), sanitizeConfig(warpRouteConfig[chain]));
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,EAAyB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,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,GAAG,CAAC,aAAa,CAAC,CAAC;AAEvC,SAAS,cAAc,CAAC,GAAQ;IAC9B,uBAAuB;IACvB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACpC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACrE,CAAC;IACF,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC;AAED,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,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EACxC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CACvC,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"}
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"}
@@ -1,4 +1,4 @@
1
- import { ChainSubmissionStrategy, WarpCoreConfig, WarpRouteDeployConfigMailboxRequired } from '@hyperlane-xyz/sdk';
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;
@@ -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,EAML,uBAAuB,EAgCvB,cAAc,EAGd,oCAAoC,EASrC,MAAM,oBAAoB,CAAC;AAe5B,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;AAqWD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAuCf;AAmID;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,0BAA0B,EAAE,MAAM,GACjC,uBAAuB,CAKzB"}
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"}
@@ -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, EvmERC20WarpRouteReader, EvmHookModule, EvmIsmModule, ExplorerLicenseType, HypERC20Deployer, HypERC721Deployer, HyperlaneProxyFactoryDeployer, IsmType, TOKEN_TYPE_TO_STANDARD, TxSubmitterType, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, attachContractsMap, connectContractsMap, getTokenConnectionId, hypERC20factories, isCollateralTokenConfig, isTokenMetadata, isXERC20TokenConfig, } from '@hyperlane-xyz/sdk';
7
- import { ProtocolType, assert, objFilter, objKeys, objMap, promiseObjAll, retryAsync, } from '@hyperlane-xyz/utils';
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({ warpDeployConfig, context }, contracts) {
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,68 +221,95 @@ 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
- const transactions = [
249
- ...(await extendWarpRoute(params, apiKeys, warpDeployConfig, warpCoreConfigByChain)),
250
- ...(await updateExistingWarpRoute(params, apiKeys, warpDeployConfig, warpCoreConfigByChain)),
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
- async function extendWarpRoute(params, apiKeys, warpDeployConfig, warpCoreConfigByChain) {
257
- const { multiProvider } = params.context;
258
- const warpCoreChains = Object.keys(warpCoreConfigByChain);
259
- // Split between the existing and additional config
260
- const existingConfigs = objFilter(warpDeployConfig, (chain, _config) => warpCoreChains.includes(chain));
261
- let extendedConfigs = objFilter(warpDeployConfig, (chain, _config) => !warpCoreChains.includes(chain));
262
- const extendedChains = Object.keys(extendedConfigs);
263
- if (extendedChains.length === 0)
264
- return [];
265
- logBlue(`Extending Warp Route to ${extendedChains.join(', ')}`);
266
- extendedConfigs = await deriveMetadataFromExisting(multiProvider, existingConfigs, extendedConfigs);
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
- const mergedRouters = mergeAllRouters(multiProvider, existingConfigs, newDeployedContracts, warpCoreConfigByChain);
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
- await writeDeploymentArtifacts(updatedWarpCoreConfig, params.context, addWarpRouteOptions);
275
- return enrollRemoteRouters(params, mergedRouters);
256
+ return {
257
+ newDeployedContracts,
258
+ updatedWarpCoreConfig,
259
+ addWarpRouteOptions,
260
+ };
276
261
  }
277
- async function updateExistingWarpRoute(params, apiKeys, warpDeployConfig, warpCoreConfigByChain) {
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
- await promiseObjAll(objMap(warpDeployConfig, async (chain, config) => {
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
- logGray(`Update existing warp route for chain ${chain}`);
287
- const deployedConfig = warpCoreConfigByChain[chain];
288
- if (!deployedConfig)
289
- return logGray(`Missing artifacts for ${chain}. Probably new deployment. Skipping update...`);
290
- const deployedTokenRoute = deployedConfig.addressOrDenom;
291
- const { domainRoutingIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticAggregationIsmFactory, staticAggregationHookFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, mailbox, } = registryAddresses[chain];
292
- const configWithMailbox = { ...config, mailbox };
301
+ const deployedTokenRoute = deployedRoutersAddresses[chain];
302
+ assert(deployedTokenRoute, `Missing artifacts for ${chain}.`);
303
+ const configWithMailbox = {
304
+ ...config,
305
+ mailbox: registryAddresses[chain].mailbox,
306
+ };
293
307
  const evmERC20WarpModule = new EvmERC20WarpModule(multiProvider, {
294
308
  config: configWithMailbox,
295
309
  chain,
296
310
  addresses: {
297
311
  deployedTokenRoute,
298
- staticMerkleRootMultisigIsmFactory,
299
- staticMessageIdMultisigIsmFactory,
300
- staticAggregationIsmFactory,
301
- staticAggregationHookFactory,
302
- domainRoutingIsmFactory,
303
- staticMerkleRootWeightedMultisigIsmFactory,
304
- staticMessageIdWeightedMultisigIsmFactory,
312
+ ...extractIsmAndHookFactoryAddresses(registryAddresses[chain]),
305
313
  },
306
314
  }, ccipContractCache, contractVerifier);
307
315
  transactions.push(...(await evmERC20WarpModule.update(configWithMailbox)));
@@ -343,97 +351,6 @@ function mergeAllRouters(multiProvider, existingConfigs, deployedContractsMap, w
343
351
  ...deployedContractsMap,
344
352
  };
345
353
  }
346
- /**
347
- * Enroll all deployed routers with each other.
348
- *
349
- * @param deployedContractsMap - A map of deployed Hyperlane contracts by chain.
350
- * @param multiProvider - A MultiProvider instance to interact with multiple chains.
351
- */
352
- async function enrollRemoteRouters(params, deployedContractsMap) {
353
- logBlue(`Enrolling deployed routers with each other...`);
354
- const { multiProvider, registry } = params.context;
355
- const registryAddresses = await registry.getAddresses();
356
- const deployedRoutersAddresses = objMap(deployedContractsMap, (_, contracts) => getRouter(contracts).address);
357
- const deployedDestinationGas = await populateDestinationGas(multiProvider, params.warpDeployConfig, deployedContractsMap);
358
- const deployedChains = Object.keys(deployedRoutersAddresses);
359
- const transactions = [];
360
- await promiseObjAll(objMap(deployedContractsMap, async (chain, contracts) => {
361
- await retryAsync(async () => {
362
- const router = getRouter(contracts); // Assume deployedContract always has 1 value
363
- const deployedTokenRoute = router.address;
364
- // Mutate the config.remoteRouters by setting it to all other routers to update
365
- const warpRouteReader = new EvmERC20WarpRouteReader(multiProvider, chain);
366
- const mutatedWarpRouteConfig = await warpRouteReader.deriveWarpRouteConfig(deployedTokenRoute);
367
- const { domainRoutingIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticAggregationIsmFactory, staticAggregationHookFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, } = registryAddresses[chain];
368
- const evmERC20WarpModule = new EvmERC20WarpModule(multiProvider, {
369
- config: mutatedWarpRouteConfig,
370
- chain,
371
- addresses: {
372
- deployedTokenRoute,
373
- staticMerkleRootMultisigIsmFactory,
374
- staticMessageIdMultisigIsmFactory,
375
- staticAggregationIsmFactory,
376
- staticAggregationHookFactory,
377
- domainRoutingIsmFactory,
378
- staticMerkleRootWeightedMultisigIsmFactory,
379
- staticMessageIdWeightedMultisigIsmFactory,
380
- },
381
- });
382
- const otherChains = multiProvider
383
- .getRemoteChains(chain)
384
- .filter((c) => deployedChains.includes(c));
385
- mutatedWarpRouteConfig.remoteRouters =
386
- otherChains.reduce((remoteRouters, otherChain) => {
387
- remoteRouters[multiProvider.getDomainId(otherChain)] = {
388
- address: deployedRoutersAddresses[otherChain],
389
- };
390
- return remoteRouters;
391
- }, {});
392
- mutatedWarpRouteConfig.destinationGas =
393
- otherChains.reduce((destinationGas, otherChain) => {
394
- const otherChainDomain = multiProvider.getDomainId(otherChain);
395
- destinationGas[otherChainDomain] =
396
- deployedDestinationGas[otherChainDomain];
397
- return destinationGas;
398
- }, {});
399
- const mutatedConfigTxs = await evmERC20WarpModule.update(mutatedWarpRouteConfig);
400
- if (mutatedConfigTxs.length == 0)
401
- return logGreen(`Warp config on ${chain} is the same as target. No updates needed.`);
402
- transactions.push(...mutatedConfigTxs);
403
- });
404
- }));
405
- return transactions;
406
- }
407
- /**
408
- * Populates the destination gas amounts for each chain using warpConfig.gas OR querying other router's destinationGas
409
- */
410
- async function populateDestinationGas(multiProvider, warpDeployConfig, deployedContractsMap) {
411
- const destinationGas = {};
412
- const deployedChains = Object.keys(deployedContractsMap);
413
- await promiseObjAll(objMap(deployedContractsMap, async (chain, contracts) => {
414
- await retryAsync(async () => {
415
- const router = getRouter(contracts);
416
- const otherChains = multiProvider
417
- .getRemoteChains(chain)
418
- .filter((c) => deployedChains.includes(c));
419
- for (const otherChain of otherChains) {
420
- const otherDomain = multiProvider.getDomainId(otherChain);
421
- if (!destinationGas[otherDomain])
422
- destinationGas[otherDomain] =
423
- warpDeployConfig[otherChain].gas?.toString() ||
424
- (await router.destinationGas(otherDomain)).toString();
425
- }
426
- });
427
- }));
428
- return destinationGas;
429
- }
430
- function getRouter(contracts) {
431
- for (const key of objKeys(hypERC20factories)) {
432
- if (contracts[key])
433
- return contracts[key];
434
- }
435
- throw new Error('No matching contract found.');
436
- }
437
354
  function displayWarpDeployPlan(deployConfig) {
438
355
  logBlue('\nWarp Route Deployment Plan');
439
356
  logGray('==========================');
@@ -1 +1 @@
1
- {"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { ProcessOutput, ProcessPromise } from 'zx';
4
4
  import { ERC20Test, XERC20LockboxTest, XERC20VSTest } from '@hyperlane-xyz/core';
5
+ import { ChainAddresses } from '@hyperlane-xyz/registry';
5
6
  import { HypTokenRouterConfig } from '@hyperlane-xyz/sdk';
6
7
  import { Address } from '@hyperlane-xyz/utils';
8
+ import { CommandContext } from '../../context/types.js';
7
9
  export declare const E2E_TEST_CONFIGS_PATH = "./test-configs";
8
10
  export declare const REGISTRY_PATH = "./test-configs/anvil";
9
11
  export declare const TEMP_PATH = "/tmp";
@@ -69,6 +71,19 @@ export declare function extendWarpConfig(params: {
69
71
  warpDeployPath: string;
70
72
  strategyUrl?: string;
71
73
  }): Promise<string>;
74
+ /**
75
+ * Sets up an incomplete warp route extension for testing purposes.
76
+ *
77
+ * This function creates a new warp route configuration for the second chain.
78
+ */
79
+ export declare function setupIncompleteWarpRouteExtension(chain2Addresses: ChainAddresses): Promise<{
80
+ chain2DomainId: string;
81
+ chain3DomainId: string;
82
+ warpConfigPath: string;
83
+ configToExtend: HypTokenRouterConfig;
84
+ context: CommandContext;
85
+ combinedWarpCorePath: string;
86
+ }>;
72
87
  /**
73
88
  * Deploys new core contracts on the specified chain if it doesn't already exist, and returns the chain addresses.
74
89
  */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/tests/commands/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/tests/commands/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { ethers } from 'ethers';
1
+ import { Wallet, ethers } from 'ethers';
2
2
  import { $ } from 'zx';
3
3
  import { ERC20Test__factory, ERC4626Test__factory, XERC20LockboxTest__factory, XERC20VSTest__factory, } from '@hyperlane-xyz/core';
4
4
  import { createWarpRouteConfigId, } from '@hyperlane-xyz/registry';
5
- import { WarpCoreConfigSchema, } from '@hyperlane-xyz/sdk';
5
+ import { TokenType, WarpCoreConfigSchema, } from '@hyperlane-xyz/sdk';
6
6
  import { sleep } from '@hyperlane-xyz/utils';
7
7
  import { getContext } from '../../context/context.js';
8
+ import { extendWarpRoute as extendWarpRouteWithoutApplyTransactions } from '../../deploy/warp.js';
8
9
  import { readYamlOrJson, writeYamlOrJson } from '../../utils/files.js';
9
10
  import { hyperlaneCoreDeploy } from './core.js';
10
11
  import { hyperlaneWarpApply, hyperlaneWarpSendRelay, readWarpConfig, } from './warp.js';
@@ -126,10 +127,65 @@ export async function extendWarpConfig(params) {
126
127
  const { chain, chainToExtend, extendedConfig, warpCorePath, warpDeployPath, strategyUrl, } = params;
127
128
  const warpDeployConfig = await readWarpConfig(chain, warpCorePath, warpDeployPath);
128
129
  warpDeployConfig[chainToExtend] = extendedConfig;
130
+ // Remove remoteRouters and destinationGas as they are written in readWarpConfig
131
+ delete warpDeployConfig[chain].remoteRouters;
132
+ delete warpDeployConfig[chain].destinationGas;
129
133
  writeYamlOrJson(warpDeployPath, warpDeployConfig);
130
134
  await hyperlaneWarpApply(warpDeployPath, warpCorePath, strategyUrl);
131
135
  return warpDeployPath;
132
136
  }
137
+ /**
138
+ * Sets up an incomplete warp route extension for testing purposes.
139
+ *
140
+ * This function creates a new warp route configuration for the second chain.
141
+ */
142
+ export async function setupIncompleteWarpRouteExtension(chain2Addresses) {
143
+ const warpConfigPath = `${TEMP_PATH}/warp-route-deployment-2.yaml`;
144
+ const chain2DomainId = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
145
+ const chain3DomainId = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
146
+ const configToExtend = {
147
+ decimals: 18,
148
+ mailbox: chain2Addresses.mailbox,
149
+ name: 'Ether',
150
+ owner: new Wallet(ANVIL_KEY).address,
151
+ symbol: 'ETH',
152
+ totalSupply: 0,
153
+ type: TokenType.native,
154
+ };
155
+ const context = await getContext({
156
+ registryUris: [REGISTRY_PATH],
157
+ key: ANVIL_KEY,
158
+ });
159
+ const warpCoreConfig = readYamlOrJson(WARP_CORE_CONFIG_PATH_2);
160
+ const warpDeployConfig = await readWarpConfig(CHAIN_NAME_2, WARP_CORE_CONFIG_PATH_2, warpConfigPath);
161
+ warpDeployConfig[CHAIN_NAME_3] = configToExtend;
162
+ const signer2 = new Wallet(ANVIL_KEY, context.multiProvider.getProvider(CHAIN_NAME_2));
163
+ const signer3 = new Wallet(ANVIL_KEY, context.multiProvider.getProvider(CHAIN_NAME_3));
164
+ context.multiProvider.setSigner(CHAIN_NAME_2, signer2);
165
+ context.multiProvider.setSigner(CHAIN_NAME_3, signer3);
166
+ await extendWarpRouteWithoutApplyTransactions({
167
+ context: {
168
+ ...context,
169
+ signer: signer3,
170
+ key: ANVIL_KEY,
171
+ },
172
+ warpCoreConfig,
173
+ warpDeployConfig,
174
+ receiptsDir: TEMP_PATH,
175
+ }, {}, warpCoreConfig);
176
+ const combinedWarpCorePath = getCombinedWarpRoutePath('ETH', [
177
+ CHAIN_NAME_2,
178
+ CHAIN_NAME_3,
179
+ ]);
180
+ return {
181
+ chain2DomainId,
182
+ chain3DomainId,
183
+ warpConfigPath,
184
+ configToExtend,
185
+ context,
186
+ combinedWarpCorePath,
187
+ };
188
+ }
133
189
  /**
134
190
  * Deploys new core contracts on the specified chain if it doesn't already exist, and returns the chain addresses.
135
191
  */