@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.
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/src/commands/deploy.d.ts +6 -0
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +66 -54
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/hook.d.ts +7 -0
- package/dist/src/commands/hook.d.ts.map +1 -0
- package/dist/src/commands/hook.js +42 -0
- package/dist/src/commands/hook.js.map +1 -0
- package/dist/src/commands/ism.d.ts +7 -0
- package/dist/src/commands/ism.d.ts.map +1 -0
- package/dist/src/commands/ism.js +44 -0
- package/dist/src/commands/ism.js.map +1 -0
- package/dist/src/commands/options.d.ts +37 -2
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +45 -2
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/send.d.ts +8 -1
- package/dist/src/commands/send.d.ts.map +1 -1
- package/dist/src/commands/send.js +14 -4
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +8 -7
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/config/artifacts.d.ts +6 -1
- package/dist/src/config/artifacts.d.ts.map +1 -1
- package/dist/src/config/artifacts.js +7 -1
- package/dist/src/config/artifacts.js.map +1 -1
- package/dist/src/config/ism.d.ts +18 -0
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +22 -7
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/warp.d.ts +30 -180
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +19 -56
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/context.d.ts +22 -5
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +57 -18
- package/dist/src/context.js.map +1 -1
- package/dist/src/deploy/core.d.ts +6 -2
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +37 -16
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/dry-run.d.ts +20 -0
- package/dist/src/deploy/dry-run.d.ts.map +1 -0
- package/dist/src/deploy/dry-run.js +45 -0
- package/dist/src/deploy/dry-run.js.map +1 -0
- package/dist/src/deploy/utils.d.ts +6 -1
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +40 -6
- package/dist/src/deploy/utils.js.map +1 -1
- package/dist/src/deploy/warp.d.ts +3 -2
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +94 -89
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/hook/read.d.ts +14 -0
- package/dist/src/hook/read.d.ts.map +1 -0
- package/dist/src/hook/read.js +29 -0
- package/dist/src/hook/read.js.map +1 -0
- package/dist/src/ism/read.d.ts +14 -0
- package/dist/src/ism/read.d.ts.map +1 -0
- package/dist/src/ism/read.js +29 -0
- package/dist/src/ism/read.js.map +1 -0
- package/dist/src/logger.d.ts +1 -0
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +1 -0
- package/dist/src/logger.js.map +1 -1
- package/dist/src/send/message.d.ts +3 -2
- package/dist/src/send/message.d.ts.map +1 -1
- package/dist/src/send/message.js +8 -2
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.d.ts +3 -2
- package/dist/src/send/transfer.d.ts.map +1 -1
- package/dist/src/send/transfer.js +9 -3
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/status/message.d.ts +4 -1
- package/dist/src/status/message.d.ts.map +1 -1
- package/dist/src/status/message.js +14 -3
- package/dist/src/status/message.js.map +1 -1
- package/dist/src/tests/deployTestErc20.js +4 -4
- package/dist/src/tests/deployTestErc20.js.map +1 -1
- package/dist/src/utils/env.d.ts +2 -0
- package/dist/src/utils/env.d.ts.map +1 -1
- package/dist/src/utils/env.js +2 -0
- package/dist/src/utils/env.js.map +1 -1
- package/dist/src/utils/files.d.ts +12 -4
- package/dist/src/utils/files.d.ts.map +1 -1
- package/dist/src/utils/files.js +35 -11
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/utils/fork.d.ts +37 -0
- package/dist/src/utils/fork.d.ts.map +1 -0
- package/dist/src/utils/fork.js +91 -0
- package/dist/src/utils/fork.js.map +1 -0
- package/dist/src/utils/keys.d.ts +16 -2
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +67 -6
- package/dist/src/utils/keys.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/examples/dry-run/anvil-chains.yaml +17 -0
- package/examples/dry-run/ism.yaml +8 -0
- package/examples/dry-run/warp-route-deployment.yaml +4 -0
- package/examples/fork/warp-route-deployment.yaml +17 -9
- package/examples/warp-route-deployment.yaml +17 -10
- package/package.json +9 -7
package/dist/src/deploy/warp.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
import { confirm, input } from '@inquirer/prompts';
|
|
2
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
98
|
-
|
|
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 (
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
122
|
-
|
|
125
|
+
metadata: baseMetadata,
|
|
126
|
+
remotes,
|
|
123
127
|
};
|
|
124
128
|
}
|
|
125
|
-
async function runDeployPlanStep({ configMap,
|
|
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,
|
|
147
|
-
const [contractsFilePath, tokenConfigPath] = prepNewArtifactsFiles(outPath, [
|
|
148
|
-
{
|
|
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
|
|
155
|
-
|
|
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(
|
|
164
|
-
|
|
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(
|
|
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 ${
|
|
180
|
+
throw new Error(`No native token metadata for ${chain}`);
|
|
176
181
|
}
|
|
177
|
-
else if (
|
|
178
|
-
|
|
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 ${
|
|
181
|
-
const adapter = new EvmTokenAdapter(
|
|
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: ${
|
|
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
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAIL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAGjB,qBAAqB,EAErB,sBAAsB,EAItB,SAAS,EAGT,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAW,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,MAAM,EACN,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,GACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,GAAG,EACH,eAAe,EACf,6BAA6B,EAC7B,iBAAiB,EACjB,OAAO,EACP,gBAAgB,EAChB,MAAM,GASP;IACC,IACE,CAAC,6BAA6B;QAC9B,CAAC,MAAM,CAAC,6BAA6B,CAAC,EACtC,CAAC;QACD,IAAI,gBAAgB;YAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,6BAA6B,GAAG,MAAM,oBAAoB,CACxD,WAAW,EACX,8BAA8B,EAC9B,MAAM,CACP,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,GAAG,CACD,yCAAyC,6BAA6B,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,GAAG,yBAAyB,CAC/C,6BAA6B,CAC9B,CAAC;IAEF,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM;QACrD,CAAC,CAAC,MAAM,gBAAgB,CAAC;YACrB,eAAe;YACf,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,UAAU,EAAE,EAAE,iBAAiB,EAAE;YACjC,SAAS,EAAE,EAAE,GAAG,EAAE;YAClB,gBAAgB;SACjB,CAAC;QACJ,CAAC,CAAC,MAAM,UAAU,CAAC;YACf,eAAe;YACf,UAAU,EAAE,EAAE,iBAAiB,EAAE;YACjC,SAAS,EAAE,EAAE,GAAG,EAAE;YAClB,gBAAgB;SACjB,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;QACvC,eAAe;QACf,aAAa;QACb,aAAa;QACb,MAAM;QACN,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG;QACvB,GAAG,OAAO;QACV,MAAM;QACN,aAAa;QACb,OAAO;QACP,gBAAgB;QAChB,MAAM;KACP,CAAC;IAEF,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAEtC,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC1C,MAAM,kBAAkB,CAAC;QACvB,GAAG,gBAAgB;QACnB,MAAM,EAAE,uBAAuB;KAChC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D,MAAM,eAAe,GAAG,MAAM,aAAa,CACzC,aAAa,EACb,WAAW,EACX,MAAM,CACP,CAAC;IAEF,MAAM,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAEtC,MAAM,cAAc,CAClB,OAAO,CAAC,IAAI,EACZ,eAAe,EACf,aAAa,EACb,WAAW,EACX,MAAM,EACN,MAAM,CACP,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAChC,eAAe,EACf,aAAa,EACb,MAAM,EACN,aAAa,EACb,gBAAgB,GAOjB;IACC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,MAAM,oBAAoB,GAAwC,CAAC,SAAS,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,0HAA0H;IAC1H,8DAA8D;IAC9D,+DAA+D;IAC/D,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,YAAY,GAAG,EAA0B,CAAC;IAC9C,oEAAoE;IACpE,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9D,MAAM,mBAAmB,GAAG,0BAA0B,CACpD,aAAa,EACb,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAC7B,CAAC;QACF,2CAA2C;QAC3C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QACvE,MAAM,CAAC,wBAAwB;YAC7B,MAAM,CAAC,wBAAwB;gBAC/B,mBAAmB,CAAC,KAAK,CAAC,EAAE,wBAAwB;gBACpD,mBAAmB,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;QAC1C,2HAA2H;QAE3H,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,0BAA0B;YAC1B,aAAa,GAAG,KAAK,CAAC;YACtB,YAAY,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC1E,GAAG,CACD,+BAA+B,YAAY,CAAC,IAAI,aAAa,YAAY,CAAC,MAAM,eAAe,YAAY,CAAC,QAAQ,EAAE,CACvH,CAAC;YACF,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;gBAChC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,kCAAkC;YAClC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;YAC/C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;YACrD,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,wDAAwD;QACxD,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC5B,IAAI,gBAAgB;gBAClB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,iBAAiB,KAAK,WAAW,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,CACL,0IAA0I,CAC3I,CAAC;gBACF,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC;gBACxB,OAAO,EAAE,SAAS,KAAK,QAAQ,YAAY,CAAC,MAAM,CAAC,aAAa,KAAK,EAAE;aACxE,CAAC,CAAC;YACH,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC3B,OAAO;QACL,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,YAAY;QACtB,OAAO;KACR,CAAC;AACJ,CAAC;AAcD,KAAK,UAAU,iBAAiB,CAAC,EAC/B,SAAS,EACT,MAAM,EACN,OAAO,EACP,MAAM,EACN,gBAAgB,GACH;IACb,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3B,GAAG,CAAC,2BAA2B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,yDAAyD,OAAO,EAAE,CAAC,CAAC;IACxE,GAAG,CAAC,yCAAyC,QAAQ,aAAa,MAAM,EAAE,CAAC,CAAC;IAC5E,GAAG,CAAC,4CAA4C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,GAAG,CAAC,wBAAwB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAEpE,IAAI,gBAAgB;QAAE,OAAO;IAE7B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;QAChC,OAAO,EAAE,kCAAkC;KAC5C,CAAC,CAAC;IACH,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAoB;IAC/C,OAAO,CAAC,qDAAqD,CAAC,CAAC;IAE/D,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAErD,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,qBAAqB,CAChE,OAAO,EACP,iBAAiB,CACf;QACE;YACE,QAAQ,EAAE,uBAAuB;YACjC,WAAW,EAAE,oBAAoB;SAClC;QACD,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE;KACxD,EACD,MAAM,CAAC,MAAM,CACd,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK;QAC9B,CAAC,CAAC,IAAI,iBAAiB,CAAC,aAAa,CAAC;QACtC,CAAC,CAAC,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;QAC1B,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC/C,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,MAAM,CAC7C,MAA8C,CAC/C,CAAC,CAAC,iEAAiE;IAEpE,QAAQ,CAAC,kCAAkC,CAAC,CAAC;IAE7C,GAAG,CAAC,8BAA8B,CAAC,CAAC;IACpC,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC5E,eAAe,CAAC,eAAe,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAE5D,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACnC,OAAO,CAAC,qCAAqC,iBAAiB,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,qBAAqB,eAAe,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,KAAa,EACb,MAAyB,EACzB,aAA4B;IAE5B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QACrC,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;QAC3E,IAAI,gBAAgB;YAAE,OAAO,gBAAgB,CAAC;;YACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;SAAM,IACL,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe;QACzC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,EACpC,CAAC;QACD,0EAA0E;QAC1E,GAAG,CAAC,+BAA+B,MAAM,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,eAAe,CACjC,KAAK,EACL,qBAAqB,CAAC,iBAAiB,CAAC,aAAa,CAAC,EACtD,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACxB,CAAC;QACF,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,CAAC,IAAI,8DAA8D,CAChG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAkB;IACtC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACjE,CAAC;AACD,SAAS,6BAA6B,CACpC,QAAgB,EAChB,SAAgD,EAChD,EAAE,SAAS,EAAgB;IAE3B,MAAM,SAAS,GAGV,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACzC,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAA4B,CAAC,CAAC,OAAO;YACvE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI;SACjC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CACtB,QAAgB,EAChB,SAAgD,EAChD,EAAE,SAAS,EAAE,QAAQ,EAAgB;IAErC,MAAM,cAAc,GAAmB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEtD,mCAAmC;IACnC,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,wBAAwB,GAC5B,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,SAAS;YACT,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,cAAc,EACZ,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAA4B,CAAC,CAAC,OAAO;YACrE,wBAAwB;SACzB,CAAC,CAAC;IACL,CAAC;IAED,8CAA8C;IAC9C,wEAAwE;IACxE,oCAAoC;IACpC,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3C,IACE,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;gBACrC,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc;gBAE/C,SAAS;YACX,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAE,oBAAoB,CACzB,YAAY,CAAC,QAAQ,EACrB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,cAAe,CACvB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACtC,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 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"}
|
package/dist/src/logger.d.ts
CHANGED
|
@@ -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
|
package/dist/src/logger.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/src/logger.js
CHANGED
|
@@ -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);
|
package/dist/src/logger.js.map
CHANGED
|
@@ -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
|
|
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,
|
|
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"}
|
package/dist/src/send/message.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAGL,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,
|
|
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
|
|
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,
|
|
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
|
|
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
|