@hyperlane-xyz/cli 3.10.0 → 3.10.1-beta0

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 (109) hide show
  1. package/dist/cli.js +4 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/src/commands/deploy.d.ts +6 -0
  4. package/dist/src/commands/deploy.d.ts.map +1 -1
  5. package/dist/src/commands/deploy.js +66 -54
  6. package/dist/src/commands/deploy.js.map +1 -1
  7. package/dist/src/commands/hook.d.ts +7 -0
  8. package/dist/src/commands/hook.d.ts.map +1 -0
  9. package/dist/src/commands/hook.js +42 -0
  10. package/dist/src/commands/hook.js.map +1 -0
  11. package/dist/src/commands/ism.d.ts +7 -0
  12. package/dist/src/commands/ism.d.ts.map +1 -0
  13. package/dist/src/commands/ism.js +44 -0
  14. package/dist/src/commands/ism.js.map +1 -0
  15. package/dist/src/commands/options.d.ts +37 -2
  16. package/dist/src/commands/options.d.ts.map +1 -1
  17. package/dist/src/commands/options.js +45 -2
  18. package/dist/src/commands/options.js.map +1 -1
  19. package/dist/src/commands/send.d.ts +8 -1
  20. package/dist/src/commands/send.d.ts.map +1 -1
  21. package/dist/src/commands/send.js +14 -4
  22. package/dist/src/commands/send.js.map +1 -1
  23. package/dist/src/commands/status.d.ts.map +1 -1
  24. package/dist/src/commands/status.js +8 -7
  25. package/dist/src/commands/status.js.map +1 -1
  26. package/dist/src/config/artifacts.d.ts +6 -1
  27. package/dist/src/config/artifacts.d.ts.map +1 -1
  28. package/dist/src/config/artifacts.js +7 -1
  29. package/dist/src/config/artifacts.js.map +1 -1
  30. package/dist/src/config/ism.d.ts +18 -0
  31. package/dist/src/config/ism.d.ts.map +1 -1
  32. package/dist/src/config/ism.js +22 -7
  33. package/dist/src/config/ism.js.map +1 -1
  34. package/dist/src/config/warp.d.ts +30 -180
  35. package/dist/src/config/warp.d.ts.map +1 -1
  36. package/dist/src/config/warp.js +19 -56
  37. package/dist/src/config/warp.js.map +1 -1
  38. package/dist/src/context.d.ts +22 -5
  39. package/dist/src/context.d.ts.map +1 -1
  40. package/dist/src/context.js +57 -18
  41. package/dist/src/context.js.map +1 -1
  42. package/dist/src/deploy/core.d.ts +6 -2
  43. package/dist/src/deploy/core.d.ts.map +1 -1
  44. package/dist/src/deploy/core.js +37 -16
  45. package/dist/src/deploy/core.js.map +1 -1
  46. package/dist/src/deploy/dry-run.d.ts +20 -0
  47. package/dist/src/deploy/dry-run.d.ts.map +1 -0
  48. package/dist/src/deploy/dry-run.js +45 -0
  49. package/dist/src/deploy/dry-run.js.map +1 -0
  50. package/dist/src/deploy/utils.d.ts +6 -1
  51. package/dist/src/deploy/utils.d.ts.map +1 -1
  52. package/dist/src/deploy/utils.js +40 -6
  53. package/dist/src/deploy/utils.js.map +1 -1
  54. package/dist/src/deploy/warp.d.ts +3 -2
  55. package/dist/src/deploy/warp.d.ts.map +1 -1
  56. package/dist/src/deploy/warp.js +94 -89
  57. package/dist/src/deploy/warp.js.map +1 -1
  58. package/dist/src/hook/read.d.ts +14 -0
  59. package/dist/src/hook/read.d.ts.map +1 -0
  60. package/dist/src/hook/read.js +29 -0
  61. package/dist/src/hook/read.js.map +1 -0
  62. package/dist/src/ism/read.d.ts +14 -0
  63. package/dist/src/ism/read.d.ts.map +1 -0
  64. package/dist/src/ism/read.js +29 -0
  65. package/dist/src/ism/read.js.map +1 -0
  66. package/dist/src/logger.d.ts +1 -0
  67. package/dist/src/logger.d.ts.map +1 -1
  68. package/dist/src/logger.js +1 -0
  69. package/dist/src/logger.js.map +1 -1
  70. package/dist/src/send/message.d.ts +3 -2
  71. package/dist/src/send/message.d.ts.map +1 -1
  72. package/dist/src/send/message.js +8 -2
  73. package/dist/src/send/message.js.map +1 -1
  74. package/dist/src/send/transfer.d.ts +3 -2
  75. package/dist/src/send/transfer.d.ts.map +1 -1
  76. package/dist/src/send/transfer.js +9 -3
  77. package/dist/src/send/transfer.js.map +1 -1
  78. package/dist/src/status/message.d.ts +4 -1
  79. package/dist/src/status/message.d.ts.map +1 -1
  80. package/dist/src/status/message.js +14 -3
  81. package/dist/src/status/message.js.map +1 -1
  82. package/dist/src/tests/deployTestErc20.js +4 -4
  83. package/dist/src/tests/deployTestErc20.js.map +1 -1
  84. package/dist/src/utils/env.d.ts +2 -0
  85. package/dist/src/utils/env.d.ts.map +1 -1
  86. package/dist/src/utils/env.js +2 -0
  87. package/dist/src/utils/env.js.map +1 -1
  88. package/dist/src/utils/files.d.ts +12 -4
  89. package/dist/src/utils/files.d.ts.map +1 -1
  90. package/dist/src/utils/files.js +35 -11
  91. package/dist/src/utils/files.js.map +1 -1
  92. package/dist/src/utils/fork.d.ts +37 -0
  93. package/dist/src/utils/fork.d.ts.map +1 -0
  94. package/dist/src/utils/fork.js +91 -0
  95. package/dist/src/utils/fork.js.map +1 -0
  96. package/dist/src/utils/keys.d.ts +16 -2
  97. package/dist/src/utils/keys.d.ts.map +1 -1
  98. package/dist/src/utils/keys.js +67 -6
  99. package/dist/src/utils/keys.js.map +1 -1
  100. package/dist/src/version.d.ts +1 -1
  101. package/dist/src/version.d.ts.map +1 -1
  102. package/dist/src/version.js +1 -1
  103. package/dist/src/version.js.map +1 -1
  104. package/examples/dry-run/anvil-chains.yaml +17 -0
  105. package/examples/dry-run/ism.yaml +8 -0
  106. package/examples/dry-run/warp-route-deployment.yaml +4 -0
  107. package/examples/fork/warp-route-deployment.yaml +17 -9
  108. package/examples/warp-route-deployment.yaml +17 -10
  109. package/package.json +9 -7
@@ -1,20 +1,14 @@
1
1
  import { confirm, input } from '@inquirer/prompts';
2
- import { ethers } from 'ethers';
3
- import { EvmTokenAdapter, HypERC20Deployer, HypERC721Deployer, MultiProtocolProvider, TOKEN_TYPE_TO_STANDARD, TokenType, getTokenConnectionId, } from '@hyperlane-xyz/sdk';
2
+ import { EvmTokenAdapter, HypERC20Deployer, HypERC721Deployer, MultiProtocolProvider, TOKEN_TYPE_TO_STANDARD, TokenType, getTokenConnectionId, isCollateralConfig, isNativeConfig, isSyntheticConfig, } from '@hyperlane-xyz/sdk';
4
3
  import { ProtocolType, objMap } from '@hyperlane-xyz/utils';
5
- import { readWarpRouteDeployConfig, } from '../config/warp.js';
4
+ import { Command } from '../commands/deploy.js';
5
+ import { readWarpRouteDeployConfig } from '../config/warp.js';
6
6
  import { MINIMUM_WARP_DEPLOY_GAS } from '../consts.js';
7
- import { getContext, getMergedContractAddresses } from '../context.js';
7
+ import { getContext, getDryRunContext, getMergedContractAddresses, } from '../context.js';
8
8
  import { log, logBlue, logGray, logGreen } from '../logger.js';
9
- import { isFile, prepNewArtifactsFiles, runFileSelectionStep, writeJson, } from '../utils/files.js';
10
- import { runPreflightChecks } from './utils.js';
11
- export async function runWarpRouteDeploy({ key, chainConfigPath, warpRouteDeploymentConfigPath, coreArtifactsPath, outPath, skipConfirmation, }) {
12
- const { multiProvider, signer, coreArtifacts } = await getContext({
13
- chainConfigPath,
14
- coreConfig: { coreArtifactsPath },
15
- keyConfig: { key },
16
- skipConfirmation,
17
- });
9
+ import { getArtifactsFiles, isFile, prepNewArtifactsFiles, runFileSelectionStep, writeJson, } from '../utils/files.js';
10
+ import { completeDeploy, prepareDeploy, runPreflightChecks } from './utils.js';
11
+ export async function runWarpRouteDeploy({ key, chainConfigPath, warpRouteDeploymentConfigPath, coreArtifactsPath, outPath, skipConfirmation, dryRun, }) {
18
12
  if (!warpRouteDeploymentConfigPath ||
19
13
  !isFile(warpRouteDeploymentConfigPath)) {
20
14
  if (skipConfirmation)
@@ -25,6 +19,20 @@ export async function runWarpRouteDeploy({ key, chainConfigPath, warpRouteDeploy
25
19
  log(`Using warp route deployment config at ${warpRouteDeploymentConfigPath}`);
26
20
  }
27
21
  const warpRouteConfig = readWarpRouteDeployConfig(warpRouteDeploymentConfigPath);
22
+ const { multiProvider, signer, coreArtifacts } = dryRun
23
+ ? await getDryRunContext({
24
+ chainConfigPath,
25
+ chains: [dryRun],
26
+ coreConfig: { coreArtifactsPath },
27
+ keyConfig: { key },
28
+ skipConfirmation,
29
+ })
30
+ : await getContext({
31
+ chainConfigPath,
32
+ coreConfig: { coreArtifactsPath },
33
+ keyConfig: { key },
34
+ skipConfirmation,
35
+ });
28
36
  const configs = await runBuildConfigStep({
29
37
  warpRouteConfig,
30
38
  coreArtifacts,
@@ -38,6 +46,7 @@ export async function runWarpRouteDeploy({ key, chainConfigPath, warpRouteDeploy
38
46
  multiProvider,
39
47
  outPath,
40
48
  skipConfirmation,
49
+ dryRun,
41
50
  };
42
51
  logBlue('Warp route deployment plan');
43
52
  await runDeployPlanStep(deploymentParams);
@@ -45,59 +54,55 @@ export async function runWarpRouteDeploy({ key, chainConfigPath, warpRouteDeploy
45
54
  ...deploymentParams,
46
55
  minGas: MINIMUM_WARP_DEPLOY_GAS,
47
56
  });
57
+ const userAddress = dryRun ? key : await signer.getAddress();
58
+ const chains = [deploymentParams.origin, ...configs.remotes];
59
+ const initialBalances = await prepareDeploy(multiProvider, userAddress, chains);
48
60
  await executeDeploy(deploymentParams);
61
+ await completeDeploy(Command.WARP, initialBalances, multiProvider, userAddress, chains, dryRun);
49
62
  }
50
63
  async function runBuildConfigStep({ warpRouteConfig, multiProvider, signer, coreArtifacts, skipConfirmation, }) {
51
64
  log('Assembling token configs');
52
- const { base, synthetics } = warpRouteConfig;
53
- const { type: baseType, chainName: baseChainName, isNft } = base;
54
65
  const owner = await signer.getAddress();
55
- const baseMetadata = await fetchBaseTokenMetadata(base, multiProvider);
56
- log(`Using base token metadata: Name: ${baseMetadata.name}, Symbol: ${baseMetadata.symbol}, Decimals: ${baseMetadata.decimals}`);
57
- const mergedContractAddrs = getMergedContractAddresses(coreArtifacts, Object.keys(warpRouteConfig));
58
- // Create configs that coalesce together values from the config file,
59
- // the artifacts, and the SDK as a fallback
60
- const configMap = {
61
- [baseChainName]: {
62
- type: baseType,
63
- token: baseType === TokenType.collateral ||
64
- baseType === TokenType.collateralVault
65
- ? base.address
66
- : ethers.constants.AddressZero,
67
- owner,
68
- mailbox: base.mailbox || mergedContractAddrs[baseChainName]?.mailbox,
69
- interchainSecurityModule: base.interchainSecurityModule ||
70
- mergedContractAddrs[baseChainName]?.interchainSecurityModule ||
71
- mergedContractAddrs[baseChainName]?.multisigIsm,
72
- // ismFactory: mergedContractAddrs[baseChainName].domainRoutingIsmFactory, // TODO fix when updating from routingIsm
73
- foreignDeployment: base.foreignDeployment,
74
- name: baseMetadata.name,
75
- symbol: baseMetadata.symbol,
76
- decimals: baseMetadata.decimals,
77
- },
78
- };
79
- for (const synthetic of synthetics) {
80
- const sChainName = synthetic.chainName;
81
- configMap[sChainName] = {
82
- type: TokenType.synthetic,
83
- name: synthetic.name || baseMetadata.name,
84
- symbol: synthetic.symbol || baseMetadata.symbol,
85
- totalSupply: synthetic.totalSupply || 0,
86
- owner,
87
- mailbox: synthetic.mailbox || mergedContractAddrs[sChainName].mailbox,
88
- interchainSecurityModule: synthetic.interchainSecurityModule ||
89
- mergedContractAddrs[sChainName]?.interchainSecurityModule ||
90
- mergedContractAddrs[sChainName]?.multisigIsm,
91
- // ismFactory: mergedContractAddrs[sChainName].domainRoutingIsmFactory, // TODO fix
92
- foreignDeployment: synthetic.foreignDeployment,
93
- };
94
- }
95
- // Request input for any address fields that are missing
96
66
  const requiredRouterFields = ['mailbox'];
97
- let hasShownInfo = false;
98
- for (const [chain, token] of Object.entries(configMap)) {
67
+ const remotes = [];
68
+ /// @dev This will keep track of the base collateral metadata which can get overwritten if there are multiple collaterals.
69
+ /// These 'base' variables are used to derive synthetic fields
70
+ /// @todo Remove this artifact when multi-collateral is enabled
71
+ let baseChainName = '';
72
+ let baseMetadata = {};
73
+ // Create config that coalesce together values from the config file,
74
+ for (const [chain, config] of Object.entries(warpRouteConfig)) {
75
+ const mergedContractAddrs = getMergedContractAddresses(coreArtifacts, Object.keys(warpRouteConfig));
76
+ // the artifacts, and the SDK as a fallback
77
+ config.owner = owner;
78
+ config.mailbox = config.mailbox || mergedContractAddrs[chain]?.mailbox;
79
+ config.interchainSecurityModule =
80
+ config.interchainSecurityModule ||
81
+ mergedContractAddrs[chain]?.interchainSecurityModule ||
82
+ mergedContractAddrs[chain]?.multisigIsm;
83
+ // config.ismFactory: mergedContractAddrs[baseChainName].domainRoutingIsmFactory, // TODO fix when updating from routingIsm
84
+ if (isCollateralConfig(config) || isNativeConfig(config)) {
85
+ // Store the base metadata
86
+ baseChainName = chain;
87
+ baseMetadata = await fetchBaseTokenMetadata(chain, config, multiProvider);
88
+ log(`Using token metadata: Name: ${baseMetadata.name}, Symbol: ${baseMetadata.symbol}, Decimals: ${baseMetadata.decimals}`);
89
+ if (isCollateralConfig(config)) {
90
+ config.name = baseMetadata.name;
91
+ config.symbol = baseMetadata.symbol;
92
+ config.decimals = baseMetadata.decimals;
93
+ }
94
+ }
95
+ else if (isSyntheticConfig(config)) {
96
+ // Use the config, or baseMetadata
97
+ config.name = config.name || baseMetadata.name;
98
+ config.symbol = config.symbol || baseMetadata.symbol;
99
+ config.totalSupply = config.totalSupply || 0;
100
+ remotes.push(chain);
101
+ }
102
+ let hasShownInfo = false;
103
+ // Request input for any address fields that are missing
99
104
  for (const field of requiredRouterFields) {
100
- if (token[field])
105
+ if (config[field])
101
106
  continue;
102
107
  if (skipConfirmation)
103
108
  throw new Error(`Field ${field} for token on ${chain} required`);
@@ -106,23 +111,22 @@ async function runBuildConfigStep({ warpRouteConfig, multiProvider, signer, core
106
111
  hasShownInfo = true;
107
112
  }
108
113
  const value = await input({
109
- message: `Enter ${field} for ${getTokenName(token)} token on ${chain}`,
114
+ message: `Enter ${field} for ${getTokenName(config)} token on ${chain}`,
110
115
  });
111
116
  if (!value)
112
117
  throw new Error(`Field ${field} required`);
113
- token[field] = value.trim();
118
+ config[field] = value.trim();
114
119
  }
115
120
  }
116
121
  log('Token configs ready');
117
122
  return {
118
- configMap,
119
- metadata: baseMetadata,
123
+ configMap: warpRouteConfig,
120
124
  origin: baseChainName,
121
- remotes: synthetics.map(({ chainName }) => chainName),
122
- isNft: !!isNft,
125
+ metadata: baseMetadata,
126
+ remotes,
123
127
  };
124
128
  }
125
- async function runDeployPlanStep({ configMap, isNft, origin, remotes, signer, skipConfirmation, }) {
129
+ async function runDeployPlanStep({ configMap, origin, remotes, signer, skipConfirmation, }) {
126
130
  const address = await signer.getAddress();
127
131
  const baseToken = configMap[origin];
128
132
  const baseName = getTokenName(baseToken);
@@ -132,7 +136,7 @@ async function runDeployPlanStep({ configMap, isNft, origin, remotes, signer, sk
132
136
  log(`Transaction signer and owner of new contracts will be ${address}`);
133
137
  log(`Deploying a warp route with a base of ${baseName} token on ${origin}`);
134
138
  log(`Connecting it to new synthetic tokens on ${remotes.join(', ')}`);
135
- log(`Using token standard ${isNft ? 'ERC721' : 'ERC20'}`);
139
+ log(`Using token standard ${configMap.isNft ? 'ERC721' : 'ERC20'}`);
136
140
  if (skipConfirmation)
137
141
  return;
138
142
  const isConfirmed = await confirm({
@@ -143,16 +147,22 @@ async function runDeployPlanStep({ configMap, isNft, origin, remotes, signer, sk
143
147
  }
144
148
  async function executeDeploy(params) {
145
149
  logBlue('All systems ready, captain! Beginning deployment...');
146
- const { configMap, isNft, multiProvider, outPath } = params;
147
- const [contractsFilePath, tokenConfigPath] = prepNewArtifactsFiles(outPath, [
148
- { filename: 'warp-route-deployment', description: 'Contract addresses' },
150
+ const { configMap, multiProvider, outPath } = params;
151
+ const [contractsFilePath, tokenConfigPath] = prepNewArtifactsFiles(outPath, getArtifactsFiles([
152
+ {
153
+ filename: 'warp-route-deployment',
154
+ description: 'Contract addresses',
155
+ },
149
156
  { filename: 'warp-config', description: 'Warp config' },
150
- ]);
151
- const deployer = isNft
157
+ ], params.dryRun));
158
+ const deployer = configMap.isNft
152
159
  ? new HypERC721Deployer(multiProvider)
153
160
  : new HypERC20Deployer(multiProvider);
154
- const deployedContracts = await deployer.deploy(configMap);
155
- logGreen('Hyp token deployments complete');
161
+ const config = params.dryRun
162
+ ? { [params.origin]: configMap[params.origin] }
163
+ : configMap;
164
+ const deployedContracts = await deployer.deploy(config); /// @todo remove ChainMap once Hyperlane deployers are refactored
165
+ logGreen('✅ Hyp token deployments complete');
156
166
  log('Writing deployment artifacts');
157
167
  writeTokenDeploymentArtifacts(contractsFilePath, deployedContracts, params);
158
168
  writeWarpConfig(tokenConfigPath, deployedContracts, params);
@@ -160,29 +170,24 @@ async function executeDeploy(params) {
160
170
  logBlue(`Contract address artifacts are in ${contractsFilePath}`);
161
171
  logBlue(`Warp config is in ${tokenConfigPath}`);
162
172
  }
163
- async function fetchBaseTokenMetadata(base, multiProvider) {
164
- const { type, name, symbol, chainName, address, decimals } = base;
165
- // Skip fetching metadata if it's already provided in the config
166
- if (name && symbol && decimals) {
167
- return { name, symbol, decimals };
168
- }
169
- if (type === TokenType.native) {
173
+ async function fetchBaseTokenMetadata(chain, config, multiProvider) {
174
+ if (config.type === TokenType.native) {
170
175
  // If it's a native token, use the chain's native token metadata
171
- const chainNativeToken = multiProvider.getChainMetadata(chainName).nativeToken;
176
+ const chainNativeToken = multiProvider.getChainMetadata(chain).nativeToken;
172
177
  if (chainNativeToken)
173
178
  return chainNativeToken;
174
179
  else
175
- throw new Error(`No native token metadata for ${chainName}`);
180
+ throw new Error(`No native token metadata for ${chain}`);
176
181
  }
177
- else if (base.type === TokenType.collateralVault ||
178
- (base.type === TokenType.collateral && address)) {
182
+ else if (config.type === TokenType.collateralVault ||
183
+ config.type === TokenType.collateral) {
179
184
  // If it's a collateral type, use a TokenAdapter to query for its metadata
180
- log(`Fetching token metadata for ${address} on ${chainName}`);
181
- const adapter = new EvmTokenAdapter(chainName, MultiProtocolProvider.fromMultiProvider(multiProvider), { token: address });
185
+ log(`Fetching token metadata for ${config.token} on ${chain}`);
186
+ const adapter = new EvmTokenAdapter(chain, MultiProtocolProvider.fromMultiProvider(multiProvider), { token: config.token });
182
187
  return adapter.getMetadata();
183
188
  }
184
189
  else {
185
- throw new Error(`Unsupported token: ${base.type}. Consider setting token metadata in your deployment config.`);
190
+ throw new Error(`Unsupported token: ${config.type}. Consider setting token metadata in your deployment config.`);
186
191
  }
187
192
  }
188
193
  function getTokenName(token) {
@@ -221,7 +226,7 @@ function writeWarpConfig(filePath, contracts, { configMap, metadata }) {
221
226
  if (token1.chainName === token2.chainName &&
222
227
  token1.addressOrDenom === token2.addressOrDenom)
223
228
  continue;
224
- token1.connections || (token1.connections = []);
229
+ token1.connections ||= [];
225
230
  token1.connections.push({
226
231
  token: getTokenConnectionId(ProtocolType.Ethereum, token2.chainName, token2.addressOrDenom),
227
232
  });
@@ -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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"}
@@ -0,0 +1,14 @@
1
+ import { ChainName } from '@hyperlane-xyz/sdk';
2
+ import { Address } from '@hyperlane-xyz/utils';
3
+ import { FileFormat } from '../utils/files.js';
4
+ /**
5
+ * Read Hook config for a specified chain and address, logging or writing result to file.
6
+ */
7
+ export declare function readHookConfig({ chain, address, chainConfigPath, format, output, }: {
8
+ chain: ChainName;
9
+ address: Address;
10
+ chainConfigPath: string;
11
+ format: FileFormat;
12
+ output?: string;
13
+ }): Promise<void>;
14
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/hook/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAiC,MAAM,sBAAsB,CAAC;AAK9E,OAAO,EACL,UAAU,EAGX,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,wBAAsB,cAAc,CAAC,EACnC,KAAK,EACL,OAAO,EACP,eAAe,EACf,MAAM,EACN,MAAM,GACP,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhB"}
@@ -0,0 +1,29 @@
1
+ import { EvmHookReader } from '@hyperlane-xyz/sdk';
2
+ import { ProtocolType, stringifyObject } from '@hyperlane-xyz/utils';
3
+ import { readChainConfigsIfExists } from '../config/chain.js';
4
+ import { getMultiProvider } from '../context.js';
5
+ import { log, logBlue, logRed } from '../logger.js';
6
+ import { resolveFileFormat, writeFileAtPath, } from '../utils/files.js';
7
+ /**
8
+ * Read Hook config for a specified chain and address, logging or writing result to file.
9
+ */
10
+ export async function readHookConfig({ chain, address, chainConfigPath, format, output, }) {
11
+ const customChains = readChainConfigsIfExists(chainConfigPath);
12
+ const multiProvider = getMultiProvider(customChains);
13
+ if (multiProvider.getProtocol(chain) === ProtocolType.Ethereum) {
14
+ const hookReader = new EvmHookReader(multiProvider, chain);
15
+ const config = await hookReader.deriveHookConfig(address);
16
+ const stringConfig = stringifyObject(config, resolveFileFormat(output, format), 2);
17
+ if (!output) {
18
+ logBlue(`Hook Config at ${address} on ${chain}:`);
19
+ log(stringConfig);
20
+ }
21
+ else {
22
+ writeFileAtPath(output, stringConfig + '\n');
23
+ logBlue(`Hook Config written to ${output}.`);
24
+ }
25
+ return;
26
+ }
27
+ logRed('Unsupported chain. Currently this command supports EVM chains only.');
28
+ }
29
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/hook/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAW,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAEL,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,KAAK,EACL,OAAO,EACP,eAAe,EACf,MAAM,EACN,MAAM,GAOP;IACC,MAAM,YAAY,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAErD,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,eAAe,CAClC,MAAM,EACN,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,CAAC,CACF,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,kBAAkB,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,YAAY,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,0BAA0B,MAAM,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,qEAAqE,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ChainName } from '@hyperlane-xyz/sdk';
2
+ import { Address } from '@hyperlane-xyz/utils';
3
+ import { FileFormat } from '../utils/files.js';
4
+ /**
5
+ * Read ISM config for a specified chain and address, logging or writing result to file.
6
+ */
7
+ export declare function readIsmConfig({ chain, address, chainConfigPath, format, output, }: {
8
+ chain: ChainName;
9
+ address: Address;
10
+ chainConfigPath: string;
11
+ format: FileFormat;
12
+ output?: string;
13
+ }): Promise<void>;
14
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/ism/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAiC,MAAM,sBAAsB,CAAC;AAK9E,OAAO,EACL,UAAU,EAGX,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAClC,KAAK,EACL,OAAO,EACP,eAAe,EACf,MAAM,EACN,MAAM,GACP,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhB"}
@@ -0,0 +1,29 @@
1
+ import { EvmIsmReader } from '@hyperlane-xyz/sdk';
2
+ import { ProtocolType, stringifyObject } from '@hyperlane-xyz/utils';
3
+ import { readChainConfigsIfExists } from '../config/chain.js';
4
+ import { getMultiProvider } from '../context.js';
5
+ import { log, logBlue, logRed } from '../logger.js';
6
+ import { resolveFileFormat, writeFileAtPath, } from '../utils/files.js';
7
+ /**
8
+ * Read ISM config for a specified chain and address, logging or writing result to file.
9
+ */
10
+ export async function readIsmConfig({ chain, address, chainConfigPath, format, output, }) {
11
+ const customChains = readChainConfigsIfExists(chainConfigPath);
12
+ const multiProvider = getMultiProvider(customChains);
13
+ if (multiProvider.getProtocol(chain) === ProtocolType.Ethereum) {
14
+ const ismReader = new EvmIsmReader(multiProvider, chain);
15
+ const config = await ismReader.deriveIsmConfig(address);
16
+ const stringConfig = stringifyObject(config, resolveFileFormat(output, format), 2);
17
+ if (!output) {
18
+ logBlue(`ISM Config at ${address} on ${chain}:`);
19
+ log(stringConfig);
20
+ }
21
+ else {
22
+ writeFileAtPath(output, stringConfig + '\n');
23
+ logBlue(`ISM Config written to ${output}.`);
24
+ }
25
+ return;
26
+ }
27
+ logRed('Unsupported chain. Currently this command supports EVM chains only.');
28
+ }
29
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/ism/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAW,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAEL,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,KAAK,EACL,OAAO,EACP,eAAe,EACf,MAAM,EACN,MAAM,GAOP;IACC,MAAM,YAAY,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAErD,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,eAAe,CAClC,MAAM,EACN,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,CAAC,CACF,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,iBAAiB,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC;YACjD,GAAG,CAAC,YAAY,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,yBAAyB,MAAM,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,qEAAqE,CAAC,CAAC;AAChF,CAAC"}
@@ -11,6 +11,7 @@ export declare const logGreen: (...args: any) => void;
11
11
  export declare const logRed: (...args: any) => void;
12
12
  export declare const logBoldUnderlinedRed: (...args: any) => void;
13
13
  export declare const logTip: (...args: any) => void;
14
+ export declare const warnYellow: (...args: any) => void;
14
15
  export declare const errorRed: (...args: any) => void;
15
16
  export declare const logTable: (...args: any) => void;
16
17
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,QAAQ,EAKT,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,QAKvE;AAED,eAAO,MAAM,GAAG,QAAS,MAAM,WAAW,GAAG,SAA8B,CAAC;AAE5E,wBAAgB,QAAQ,CACtB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,aAAa,EAAE,aAAa,EAC5B,GAAG,IAAI,EAAE,GAAG,QASb;AACD,eAAO,MAAM,OAAO,YAAa,GAAG,SAA0C,CAAC;AAC/E,eAAO,MAAM,OAAO,YAAa,GAAG,SACY,CAAC;AACjD,eAAO,MAAM,OAAO,YAAa,GAAG,SAA0C,CAAC;AAC/E,eAAO,MAAM,QAAQ,YAAa,GAAG,SACG,CAAC;AACzC,eAAO,MAAM,MAAM,YAAa,GAAG,SAAyC,CAAC;AAC7E,eAAO,MAAM,oBAAoB,YAAa,GAAG,SACI,CAAC;AACtD,eAAO,MAAM,MAAM,YAAa,GAAG,SACQ,CAAC;AAC5C,eAAO,MAAM,QAAQ,YAAa,GAAG,SAA0C,CAAC;AAGhF,eAAO,MAAM,QAAQ,YAAa,GAAG,SAA2B,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,QAAQ,EAKT,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,QAKvE;AAED,eAAO,MAAM,GAAG,QAAS,MAAM,WAAW,GAAG,SAA8B,CAAC;AAE5E,wBAAgB,QAAQ,CACtB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,aAAa,EAAE,aAAa,EAC5B,GAAG,IAAI,EAAE,GAAG,QASb;AACD,eAAO,MAAM,OAAO,YAAa,GAAG,SAA0C,CAAC;AAC/E,eAAO,MAAM,OAAO,YAAa,GAAG,SACY,CAAC;AACjD,eAAO,MAAM,OAAO,YAAa,GAAG,SAA0C,CAAC;AAC/E,eAAO,MAAM,QAAQ,YAAa,GAAG,SACG,CAAC;AACzC,eAAO,MAAM,MAAM,YAAa,GAAG,SAAyC,CAAC;AAC7E,eAAO,MAAM,oBAAoB,YAAa,GAAG,SACI,CAAC;AACtD,eAAO,MAAM,MAAM,YAAa,GAAG,SACQ,CAAC;AAC5C,eAAO,MAAM,UAAU,YAAa,GAAG,SACE,CAAC;AAC1C,eAAO,MAAM,QAAQ,YAAa,GAAG,SAA0C,CAAC;AAGhF,eAAO,MAAM,QAAQ,YAAa,GAAG,SAA2B,CAAC"}
@@ -25,6 +25,7 @@ export const logGreen = (...args) => logColor('info', chalk.green, ...args);
25
25
  export const logRed = (...args) => logColor('info', chalk.red, ...args);
26
26
  export const logBoldUnderlinedRed = (...args) => logColor('info', chalk.red.bold.underline, ...args);
27
27
  export const logTip = (...args) => logColor('info', chalk.bgYellow, ...args);
28
+ export const warnYellow = (...args) => logColor('warn', chalk.yellow, ...args);
28
29
  export const errorRed = (...args) => logColor('error', chalk.red, ...args);
29
30
  // No support for table in pino so print directly to console
30
31
  export const logTable = (...args) => console.table(...args);
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ChainName } from '@hyperlane-xyz/sdk';
2
- export declare function sendTestMessage({ key, chainConfigPath, coreArtifactsPath, origin, destination, messageBody, timeoutSec, skipWaitForDelivery, }: {
3
- key: string;
2
+ export declare function sendTestMessage({ key, chainConfigPath, coreArtifactsPath, origin, destination, messageBody, timeoutSec, skipWaitForDelivery, selfRelay, }: {
3
+ key?: string;
4
4
  chainConfigPath: string;
5
5
  coreArtifactsPath?: string;
6
6
  origin?: ChainName;
@@ -8,5 +8,6 @@ export declare function sendTestMessage({ key, chainConfigPath, coreArtifactsPat
8
8
  messageBody: string;
9
9
  timeoutSec: number;
10
10
  skipWaitForDelivery: boolean;
11
+ selfRelay?: boolean;
11
12
  }): Promise<void>;
12
13
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAIV,MAAM,oBAAoB,CAAC;AAS5B,wBAAsB,eAAe,CAAC,EACpC,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,GACpB,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,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;CAC9B,iBA2CA"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAIV,MAAM,oBAAoB,CAAC;AAS5B,wBAAsB,eAAe,CAAC,EACpC,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,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,iBA4CA"}
@@ -6,7 +6,7 @@ import { getContext, getMergedContractAddresses } from '../context.js';
6
6
  import { runPreflightChecks } from '../deploy/utils.js';
7
7
  import { errorRed, log, logBlue, logGreen } from '../logger.js';
8
8
  import { runSingleChainSelectionStep } from '../utils/chains.js';
9
- export async function sendTestMessage({ key, chainConfigPath, coreArtifactsPath, origin, destination, messageBody, timeoutSec, skipWaitForDelivery, }) {
9
+ export async function sendTestMessage({ key, chainConfigPath, coreArtifactsPath, origin, destination, messageBody, timeoutSec, skipWaitForDelivery, selfRelay, }) {
10
10
  const { signer, multiProvider, customChains, coreArtifacts } = await getContext({
11
11
  chainConfigPath,
12
12
  coreConfig: { coreArtifactsPath },
@@ -33,9 +33,10 @@ export async function sendTestMessage({ key, chainConfigPath, coreArtifactsPath,
33
33
  multiProvider,
34
34
  coreArtifacts,
35
35
  skipWaitForDelivery,
36
+ selfRelay,
36
37
  }), timeoutSec * 1000, 'Timed out waiting for messages to be delivered');
37
38
  }
38
- async function executeDelivery({ origin, destination, messageBody, multiProvider, coreArtifacts, skipWaitForDelivery, }) {
39
+ async function executeDelivery({ origin, destination, messageBody, multiProvider, coreArtifacts, skipWaitForDelivery, selfRelay, }) {
39
40
  const mergedContractAddrs = getMergedContractAddresses(coreArtifacts);
40
41
  const core = HyperlaneCore.fromAddressesMap(mergedContractAddrs, multiProvider);
41
42
  const mailbox = core.getContracts(origin).mailbox;
@@ -67,6 +68,11 @@ async function executeDelivery({ origin, destination, messageBody, multiProvider
67
68
  logBlue(`Sent message from ${origin} to ${recipient} on ${destination}.`);
68
69
  logBlue(`Message ID: ${message.id}`);
69
70
  log(`Message: ${JSON.stringify(message)}`);
71
+ if (selfRelay) {
72
+ await core.relayMessage(message);
73
+ logGreen('Message was self-relayed!');
74
+ return;
75
+ }
70
76
  }
71
77
  catch (e) {
72
78
  errorRed(`Encountered error sending message from ${origin} to ${destination}`);
@@ -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,7 +1,7 @@
1
1
  import { ChainName } from '@hyperlane-xyz/sdk';
2
2
  import { Address } from '@hyperlane-xyz/utils';
3
- export declare function sendTestTransfer({ key, chainConfigPath, coreArtifactsPath, warpConfigPath, origin, destination, routerAddress, wei, recipient, timeoutSec, skipWaitForDelivery, }: {
4
- key: string;
3
+ export declare function sendTestTransfer({ key, chainConfigPath, coreArtifactsPath, warpConfigPath, origin, destination, routerAddress, wei, recipient, timeoutSec, skipWaitForDelivery, selfRelay, }: {
4
+ key?: string;
5
5
  chainConfigPath: string;
6
6
  coreArtifactsPath?: string;
7
7
  warpConfigPath: string;
@@ -12,5 +12,6 @@ export declare function sendTestTransfer({ key, chainConfigPath, coreArtifactsPa
12
12
  recipient?: string;
13
13
  timeoutSec: number;
14
14
  skipWaitForDelivery: boolean;
15
+ selfRelay?: boolean;
15
16
  }): Promise<void>;
16
17
  //# sourceMappingURL=transfer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EASV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,sBAAsB,CAAC;AAQxD,wBAAsB,gBAAgB,CAAC,EACrC,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,WAAW,EACX,aAAa,EACb,GAAG,EACH,SAAS,EACT,UAAU,EACV,mBAAmB,GACpB,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,iBAgDA"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EASV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,sBAAsB,CAAC;AAQxD,wBAAsB,gBAAgB,CAAC,EACrC,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,WAAW,EACX,aAAa,EACb,GAAG,EACH,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,iBAiDA"}
@@ -6,7 +6,7 @@ import { getContext, getMergedContractAddresses } from '../context.js';
6
6
  import { runPreflightChecks } from '../deploy/utils.js';
7
7
  import { logBlue, logGreen, logRed } from '../logger.js';
8
8
  import { runSingleChainSelectionStep } from '../utils/chains.js';
9
- export async function sendTestTransfer({ key, chainConfigPath, coreArtifactsPath, warpConfigPath, origin, destination, routerAddress, wei, recipient, timeoutSec, skipWaitForDelivery, }) {
9
+ export async function sendTestTransfer({ key, chainConfigPath, coreArtifactsPath, warpConfigPath, origin, destination, routerAddress, wei, recipient, timeoutSec, skipWaitForDelivery, selfRelay, }) {
10
10
  const { signer, multiProvider, customChains, coreArtifacts, warpCoreConfig } = await getContext({
11
11
  chainConfigPath,
12
12
  coreConfig: { coreArtifactsPath },
@@ -38,11 +38,12 @@ export async function sendTestTransfer({ key, chainConfigPath, coreArtifactsPath
38
38
  multiProvider,
39
39
  coreArtifacts,
40
40
  skipWaitForDelivery,
41
+ selfRelay,
41
42
  }), timeoutSec * 1000, 'Timed out waiting for messages to be delivered');
42
43
  }
43
- async function executeDelivery({ origin, destination, warpCoreConfig, routerAddress, wei, recipient, multiProvider, signer, coreArtifacts, skipWaitForDelivery, }) {
44
+ async function executeDelivery({ origin, destination, warpCoreConfig, routerAddress, wei, recipient, multiProvider, signer, coreArtifacts, skipWaitForDelivery, selfRelay, }) {
44
45
  const signerAddress = await signer.getAddress();
45
- recipient || (recipient = signerAddress);
46
+ recipient ||= signerAddress;
46
47
  const mergedContractAddrs = getMergedContractAddresses(coreArtifacts);
47
48
  const core = HyperlaneCore.fromAddressesMap(mergedContractAddrs, multiProvider);
48
49
  const provider = multiProvider.getProvider(origin);
@@ -99,6 +100,11 @@ async function executeDelivery({ origin, destination, warpCoreConfig, routerAddr
99
100
  const message = core.getDispatchedMessages(transferTxReceipt)[0];
100
101
  logBlue(`Sent message from ${origin} to ${recipient} on ${destination}.`);
101
102
  logBlue(`Message ID: ${message.id}`);
103
+ if (selfRelay) {
104
+ await core.relayMessage(message);
105
+ logGreen('Message was self-relayed!');
106
+ return;
107
+ }
102
108
  if (skipWaitForDelivery)
103
109
  return;
104
110
  // Max wait 10 minutes