@hyperlane-xyz/cli 4.1.0 → 4.2.0-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +4 -1
  2. package/dist/cli.js +2 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/src/commands/options.d.ts +2 -0
  5. package/dist/src/commands/options.d.ts.map +1 -1
  6. package/dist/src/commands/options.js +14 -3
  7. package/dist/src/commands/options.js.map +1 -1
  8. package/dist/src/commands/registry.js +16 -9
  9. package/dist/src/commands/registry.js.map +1 -1
  10. package/dist/src/commands/signCommands.d.ts.map +1 -1
  11. package/dist/src/commands/signCommands.js +1 -1
  12. package/dist/src/commands/signCommands.js.map +1 -1
  13. package/dist/src/commands/status.d.ts +2 -0
  14. package/dist/src/commands/status.d.ts.map +1 -1
  15. package/dist/src/commands/status.js +6 -1
  16. package/dist/src/commands/status.js.map +1 -1
  17. package/dist/src/commands/submit.d.ts +11 -0
  18. package/dist/src/commands/submit.d.ts.map +1 -0
  19. package/dist/src/commands/submit.js +28 -0
  20. package/dist/src/commands/submit.js.map +1 -0
  21. package/dist/src/commands/warp.d.ts +5 -0
  22. package/dist/src/commands/warp.d.ts.map +1 -1
  23. package/dist/src/commands/warp.js +41 -3
  24. package/dist/src/commands/warp.js.map +1 -1
  25. package/dist/src/config/agent.d.ts +1 -1
  26. package/dist/src/config/agent.d.ts.map +1 -1
  27. package/dist/src/config/agent.js +59 -17
  28. package/dist/src/config/agent.js.map +1 -1
  29. package/dist/src/config/chain.d.ts.map +1 -1
  30. package/dist/src/config/chain.js +37 -2
  31. package/dist/src/config/chain.js.map +1 -1
  32. package/dist/src/config/hooks.d.ts +133 -133
  33. package/dist/src/config/prompts.d.ts +2 -0
  34. package/dist/src/config/prompts.d.ts.map +1 -0
  35. package/dist/src/config/prompts.js +9 -0
  36. package/dist/src/config/prompts.js.map +1 -0
  37. package/dist/src/config/submit.d.ts +7 -0
  38. package/dist/src/config/submit.d.ts.map +1 -0
  39. package/dist/src/config/submit.js +33 -0
  40. package/dist/src/config/submit.js.map +1 -0
  41. package/dist/src/config/warp.js +1 -1
  42. package/dist/src/config/warp.js.map +1 -1
  43. package/dist/src/context/context.d.ts +4 -3
  44. package/dist/src/context/context.d.ts.map +1 -1
  45. package/dist/src/context/context.js +51 -5
  46. package/dist/src/context/context.js.map +1 -1
  47. package/dist/src/context/types.d.ts +3 -1
  48. package/dist/src/context/types.d.ts.map +1 -1
  49. package/dist/src/deploy/core.d.ts.map +1 -1
  50. package/dist/src/deploy/core.js +11 -4
  51. package/dist/src/deploy/core.js.map +1 -1
  52. package/dist/src/deploy/warp.d.ts +10 -0
  53. package/dist/src/deploy/warp.d.ts.map +1 -1
  54. package/dist/src/deploy/warp.js +294 -45
  55. package/dist/src/deploy/warp.js.map +1 -1
  56. package/dist/src/send/message.d.ts.map +1 -1
  57. package/dist/src/send/message.js +3 -2
  58. package/dist/src/send/message.js.map +1 -1
  59. package/dist/src/send/transfer.d.ts.map +1 -1
  60. package/dist/src/send/transfer.js +12 -6
  61. package/dist/src/send/transfer.js.map +1 -1
  62. package/dist/src/status/message.d.ts +2 -1
  63. package/dist/src/status/message.d.ts.map +1 -1
  64. package/dist/src/status/message.js +35 -17
  65. package/dist/src/status/message.js.map +1 -1
  66. package/dist/src/submit/submit.d.ts +1 -1
  67. package/dist/src/submit/submit.d.ts.map +1 -1
  68. package/dist/src/submit/submit.js +16 -10
  69. package/dist/src/submit/submit.js.map +1 -1
  70. package/dist/src/submit/types.d.ts +5 -16
  71. package/dist/src/submit/types.d.ts.map +1 -1
  72. package/dist/src/utils/balances.js +1 -1
  73. package/dist/src/utils/balances.js.map +1 -1
  74. package/dist/src/version.d.ts +1 -1
  75. package/dist/src/version.d.ts.map +1 -1
  76. package/dist/src/version.js +1 -1
  77. package/dist/src/version.js.map +1 -1
  78. package/examples/submit/strategy/gnosis-ica-strategy.yaml +11 -0
  79. package/examples/submit/strategy/gnosis-strategy.yaml +5 -0
  80. package/examples/submit/strategy/impersonated-account-strategy.yaml +4 -0
  81. package/examples/submit/strategy/json-rpc-strategy.yaml +3 -0
  82. package/examples/submit/transactions/alfajores-transactions.json +8 -0
  83. package/examples/submit/transactions/avalanche-transactions.json +8 -0
  84. package/package.json +4 -4
@@ -1,14 +1,16 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { stringify as yamlStringify } from 'yaml';
3
- import { EvmIsmModule, HypERC20Deployer, HypERC721Deployer, HyperlaneProxyFactoryDeployer, TOKEN_TYPE_TO_STANDARD, TokenType, getTokenConnectionId, isTokenMetadata, serializeContracts, } from '@hyperlane-xyz/sdk';
4
- import { ProtocolType, assert, objMap, promiseObjAll, } from '@hyperlane-xyz/utils';
3
+ import { buildArtifact as coreBuildArtifact } from '@hyperlane-xyz/core/buildArtifact.js';
4
+ import { ContractVerifier, EvmERC20WarpModule, EvmERC20WarpRouteReader, EvmIsmModule, ExplorerLicenseType, HypERC20Deployer, HypERC721Deployer, HyperlaneProxyFactoryDeployer, IsmType, TOKEN_TYPE_TO_STANDARD, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, attachContractsMap, connectContractsMap, getTokenConnectionId, hypERC20factories, isCollateralConfig, isTokenMetadata, serializeContracts, } from '@hyperlane-xyz/sdk';
5
+ import { ProtocolType, assert, objFilter, objKeys, objMap, promiseObjAll, } from '@hyperlane-xyz/utils';
5
6
  import { readWarpRouteDeployConfig } from '../config/warp.js';
6
7
  import { MINIMUM_WARP_DEPLOY_GAS } from '../consts.js';
7
- import { log, logBlue, logGray, logGreen, logTable } from '../logger.js';
8
+ import { getOrRequestApiKeys } from '../context/context.js';
9
+ import { log, logBlue, logGray, logGreen, logRed, logTable, } from '../logger.js';
8
10
  import { indentYamlOrJson, isFile, runFileSelectionStep, } from '../utils/files.js';
9
11
  import { completeDeploy, prepareDeploy, runPreflightChecksForChains, } from './utils.js';
10
12
  export async function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPath, }) {
11
- const { signer, skipConfirmation } = context;
13
+ const { signer, skipConfirmation, chainMetadata } = context;
12
14
  if (!warpRouteDeploymentConfigPath ||
13
15
  !isFile(warpRouteDeploymentConfigPath)) {
14
16
  if (skipConfirmation)
@@ -19,13 +21,15 @@ export async function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPat
19
21
  log(`Using warp route deployment config at ${warpRouteDeploymentConfigPath}`);
20
22
  }
21
23
  const warpRouteConfig = await readWarpRouteDeployConfig(warpRouteDeploymentConfigPath, context);
24
+ const chains = Object.keys(warpRouteConfig);
25
+ let apiKeys = {};
26
+ if (!skipConfirmation)
27
+ apiKeys = await getOrRequestApiKeys(chains, chainMetadata);
22
28
  const deploymentParams = {
23
29
  context,
24
- configMap: warpRouteConfig,
30
+ warpDeployConfig: warpRouteConfig,
25
31
  };
26
- logBlue('Warp route deployment plan');
27
32
  await runDeployPlanStep(deploymentParams);
28
- const chains = Object.keys(warpRouteConfig);
29
33
  await runPreflightChecksForChains({
30
34
  context,
31
35
  chains,
@@ -33,15 +37,14 @@ export async function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPat
33
37
  });
34
38
  const userAddress = await signer.getAddress();
35
39
  const initialBalances = await prepareDeploy(context, userAddress, chains);
36
- await executeDeploy(deploymentParams);
40
+ const deployedContracts = await executeDeploy(deploymentParams, apiKeys);
41
+ const warpCoreConfig = await getWarpCoreConfig(deploymentParams, deployedContracts);
42
+ await writeDeploymentArtifacts(warpCoreConfig, context);
37
43
  await completeDeploy(context, 'warp', initialBalances, userAddress, chains);
38
44
  }
39
- async function runDeployPlanStep({ context, configMap }) {
45
+ async function runDeployPlanStep({ context, warpDeployConfig }) {
40
46
  const { skipConfirmation } = context;
41
- logBlue('\nDeployment plan');
42
- logGray('===============');
43
- log(`Using token standard ${configMap.isNft ? 'ERC721' : 'ERC20'}`);
44
- logTable(configMap);
47
+ displayWarpDeployPlan(warpDeployConfig);
45
48
  if (skipConfirmation || context.isDryRun)
46
49
  return;
47
50
  const isConfirmed = await confirm({
@@ -50,53 +53,55 @@ async function runDeployPlanStep({ context, configMap }) {
50
53
  if (!isConfirmed)
51
54
  throw new Error('Deployment cancelled');
52
55
  }
53
- async function executeDeploy(params) {
54
- logBlue('All systems ready, captain! Beginning deployment...');
55
- const { configMap, context: { registry, multiProvider, isDryRun, dryRunChain }, } = params;
56
- const deployer = configMap.isNft
56
+ async function executeDeploy(params, apiKeys) {
57
+ logBlue('🚀 All systems ready, captain! Beginning deployment...');
58
+ const { warpDeployConfig, context: { registry, multiProvider, isDryRun, dryRunChain }, } = params;
59
+ const deployer = warpDeployConfig.isNft
57
60
  ? new HypERC721Deployer(multiProvider)
58
- : new HypERC20Deployer(multiProvider);
61
+ : new HypERC20Deployer(multiProvider); // TODO: replace with EvmERC20WarpModule
59
62
  const config = isDryRun && dryRunChain
60
- ? { [dryRunChain]: configMap[dryRunChain] }
61
- : configMap;
62
- const ismFactoryDeployer = new HyperlaneProxyFactoryDeployer(multiProvider);
63
+ ? { [dryRunChain]: warpDeployConfig[dryRunChain] }
64
+ : warpDeployConfig;
65
+ const contractVerifier = new ContractVerifier(multiProvider, apiKeys, coreBuildArtifact, ExplorerLicenseType.MIT);
66
+ const ismFactoryDeployer = new HyperlaneProxyFactoryDeployer(multiProvider, contractVerifier);
63
67
  // For each chain in WarpRouteConfig, deploy each Ism Factory, if it's not in the registry
64
68
  // Then return a modified config with the ism address as a string
65
- const modifiedConfig = await deployAndResolveWarpIsm(config, multiProvider, registry, ismFactoryDeployer);
69
+ const modifiedConfig = await deployAndResolveWarpIsm(config, multiProvider, registry, ismFactoryDeployer, contractVerifier);
66
70
  const deployedContracts = await deployer.deploy(modifiedConfig);
67
- const warpCoreConfig = await getWarpCoreConfig(params, deployedContracts);
68
71
  logGreen('✅ Warp contract deployments complete');
69
- if (!isDryRun) {
72
+ return deployedContracts;
73
+ }
74
+ async function writeDeploymentArtifacts(warpCoreConfig, context) {
75
+ if (!context.isDryRun) {
70
76
  log('Writing deployment artifacts...');
71
- await registry.addWarpRoute(warpCoreConfig);
77
+ await context.registry.addWarpRoute(warpCoreConfig);
72
78
  }
73
79
  log(indentYamlOrJson(yamlStringify(warpCoreConfig, null, 2), 4));
74
80
  }
75
- async function deployAndResolveWarpIsm(warpConfig, multiProvider, registry, ismFactoryDeployer) {
81
+ async function deployAndResolveWarpIsm(warpConfig, multiProvider, registry, ismFactoryDeployer, contractVerifier) {
76
82
  return promiseObjAll(objMap(warpConfig, async (chain, config) => {
77
- // Skip deployment if Ism is empty, or a string
78
83
  if (!config.interchainSecurityModule ||
79
84
  typeof config.interchainSecurityModule === 'string') {
80
85
  logGray(`Config Ism is ${!config.interchainSecurityModule
81
86
  ? 'empty'
82
- : config.interchainSecurityModule}, skipping deployment`);
87
+ : config.interchainSecurityModule}, skipping deployment.`);
83
88
  return config;
84
89
  }
85
- logBlue('Loading Registry factory addresses');
86
- let chainAddresses = await registry.getChainAddresses(chain); // Can includes other addresses
90
+ logBlue(`Loading registry factory addresses for ${chain}...`);
91
+ let chainAddresses = await registry.getChainAddresses(chain);
87
92
  if (!chainAddresses) {
88
- logGray('Registry factory addresses not found, deploying');
93
+ logGray(`Registry factory addresses not found for ${chain}. Deploying...`);
89
94
  chainAddresses = serializeContracts(await ismFactoryDeployer.deployContracts(chain));
90
95
  }
91
- logGray(`Creating ${config.interchainSecurityModule.type} Ism for ${config.type} token on ${chain} chain`);
96
+ logGray(`Creating ${config.interchainSecurityModule.type} ISM for ${config.type} token on ${chain} chain...`);
92
97
  const deployedIsm = await createWarpIsm(chain, warpConfig, multiProvider, {
93
98
  domainRoutingIsmFactory: chainAddresses.domainRoutingIsmFactory,
94
99
  staticAggregationHookFactory: chainAddresses.staticAggregationHookFactory,
95
100
  staticAggregationIsmFactory: chainAddresses.staticAggregationIsmFactory,
96
101
  staticMerkleRootMultisigIsmFactory: chainAddresses.staticMerkleRootMultisigIsmFactory,
97
102
  staticMessageIdMultisigIsmFactory: chainAddresses.staticMessageIdMultisigIsmFactory,
98
- });
99
- logGreen(`Finished creating ${config.interchainSecurityModule.type} Ism for ${config.type} token on ${chain} chain`);
103
+ }, contractVerifier);
104
+ logGreen(`Finished creating ${config.interchainSecurityModule.type} ISM for ${config.type} token on ${chain} chain.`);
100
105
  return { ...warpConfig[chain], interchainSecurityModule: deployedIsm };
101
106
  }));
102
107
  }
@@ -105,7 +110,7 @@ async function deployAndResolveWarpIsm(warpConfig, multiProvider, registry, ismF
105
110
  *
106
111
  * @returns The deployed ism address
107
112
  */
108
- async function createWarpIsm(chain, warpConfig, multiProvider, factoryAddresses) {
113
+ async function createWarpIsm(chain, warpConfig, multiProvider, factoryAddresses, contractVerifier) {
109
114
  const { domainRoutingIsmFactory, staticAggregationHookFactory, staticAggregationIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, } = factoryAddresses;
110
115
  const evmIsmModule = await EvmIsmModule.create({
111
116
  chain,
@@ -119,34 +124,50 @@ async function createWarpIsm(chain, warpConfig, multiProvider, factoryAddresses)
119
124
  staticMessageIdMultisigIsmFactory,
120
125
  },
121
126
  config: warpConfig[chain].interchainSecurityModule,
127
+ contractVerifier,
122
128
  });
123
129
  const { deployedIsm } = evmIsmModule.serialize();
124
130
  return deployedIsm;
125
131
  }
126
- async function getWarpCoreConfig({ configMap, context }, contracts) {
132
+ async function getWarpCoreConfig({ warpDeployConfig, context }, contracts) {
127
133
  const warpCoreConfig = { tokens: [] };
128
134
  // TODO: replace with warp read
129
- const tokenMetadata = await HypERC20Deployer.deriveTokenMetadata(context.multiProvider, configMap);
135
+ const tokenMetadata = await HypERC20Deployer.deriveTokenMetadata(context.multiProvider, warpDeployConfig);
130
136
  assert(tokenMetadata && isTokenMetadata(tokenMetadata), 'Missing required token metadata');
131
137
  const { decimals, symbol, name } = tokenMetadata;
132
138
  assert(decimals, 'Missing decimals on token metadata');
133
- // First pass, create token configs
139
+ generateTokenConfigs(warpCoreConfig, warpDeployConfig, contracts, symbol, name, decimals);
140
+ fullyConnectTokens(warpCoreConfig);
141
+ return warpCoreConfig;
142
+ }
143
+ /**
144
+ * Creates token configs.
145
+ */
146
+ function generateTokenConfigs(warpCoreConfig, warpDeployConfig, contracts, symbol, name, decimals) {
134
147
  for (const [chainName, contract] of Object.entries(contracts)) {
135
- const config = configMap[chainName];
136
- const collateralAddressOrDenom = config.type === TokenType.collateral ? config.token : undefined;
148
+ const config = warpDeployConfig[chainName];
149
+ const collateralAddressOrDenom = isCollateralConfig(config)
150
+ ? config.token // gets set in the above deriveTokenMetadata()
151
+ : undefined;
137
152
  warpCoreConfig.tokens.push({
138
153
  chainName,
139
154
  standard: TOKEN_TYPE_TO_STANDARD[config.type],
140
155
  decimals,
141
156
  symbol,
142
157
  name,
143
- addressOrDenom: contract[configMap[chainName].type].address,
158
+ addressOrDenom: contract[warpDeployConfig[chainName].type]
159
+ .address,
144
160
  collateralAddressOrDenom,
145
161
  });
146
162
  }
147
- // Second pass, add connections between tokens
148
- // Assumes full interconnectivity between all tokens for now b.c. that's
149
- // what the deployers do by default.
163
+ }
164
+ /**
165
+ * Adds connections between tokens.
166
+ *
167
+ * Assumes full interconnectivity between all tokens for now b.c. that's
168
+ * what the deployers do by default.
169
+ */
170
+ function fullyConnectTokens(warpCoreConfig) {
150
171
  for (const token1 of warpCoreConfig.tokens) {
151
172
  for (const token2 of warpCoreConfig.tokens) {
152
173
  if (token1.chainName === token2.chainName &&
@@ -158,6 +179,234 @@ async function getWarpCoreConfig({ configMap, context }, contracts) {
158
179
  });
159
180
  }
160
181
  }
161
- return warpCoreConfig;
182
+ }
183
+ export async function runWarpRouteApply(params) {
184
+ const { warpDeployConfig, warpCoreConfig, context } = params;
185
+ const { registry, multiProvider, chainMetadata, skipConfirmation } = context;
186
+ WarpRouteDeployConfigSchema.parse(warpDeployConfig);
187
+ WarpCoreConfigSchema.parse(warpCoreConfig);
188
+ const addresses = await registry.getAddresses();
189
+ const warpCoreConfigByChain = Object.fromEntries(warpCoreConfig.tokens.map((token) => [
190
+ token.chainName,
191
+ token,
192
+ ]) /* Necessary for O(1) reads below */);
193
+ const chains = Object.keys(warpDeployConfig);
194
+ let apiKeys = {};
195
+ if (!skipConfirmation)
196
+ apiKeys = await getOrRequestApiKeys(chains, chainMetadata);
197
+ const contractVerifier = new ContractVerifier(multiProvider, apiKeys, coreBuildArtifact, ExplorerLicenseType.MIT);
198
+ const warpDeployChains = Object.keys(warpDeployConfig);
199
+ const warpCoreChains = Object.keys(warpCoreConfigByChain);
200
+ if (warpDeployChains.length === warpCoreChains.length) {
201
+ logGray('Updating deployed Warp Routes');
202
+ await promiseObjAll(objMap(warpDeployConfig, async (chain, config) => {
203
+ try {
204
+ config.ismFactoryAddresses = addresses[chain];
205
+ const evmERC20WarpModule = new EvmERC20WarpModule(multiProvider, {
206
+ config,
207
+ chain,
208
+ addresses: {
209
+ deployedTokenRoute: warpCoreConfigByChain[chain].addressOrDenom,
210
+ },
211
+ }, contractVerifier);
212
+ const transactions = await evmERC20WarpModule.update(config);
213
+ if (transactions.length) {
214
+ for (const transaction of transactions) {
215
+ await multiProvider.sendTransaction(chain, transaction);
216
+ }
217
+ logGreen(`Warp config updated on ${chain}.`);
218
+ }
219
+ else {
220
+ logGreen(`Warp config on ${chain} is the same as target. No updates needed.`);
221
+ }
222
+ }
223
+ catch (e) {
224
+ logRed(`Warp config on ${chain} failed to update.`, e);
225
+ }
226
+ }));
227
+ }
228
+ else if (warpDeployChains.length > warpCoreChains.length) {
229
+ logGray('Extending deployed Warp configs');
230
+ // Split between the existing and additional config
231
+ const existingConfigs = objFilter(warpDeployConfig, (chain, _config) => warpCoreChains.includes(chain));
232
+ let extendedConfigs = objFilter(warpDeployConfig, (chain, _config) => !warpCoreChains.includes(chain));
233
+ const existingTokenMetadata = await HypERC20Deployer.deriveTokenMetadata(multiProvider, existingConfigs);
234
+ extendedConfigs = objMap(extendedConfigs, (_chain, extendedConfig) => {
235
+ return {
236
+ ...extendedConfig,
237
+ ...existingTokenMetadata,
238
+ };
239
+ });
240
+ const newExtensionContracts = await executeDeploy({
241
+ // TODO: use EvmERC20WarpModule when it's ready
242
+ context,
243
+ warpDeployConfig: extendedConfigs,
244
+ }, apiKeys);
245
+ const existingContractAddresses = objMap(existingConfigs, (chain, config) => ({
246
+ [config.type]: warpCoreConfigByChain[chain].addressOrDenom,
247
+ }));
248
+ const mergedRouters = {
249
+ ...connectContractsMap(attachContractsMap(existingContractAddresses, hypERC20factories), multiProvider),
250
+ ...newExtensionContracts,
251
+ };
252
+ await enrollRemoteRouters(mergedRouters, multiProvider);
253
+ const updatedWarpCoreConfig = await getWarpCoreConfig(params, mergedRouters);
254
+ WarpCoreConfigSchema.parse(updatedWarpCoreConfig);
255
+ await writeDeploymentArtifacts(updatedWarpCoreConfig, context);
256
+ }
257
+ else {
258
+ throw new Error('Unenrolling warp routes is currently not supported');
259
+ }
260
+ }
261
+ /**
262
+ * Enroll all deployed routers with each other.
263
+ *
264
+ * @param deployedContractsMap - A map of deployed Hyperlane contracts by chain.
265
+ * @param multiProvider - A MultiProvider instance to interact with multiple chains.
266
+ */
267
+ async function enrollRemoteRouters(deployedContractsMap, multiProvider) {
268
+ logBlue(`Enrolling deployed routers with each other (if not already)...`);
269
+ const deployedRouters = objMap(deployedContractsMap, (_, contracts) => getRouter(contracts).address);
270
+ const allChains = Object.keys(deployedRouters);
271
+ await promiseObjAll(objMap(deployedContractsMap, async (chain, contracts) => {
272
+ const router = getRouter(contracts); // Assume deployedContract always has 1 value
273
+ // Mutate the config.remoteRouters by setting it to all other routers to update
274
+ const warpRouteReader = new EvmERC20WarpRouteReader(multiProvider, chain);
275
+ const mutatedWarpRouteConfig = await warpRouteReader.deriveWarpRouteConfig(router.address);
276
+ const evmERC20WarpModule = new EvmERC20WarpModule(multiProvider, {
277
+ config: mutatedWarpRouteConfig,
278
+ chain,
279
+ addresses: { deployedTokenRoute: router.address },
280
+ });
281
+ const otherChains = multiProvider
282
+ .getRemoteChains(chain)
283
+ .filter((c) => allChains.includes(c));
284
+ mutatedWarpRouteConfig.remoteRouters = otherChains.reduce((remoteRouters, chain) => {
285
+ remoteRouters[multiProvider.getDomainId(chain)] =
286
+ deployedRouters[chain];
287
+ return remoteRouters;
288
+ }, {});
289
+ const mutatedConfigTxs = await evmERC20WarpModule.update(mutatedWarpRouteConfig);
290
+ for (const transaction of mutatedConfigTxs) {
291
+ const receipt = await multiProvider.sendTransaction(chain, transaction);
292
+ logGreen(`Successfully enrolled routers on ${chain}: ${receipt.transactionHash}`);
293
+ }
294
+ }));
295
+ }
296
+ function getRouter(contracts) {
297
+ for (const key of objKeys(hypERC20factories)) {
298
+ if (contracts[key])
299
+ return contracts[key];
300
+ }
301
+ throw new Error('No matching contract found.');
302
+ }
303
+ function displayWarpDeployPlan(deployConfig) {
304
+ logBlue('\nWarp Route Deployment Plan');
305
+ logGray('==========================');
306
+ log(`📋 Token Standard: ${deployConfig.isNft ? 'ERC721' : 'ERC20'}`);
307
+ const { transformedDeployConfig, transformedIsmConfigs } = transformDeployConfigForDisplay(deployConfig);
308
+ log('📋 Warp Route Config:');
309
+ logTable(transformedDeployConfig);
310
+ objMap(transformedIsmConfigs, (chain, ismConfigs) => {
311
+ log(`📋 ${chain} ISM Config(s):`);
312
+ ismConfigs.forEach((ismConfig) => {
313
+ logTable(ismConfig);
314
+ });
315
+ });
316
+ }
317
+ function transformDeployConfigForDisplay(deployConfig) {
318
+ const transformedIsmConfigs = {};
319
+ const transformedDeployConfig = objMap(deployConfig, (chain, config) => {
320
+ if (config.interchainSecurityModule)
321
+ transformedIsmConfigs[chain] = transformIsmConfigForDisplay(config.interchainSecurityModule);
322
+ return {
323
+ 'NFT?': config.isNft ?? false,
324
+ Type: config.type,
325
+ Owner: config.owner,
326
+ Mailbox: config.mailbox,
327
+ 'ISM Config(s)': config.interchainSecurityModule
328
+ ? 'See table(s) below.'
329
+ : 'No ISM config(s) specified.',
330
+ };
331
+ });
332
+ return {
333
+ transformedDeployConfig,
334
+ transformedIsmConfigs,
335
+ };
336
+ }
337
+ function transformIsmConfigForDisplay(ismConfig) {
338
+ const ismConfigs = [];
339
+ switch (ismConfig.type) {
340
+ case IsmType.AGGREGATION:
341
+ ismConfigs.push({
342
+ Type: ismConfig.type,
343
+ Threshold: ismConfig.threshold,
344
+ Modules: 'See table(s) below.',
345
+ });
346
+ ismConfig.modules.forEach((module) => {
347
+ ismConfigs.push(...transformIsmConfigForDisplay(module));
348
+ });
349
+ return ismConfigs;
350
+ case IsmType.ROUTING:
351
+ return [
352
+ {
353
+ Type: ismConfig.type,
354
+ Owner: ismConfig.owner,
355
+ 'Owner Overrides': ismConfig.ownerOverrides ?? 'Undefined',
356
+ Domains: 'See warp config for domain specification.',
357
+ },
358
+ ];
359
+ case IsmType.FALLBACK_ROUTING:
360
+ return [
361
+ {
362
+ Type: ismConfig.type,
363
+ Owner: ismConfig.owner,
364
+ 'Owner Overrides': ismConfig.ownerOverrides ?? 'Undefined',
365
+ Domains: 'See warp config for domain specification.',
366
+ },
367
+ ];
368
+ case IsmType.MERKLE_ROOT_MULTISIG:
369
+ return [
370
+ {
371
+ Type: ismConfig.type,
372
+ Validators: ismConfig.validators,
373
+ Threshold: ismConfig.threshold,
374
+ },
375
+ ];
376
+ case IsmType.MESSAGE_ID_MULTISIG:
377
+ return [
378
+ {
379
+ Type: ismConfig.type,
380
+ Validators: ismConfig.validators,
381
+ Threshold: ismConfig.threshold,
382
+ },
383
+ ];
384
+ case IsmType.OP_STACK:
385
+ return [
386
+ {
387
+ Type: ismConfig.type,
388
+ Origin: ismConfig.origin,
389
+ 'Native Bridge': ismConfig.nativeBridge,
390
+ },
391
+ ];
392
+ case IsmType.PAUSABLE:
393
+ return [
394
+ {
395
+ Type: ismConfig.type,
396
+ Owner: ismConfig.owner,
397
+ 'Paused ?': ismConfig.paused,
398
+ 'Owner Overrides': ismConfig.ownerOverrides ?? 'Undefined',
399
+ },
400
+ ];
401
+ case IsmType.TRUSTED_RELAYER:
402
+ return [
403
+ {
404
+ Type: ismConfig.type,
405
+ Relayer: ismConfig.relayer,
406
+ },
407
+ ];
408
+ default:
409
+ return [ismConfig];
410
+ }
162
411
  }
163
412
  //# sourceMappingURL=warp.js.map
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAI9D,OAAO,EAAkB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1E,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,iBAoCA"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAmC,MAAM,oBAAoB,CAAC;AAIhF,OAAO,EAAkB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1E,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,iBAoCA"}
@@ -1,5 +1,5 @@
1
1
  import { stringify as yamlStringify } from 'yaml';
2
- import { HyperlaneCore } from '@hyperlane-xyz/sdk';
2
+ import { HyperlaneCore, HyperlaneRelayer } from '@hyperlane-xyz/sdk';
3
3
  import { addressToBytes32, timeout } from '@hyperlane-xyz/utils';
4
4
  import { MINIMUM_TEST_SEND_GAS } from '../consts.js';
5
5
  import { runPreflightChecksForChains } from '../deploy/utils.js';
@@ -49,8 +49,9 @@ async function executeDelivery({ context, origin, destination, messageBody, skip
49
49
  logBlue(`Message ID: ${message.id}`);
50
50
  log(`Message:\n${indentYamlOrJson(yamlStringify(message, null, 2), 4)}`);
51
51
  if (selfRelay) {
52
+ const relayer = new HyperlaneRelayer({ core });
52
53
  log('Attempting self-relay of message');
53
- await core.relayMessage(message, dispatchTx);
54
+ await relayer.relayMessage(dispatchTx);
54
55
  logGreen('Message was self-relayed!');
55
56
  }
56
57
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAOT,cAAc,EACf,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,iBAsCA"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAST,cAAc,EACf,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO1D,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,iBAsCA"}
@@ -1,9 +1,11 @@
1
- import { HyperlaneCore, MultiProtocolProvider, ProviderType, TokenAmount, WarpCore, } from '@hyperlane-xyz/sdk';
1
+ import { stringify as yamlStringify } from 'yaml';
2
+ import { HyperlaneCore, HyperlaneRelayer, MultiProtocolProvider, ProviderType, TokenAmount, WarpCore, } from '@hyperlane-xyz/sdk';
2
3
  import { timeout } from '@hyperlane-xyz/utils';
3
4
  import { MINIMUM_TEST_SEND_GAS } from '../consts.js';
4
5
  import { runPreflightChecksForChains } from '../deploy/utils.js';
5
- import { logBlue, logGreen, logRed } from '../logger.js';
6
+ import { log, logBlue, logGreen, logRed } from '../logger.js';
6
7
  import { runSingleChainSelectionStep } from '../utils/chains.js';
8
+ import { indentYamlOrJson } from '../utils/files.js';
7
9
  import { runTokenSelectionStep } from '../utils/tokens.js';
8
10
  export async function sendTestTransfer({ context, warpCoreConfig, origin, destination, amount, recipient, timeoutSec, skipWaitForDelivery, selfRelay, }) {
9
11
  const { chainMetadata } = context;
@@ -79,12 +81,16 @@ async function executeDelivery({ context, origin, destination, warpCoreConfig, a
79
81
  }
80
82
  }
81
83
  const transferTxReceipt = txReceipts[txReceipts.length - 1];
82
- const message = core.getDispatchedMessages(transferTxReceipt)[0];
83
- logBlue(`Sent message from ${origin} to ${recipient} on ${destination}.`);
84
+ const messageIndex = 0;
85
+ const message = HyperlaneCore.getDispatchedMessages(transferTxReceipt)[messageIndex];
86
+ logBlue(`Sent transfer from sender (${senderAddress}) on ${origin} to recipient (${recipient}) on ${destination}.`);
84
87
  logBlue(`Message ID: ${message.id}`);
88
+ log(`Message:\n${indentYamlOrJson(yamlStringify(message, null, 2), 4)}`);
85
89
  if (selfRelay) {
86
- await core.relayMessage(message, transferTxReceipt);
87
- logGreen('Message was self-relayed!');
90
+ const relayer = new HyperlaneRelayer({ core });
91
+ log('Attempting self-relay of transfer...');
92
+ await relayer.relayMessage(transferTxReceipt, messageIndex, message);
93
+ logGreen('Transfer was self-relayed!');
88
94
  return;
89
95
  }
90
96
  if (skipWaitForDelivery)
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { ChainName } from '@hyperlane-xyz/sdk';
2
2
  import { CommandContext } from '../context/types.js';
3
- export declare function checkMessageStatus({ context, messageId, destination, origin, selfRelay, }: {
3
+ export declare function checkMessageStatus({ context, messageId, destination, origin, selfRelay, dispatchTx, }: {
4
4
  context: CommandContext;
5
+ dispatchTx?: string;
5
6
  messageId?: string;
6
7
  destination?: ChainName;
7
8
  origin?: ChainName;
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/status/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,GACV,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,iBA0CA"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/status/message.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAmC,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,UAAU,GACX,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,iBAiEA"}