@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.
- package/README.md +4 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/src/commands/options.d.ts +2 -0
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +14 -3
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/registry.js +16 -9
- package/dist/src/commands/registry.js.map +1 -1
- package/dist/src/commands/signCommands.d.ts.map +1 -1
- package/dist/src/commands/signCommands.js +1 -1
- package/dist/src/commands/signCommands.js.map +1 -1
- package/dist/src/commands/status.d.ts +2 -0
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +6 -1
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/submit.d.ts +11 -0
- package/dist/src/commands/submit.d.ts.map +1 -0
- package/dist/src/commands/submit.js +28 -0
- package/dist/src/commands/submit.js.map +1 -0
- package/dist/src/commands/warp.d.ts +5 -0
- package/dist/src/commands/warp.d.ts.map +1 -1
- package/dist/src/commands/warp.js +41 -3
- package/dist/src/commands/warp.js.map +1 -1
- package/dist/src/config/agent.d.ts +1 -1
- package/dist/src/config/agent.d.ts.map +1 -1
- package/dist/src/config/agent.js +59 -17
- package/dist/src/config/agent.js.map +1 -1
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +37 -2
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/hooks.d.ts +133 -133
- package/dist/src/config/prompts.d.ts +2 -0
- package/dist/src/config/prompts.d.ts.map +1 -0
- package/dist/src/config/prompts.js +9 -0
- package/dist/src/config/prompts.js.map +1 -0
- package/dist/src/config/submit.d.ts +7 -0
- package/dist/src/config/submit.d.ts.map +1 -0
- package/dist/src/config/submit.js +33 -0
- package/dist/src/config/submit.js.map +1 -0
- package/dist/src/config/warp.js +1 -1
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/context/context.d.ts +4 -3
- package/dist/src/context/context.d.ts.map +1 -1
- package/dist/src/context/context.js +51 -5
- package/dist/src/context/context.js.map +1 -1
- package/dist/src/context/types.d.ts +3 -1
- package/dist/src/context/types.d.ts.map +1 -1
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +11 -4
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/warp.d.ts +10 -0
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +294 -45
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/send/message.d.ts.map +1 -1
- package/dist/src/send/message.js +3 -2
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.d.ts.map +1 -1
- package/dist/src/send/transfer.js +12 -6
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/status/message.d.ts +2 -1
- package/dist/src/status/message.d.ts.map +1 -1
- package/dist/src/status/message.js +35 -17
- package/dist/src/status/message.js.map +1 -1
- package/dist/src/submit/submit.d.ts +1 -1
- package/dist/src/submit/submit.d.ts.map +1 -1
- package/dist/src/submit/submit.js +16 -10
- package/dist/src/submit/submit.js.map +1 -1
- package/dist/src/submit/types.d.ts +5 -16
- package/dist/src/submit/types.d.ts.map +1 -1
- package/dist/src/utils/balances.js +1 -1
- package/dist/src/utils/balances.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/submit/strategy/gnosis-ica-strategy.yaml +11 -0
- package/examples/submit/strategy/gnosis-strategy.yaml +5 -0
- package/examples/submit/strategy/impersonated-account-strategy.yaml +4 -0
- package/examples/submit/strategy/json-rpc-strategy.yaml +3 -0
- package/examples/submit/transactions/alfajores-transactions.json +8 -0
- package/examples/submit/transactions/avalanche-transactions.json +8 -0
- package/package.json +4 -4
package/dist/src/deploy/warp.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { confirm } from '@inquirer/prompts';
|
|
2
2
|
import { stringify as yamlStringify } from 'yaml';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
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,
|
|
45
|
+
async function runDeployPlanStep({ context, warpDeployConfig }) {
|
|
40
46
|
const { skipConfirmation } = context;
|
|
41
|
-
|
|
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 {
|
|
56
|
-
const deployer =
|
|
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]:
|
|
61
|
-
:
|
|
62
|
-
const
|
|
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
|
-
|
|
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(
|
|
86
|
-
let chainAddresses = await registry.getChainAddresses(chain);
|
|
90
|
+
logBlue(`Loading registry factory addresses for ${chain}...`);
|
|
91
|
+
let chainAddresses = await registry.getChainAddresses(chain);
|
|
87
92
|
if (!chainAddresses) {
|
|
88
|
-
logGray(
|
|
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}
|
|
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}
|
|
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({
|
|
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,
|
|
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
|
-
|
|
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 =
|
|
136
|
-
const collateralAddressOrDenom = config
|
|
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[
|
|
158
|
+
addressOrDenom: contract[warpDeployConfig[chainName].type]
|
|
159
|
+
.address,
|
|
144
160
|
collateralAddressOrDenom,
|
|
145
161
|
});
|
|
146
162
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
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,
|
|
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"}
|
package/dist/src/send/message.js
CHANGED
|
@@ -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
|
|
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":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
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":"
|
|
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 {
|
|
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
|
|
83
|
-
|
|
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
|
-
|
|
87
|
-
|
|
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":"AAAA,OAAO,
|
|
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":"
|
|
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"}
|