@hyperlane-xyz/cli 1.5.2-beta0 → 1.5.4-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.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/logger.d.ts.map +1 -0
- package/dist/{src/logger.js → logger.js} +12 -0
- package/dist/logger.js.map +1 -0
- package/dist/src/commands/chains.js +2 -1
- package/dist/src/commands/chains.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +4 -5
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +33 -3
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/options.d.ts +1 -0
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +8 -2
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/send.js +1 -1
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/config/artifacts.d.ts +3 -0
- package/dist/src/config/artifacts.d.ts.map +1 -0
- package/dist/src/config/artifacts.js +17 -0
- package/dist/src/config/artifacts.js.map +1 -0
- package/dist/src/config/chain.d.ts +3 -0
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +43 -4
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/multisig.d.ts +43 -0
- package/dist/src/config/multisig.d.ts.map +1 -1
- package/dist/src/config/multisig.js +38 -3
- package/dist/src/config/multisig.js.map +1 -1
- package/dist/src/config/warp.d.ts +176 -0
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +45 -3
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/context.d.ts +43 -0
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +1 -1
- package/dist/src/context.js.map +1 -1
- package/dist/src/deploy/core.d.ts +6 -1
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +62 -55
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/utils.d.ts +2 -2
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +7 -7
- package/dist/src/deploy/utils.js.map +1 -1
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +11 -10
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/send/message.js +3 -3
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.js +3 -3
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/utils/chains.d.ts +2 -3
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +8 -9
- package/dist/src/utils/chains.js.map +1 -1
- package/dist/src/utils/files.d.ts +1 -0
- package/dist/src/utils/files.d.ts.map +1 -1
- package/dist/src/utils/files.js +26 -1
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +3 -2
- package/dist/src/utils/keys.js.map +1 -1
- package/dist/src/utils/time.d.ts.map +1 -1
- package/dist/src/utils/time.js +1 -1
- package/dist/src/utils/time.js.map +1 -1
- package/examples/contract-artifacts.yaml +1 -1
- package/package.json +4 -4
- package/dist/src/configs.d.ts +0 -221
- package/dist/src/configs.d.ts.map +0 -1
- package/dist/src/configs.js +0 -130
- package/dist/src/configs.js.map +0 -1
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js.map +0 -1
- /package/dist/{src/logger.d.ts → logger.d.ts} +0 -0
package/dist/src/deploy/core.js
CHANGED
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
import { confirm
|
|
1
|
+
import { confirm } from '@inquirer/prompts';
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
3
|
import { GasOracleContractType, HyperlaneCoreDeployer, HyperlaneIgpDeployer, HyperlaneIsmFactory, HyperlaneIsmFactoryDeployer, ModuleType, agentStartBlocks, buildAgentConfig, defaultMultisigIsmConfigs, multisigIsmVerificationCost, serializeContractsMap, } from '@hyperlane-xyz/sdk';
|
|
4
4
|
import { objFilter, objMerge } from '@hyperlane-xyz/utils';
|
|
5
|
-
import {
|
|
5
|
+
import { log, logBlue, logGray, logGreen } from '../../logger.js';
|
|
6
|
+
import { readDeploymentArtifacts } from '../config/artifacts.js';
|
|
7
|
+
import { readMultisigConfig } from '../config/multisig.js';
|
|
6
8
|
import { MINIMUM_CORE_DEPLOY_BALANCE } from '../consts.js';
|
|
7
9
|
import { getDeployerContext, getMergedContractAddresses, sdkContractAddressesMap, } from '../context.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { prepNewArtifactsFiles, writeJson } from '../utils/files.js';
|
|
10
|
+
import { runOriginAndRemotesSelectionStep } from '../utils/chains.js';
|
|
11
|
+
import { prepNewArtifactsFiles, runFileSelectionStep, writeJson, } from '../utils/files.js';
|
|
11
12
|
import { TestRecipientDeployer, } from './TestRecipientDeployer.js';
|
|
12
13
|
import { runPreflightChecks } from './utils.js';
|
|
13
|
-
export async function runCoreDeploy({ key, chainConfigPath, outPath, }) {
|
|
14
|
+
export async function runCoreDeploy({ key, chainConfigPath, ismConfigPath, artifactsPath, outPath, origin, remotes, skipConfirmation, }) {
|
|
14
15
|
const { customChains, multiProvider, signer } = getDeployerContext(key, chainConfigPath);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
if (!origin || !remotes?.length) {
|
|
17
|
+
({ origin, remotes } = await runOriginAndRemotesSelectionStep(customChains));
|
|
18
|
+
}
|
|
19
|
+
const selectedChains = [origin, ...remotes];
|
|
20
|
+
const artifacts = await runArtifactStep(selectedChains, artifactsPath);
|
|
21
|
+
const multisigConfig = await runIsmStep(selectedChains, ismConfigPath);
|
|
18
22
|
const deploymentParams = {
|
|
19
|
-
|
|
23
|
+
origin,
|
|
20
24
|
remotes,
|
|
21
25
|
signer,
|
|
22
26
|
multiProvider,
|
|
23
27
|
artifacts,
|
|
24
28
|
multisigConfig,
|
|
25
29
|
outPath,
|
|
30
|
+
skipConfirmation,
|
|
26
31
|
};
|
|
27
32
|
await runDeployPlanStep(deploymentParams);
|
|
28
33
|
await runPreflightChecks({
|
|
@@ -31,71 +36,68 @@ export async function runCoreDeploy({ key, chainConfigPath, outPath, }) {
|
|
|
31
36
|
});
|
|
32
37
|
await executeDeploy(deploymentParams);
|
|
33
38
|
}
|
|
34
|
-
async function runArtifactStep(selectedChains) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
39
|
+
async function runArtifactStep(selectedChains, artifactsPath) {
|
|
40
|
+
if (!artifactsPath) {
|
|
41
|
+
logBlue('\n', 'Deployments can be totally new or can use some existing contract addresses.');
|
|
42
|
+
const isResume = await confirm({
|
|
43
|
+
message: 'Do you want use some existing contract addresses?',
|
|
44
|
+
});
|
|
45
|
+
if (!isResume)
|
|
46
|
+
return undefined;
|
|
47
|
+
artifactsPath = await runFileSelectionStep('./artifacts', 'contract artifacts', 'core-deployment');
|
|
48
|
+
}
|
|
44
49
|
const artifacts = readDeploymentArtifacts(artifactsPath);
|
|
45
50
|
const artifactChains = Object.keys(artifacts).filter((c) => selectedChains.includes(c));
|
|
46
51
|
log(`Found existing artifacts for chains: ${artifactChains.join(', ')}`);
|
|
47
52
|
return artifacts;
|
|
48
53
|
}
|
|
49
|
-
async function runIsmStep(selectedChains) {
|
|
50
|
-
logBlue('\n', 'Hyperlane instances requires an Interchain Security Module (ISM).');
|
|
51
|
-
const isMultisig = await confirm({
|
|
52
|
-
message: 'Do you want use a Multisig ISM?',
|
|
53
|
-
});
|
|
54
|
-
if (!isMultisig)
|
|
55
|
-
throw new Error('Sorry, only multisig ISMs are currently supported in the CLI');
|
|
54
|
+
async function runIsmStep(selectedChains, ismConfigPath) {
|
|
56
55
|
const defaultConfigChains = Object.keys(defaultMultisigIsmConfigs);
|
|
57
56
|
const configRequired = !!selectedChains.find((c) => !defaultConfigChains.includes(c));
|
|
58
57
|
if (!configRequired)
|
|
59
58
|
return;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
if (!ismConfigPath) {
|
|
60
|
+
logBlue('\n', 'Hyperlane instances requires an Interchain Security Module (ISM).');
|
|
61
|
+
logGray('Note, only Multisig ISM configs are currently supported in the CLI', 'Example config: https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/cli/typescript/cli/examples/multisig-ism.yaml');
|
|
62
|
+
ismConfigPath = await runFileSelectionStep('./configs', 'ISM config', 'ism');
|
|
63
|
+
}
|
|
64
|
+
const configs = readMultisigConfig(ismConfigPath);
|
|
65
65
|
const multisigConfigChains = Object.keys(configs).filter((c) => selectedChains.includes(c));
|
|
66
66
|
log(`Found configs for chains: ${multisigConfigChains.join(', ')}`);
|
|
67
67
|
return configs;
|
|
68
68
|
}
|
|
69
|
-
async function runDeployPlanStep({
|
|
69
|
+
async function runDeployPlanStep({ origin, remotes, signer, artifacts, skipConfirmation, }) {
|
|
70
70
|
const address = await signer.getAddress();
|
|
71
|
-
logBlue('\
|
|
71
|
+
logBlue('\nDeployment plan:');
|
|
72
72
|
logGray('===============:');
|
|
73
73
|
log(`Transaction signer and owner of new contracts will be ${address}`);
|
|
74
|
-
log(`Deploying to ${
|
|
74
|
+
log(`Deploying to ${origin} and connecting it to ${remotes.join(', ')}`);
|
|
75
75
|
const numContracts = Object.keys(Object.values(sdkContractAddressesMap)[0]).length;
|
|
76
76
|
log(`There are ${numContracts} contracts for each chain`);
|
|
77
77
|
if (artifacts)
|
|
78
78
|
log('But contracts with an address in the artifacts file will be skipped');
|
|
79
|
-
for (const chain of [
|
|
79
|
+
for (const chain of [origin, ...remotes]) {
|
|
80
80
|
const chainArtifacts = artifacts?.[chain] || {};
|
|
81
81
|
const numRequired = numContracts - Object.keys(chainArtifacts).length;
|
|
82
82
|
log(`${chain} will require ${numRequired} of ${numContracts}`);
|
|
83
83
|
}
|
|
84
|
-
log('The interchain security module will be a Multisig.');
|
|
84
|
+
log('The default interchain security module will be a Multisig.');
|
|
85
|
+
if (skipConfirmation)
|
|
86
|
+
return;
|
|
85
87
|
const isConfirmed = await confirm({
|
|
86
88
|
message: 'Is this deployment plan correct?',
|
|
87
89
|
});
|
|
88
90
|
if (!isConfirmed)
|
|
89
91
|
throw new Error('Deployment cancelled');
|
|
90
92
|
}
|
|
91
|
-
async function executeDeploy({
|
|
93
|
+
async function executeDeploy({ origin, remotes, signer, multiProvider, outPath, artifacts = {}, multisigConfig = {}, }) {
|
|
92
94
|
logBlue('All systems ready, captain! Beginning deployment...');
|
|
93
95
|
const [contractsFilePath, agentFilePath] = prepNewArtifactsFiles(outPath, [
|
|
94
96
|
{ filename: 'core-deployment', description: 'Contract addresses' },
|
|
95
97
|
{ filename: 'agent-config', description: 'Agent configs' },
|
|
96
98
|
]);
|
|
97
99
|
const owner = await signer.getAddress();
|
|
98
|
-
const selectedChains = [
|
|
100
|
+
const selectedChains = [origin, ...remotes];
|
|
99
101
|
const mergedContractAddrs = getMergedContractAddresses(artifacts);
|
|
100
102
|
// 1. Deploy ISM factories to all deployable chains that don't have them.
|
|
101
103
|
log('Deploying ISM factory contracts');
|
|
@@ -106,7 +108,7 @@ async function executeDeploy({ local, remotes, signer, multiProvider, outPath, a
|
|
|
106
108
|
logGreen(`ISM factory contracts deployed`);
|
|
107
109
|
// 2. Deploy IGPs to all deployable chains.
|
|
108
110
|
log(`Deploying IGP contracts`);
|
|
109
|
-
const igpConfig = buildIgpConfigMap(owner, selectedChains, selectedChains,
|
|
111
|
+
const igpConfig = buildIgpConfigMap(owner, selectedChains, selectedChains, multisigConfig);
|
|
110
112
|
const igpDeployer = new HyperlaneIgpDeployer(multiProvider);
|
|
111
113
|
igpDeployer.cacheAddressesMap(artifacts);
|
|
112
114
|
const igpContracts = await igpDeployer.deploy(igpConfig);
|
|
@@ -115,17 +117,17 @@ async function executeDeploy({ local, remotes, signer, multiProvider, outPath, a
|
|
|
115
117
|
// Build an IsmFactory that covers all chains so that we can
|
|
116
118
|
// use it later to deploy ISMs to remote chains.
|
|
117
119
|
const ismFactory = HyperlaneIsmFactory.fromAddressesMap(mergedContractAddrs, multiProvider);
|
|
118
|
-
// 3. Deploy core contracts to
|
|
119
|
-
log(`Deploying core contracts to ${
|
|
120
|
+
// 3. Deploy core contracts to origin chain
|
|
121
|
+
log(`Deploying core contracts to ${origin}`);
|
|
120
122
|
const coreDeployer = new HyperlaneCoreDeployer(multiProvider, ismFactory);
|
|
121
123
|
coreDeployer.cacheAddressesMap(artifacts);
|
|
122
|
-
const coreConfig = buildCoreConfigMap(owner,
|
|
124
|
+
const coreConfig = buildCoreConfigMap(owner, origin, remotes, multisigConfig);
|
|
123
125
|
const coreContracts = await coreDeployer.deploy(coreConfig);
|
|
124
126
|
artifacts = writeMergedAddresses(contractsFilePath, artifacts, coreContracts);
|
|
125
127
|
logGreen(`Core contracts deployed`);
|
|
126
128
|
// 4. Deploy ISM contracts to remote deployable chains
|
|
127
129
|
log(`Deploying ISMs`);
|
|
128
|
-
const ismConfigs = buildIsmConfigMap(owner,
|
|
130
|
+
const ismConfigs = buildIsmConfigMap(owner, selectedChains, remotes, multisigConfig);
|
|
129
131
|
const ismContracts = {};
|
|
130
132
|
for (const [ismChain, ismConfig] of Object.entries(ismConfigs)) {
|
|
131
133
|
if (artifacts[ismChain].multisigIsm) {
|
|
@@ -148,7 +150,7 @@ async function executeDeploy({ local, remotes, signer, multiProvider, outPath, a
|
|
|
148
150
|
artifacts = writeMergedAddresses(contractsFilePath, artifacts, testRecipients);
|
|
149
151
|
logGreen(`Test recipient contracts deployed`);
|
|
150
152
|
log('Writing agent configs');
|
|
151
|
-
await writeAgentConfig(agentFilePath, artifacts,
|
|
153
|
+
await writeAgentConfig(agentFilePath, artifacts, origin, remotes, multiProvider);
|
|
152
154
|
logGreen('Agent configs written');
|
|
153
155
|
logBlue('Deployment is complete!');
|
|
154
156
|
logBlue(`Contract address artifacts are in ${contractsFilePath}`);
|
|
@@ -168,9 +170,9 @@ function buildIsmConfigMap(owner, chains, remotes, multisigIsmConfigs) {
|
|
|
168
170
|
return [chain, ismConfig];
|
|
169
171
|
}));
|
|
170
172
|
}
|
|
171
|
-
function buildCoreConfigMap(owner,
|
|
173
|
+
function buildCoreConfigMap(owner, origin, remotes, multisigIsmConfigs) {
|
|
172
174
|
const configMap = {};
|
|
173
|
-
configMap[
|
|
175
|
+
configMap[origin] = {
|
|
174
176
|
owner,
|
|
175
177
|
defaultIsm: buildIsmConfig(owner, remotes, multisigIsmConfigs),
|
|
176
178
|
};
|
|
@@ -178,7 +180,10 @@ function buildCoreConfigMap(owner, local, remotes, multisigIsmConfigs) {
|
|
|
178
180
|
}
|
|
179
181
|
function buildTestRecipientConfigMap(chains, addressesMap) {
|
|
180
182
|
return Object.fromEntries(chains.map((chain) => {
|
|
181
|
-
const interchainSecurityModule =
|
|
183
|
+
const interchainSecurityModule =
|
|
184
|
+
// TODO revisit assumption that multisigIsm is always the ISM
|
|
185
|
+
addressesMap[chain].multisigIsm ??
|
|
186
|
+
addressesMap[chain].interchainSecurityModule ??
|
|
182
187
|
ethers.constants.AddressZero;
|
|
183
188
|
return [chain, { interchainSecurityModule }];
|
|
184
189
|
}));
|
|
@@ -186,16 +191,16 @@ function buildTestRecipientConfigMap(chains, addressesMap) {
|
|
|
186
191
|
function buildIgpConfigMap(owner, deployChains, selectedChains, multisigIsmConfigs) {
|
|
187
192
|
const mergedMultisigIsmConfig = objMerge(defaultMultisigIsmConfigs, multisigIsmConfigs);
|
|
188
193
|
const configMap = {};
|
|
189
|
-
for (const
|
|
194
|
+
for (const origin of deployChains) {
|
|
190
195
|
const overhead = {};
|
|
191
196
|
const gasOracleType = {};
|
|
192
197
|
for (const remote of selectedChains) {
|
|
193
|
-
if (
|
|
198
|
+
if (origin === remote)
|
|
194
199
|
continue;
|
|
195
200
|
overhead[remote] = multisigIsmVerificationCost(mergedMultisigIsmConfig[remote].threshold, mergedMultisigIsmConfig[remote].validators.length);
|
|
196
201
|
gasOracleType[remote] = GasOracleContractType.StorageGasOracle;
|
|
197
202
|
}
|
|
198
|
-
configMap[
|
|
203
|
+
configMap[origin] = {
|
|
199
204
|
owner,
|
|
200
205
|
beneficiary: owner,
|
|
201
206
|
gasOracleType,
|
|
@@ -211,16 +216,18 @@ function writeMergedAddresses(filePath, aAddresses, bContracts) {
|
|
|
211
216
|
writeJson(filePath, mergedAddresses);
|
|
212
217
|
return mergedAddresses;
|
|
213
218
|
}
|
|
214
|
-
async function writeAgentConfig(filePath, artifacts,
|
|
215
|
-
const selectedChains = [
|
|
219
|
+
async function writeAgentConfig(filePath, artifacts, origin, remotes, multiProvider) {
|
|
220
|
+
const selectedChains = [origin, ...remotes];
|
|
216
221
|
const startBlocks = { ...agentStartBlocks };
|
|
217
|
-
startBlocks[
|
|
222
|
+
startBlocks[origin] = await multiProvider
|
|
223
|
+
.getProvider(origin)
|
|
224
|
+
.getBlockNumber();
|
|
218
225
|
const mergedAddressesMap = objMerge(sdkContractAddressesMap, artifacts);
|
|
219
226
|
const filteredAddressesMap = objFilter(mergedAddressesMap, (chain, v) => selectedChains.includes(chain) &&
|
|
220
227
|
!!v.mailbox &&
|
|
221
228
|
!!v.interchainGasPaymaster &&
|
|
222
229
|
!!v.validatorAnnounce);
|
|
223
|
-
const agentConfig = buildAgentConfig(
|
|
230
|
+
const agentConfig = buildAgentConfig([origin], multiProvider, filteredAddressesMap, startBlocks);
|
|
224
231
|
writeJson(filePath, agentConfig);
|
|
225
232
|
}
|
|
226
233
|
//# sourceMappingURL=core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/deploy/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/deploy/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import { ChainName, MultiProvider } from '@hyperlane-xyz/sdk';
|
|
3
|
-
export declare function runPreflightChecks({
|
|
4
|
-
|
|
3
|
+
export declare function runPreflightChecks({ origin, remotes, signer, multiProvider, minBalanceWei, }: {
|
|
4
|
+
origin: ChainName;
|
|
5
5
|
remotes: ChainName[];
|
|
6
6
|
signer: ethers.Signer;
|
|
7
7
|
multiProvider: MultiProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAO9D,wBAAsB,kBAAkB,CAAC,EACvC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAO9D,wBAAsB,kBAAkB,CAAC,EACvC,MAAM,EACN,OAAO,EACP,MAAM,EACN,aAAa,EACb,aAAa,GACd,EAAE;IACD,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB,iBAwBA"}
|
package/dist/src/deploy/utils.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ProtocolType } from '@hyperlane-xyz/utils';
|
|
2
|
-
import { log, logGreen } from '
|
|
2
|
+
import { log, logGreen } from '../../logger.js';
|
|
3
3
|
import { assertNativeBalances } from '../utils/balances.js';
|
|
4
4
|
import { assertSigner } from '../utils/keys.js';
|
|
5
|
-
export async function runPreflightChecks({
|
|
5
|
+
export async function runPreflightChecks({ origin, remotes, signer, multiProvider, minBalanceWei, }) {
|
|
6
6
|
log('Running pre-flight checks...');
|
|
7
|
-
if (!
|
|
7
|
+
if (!origin || !remotes?.length)
|
|
8
8
|
throw new Error('Invalid chain selection');
|
|
9
|
-
if (remotes.includes(
|
|
10
|
-
throw new Error('
|
|
11
|
-
for (const chain of [
|
|
9
|
+
if (remotes.includes(origin))
|
|
10
|
+
throw new Error('Origin and remotes must be distinct');
|
|
11
|
+
for (const chain of [origin, ...remotes]) {
|
|
12
12
|
const metadata = multiProvider.tryGetChainMetadata(chain);
|
|
13
13
|
if (!metadata)
|
|
14
14
|
throw new Error(`No chain config found for ${chain}`);
|
|
@@ -18,7 +18,7 @@ export async function runPreflightChecks({ local, remotes, signer, multiProvider
|
|
|
18
18
|
logGreen('Chains are valid ✅');
|
|
19
19
|
assertSigner(signer);
|
|
20
20
|
logGreen('Signer is valid ✅');
|
|
21
|
-
await assertNativeBalances(multiProvider, signer, [
|
|
21
|
+
await assertNativeBalances(multiProvider, signer, [origin, ...remotes], minBalanceWei);
|
|
22
22
|
logGreen('Balances are sufficient ✅');
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,MAAM,EACN,OAAO,EACP,MAAM,EACN,aAAa,EACb,aAAa,GAOd;IACC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;QACrE,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ;YAC7C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACjE;IACD,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAE/B,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAE9B,MAAM,oBAAoB,CACxB,aAAa,EACb,MAAM,EACN,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EACpB,aAAa,CACd,CAAC;IACF,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"AAiCA,wBAAsB,aAAa,CAAC,EAClC,GAAG,EACH,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,OAAO,GACR,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,iBA4BA"}
|
package/dist/src/deploy/warp.js
CHANGED
|
@@ -3,10 +3,11 @@ import { ethers } from 'ethers';
|
|
|
3
3
|
import { ERC20__factory, ERC721__factory, HypERC20Deployer, HypERC721Deployer, TokenType, } from '@hyperlane-xyz/hyperlane-token';
|
|
4
4
|
import { chainMetadata as defaultChainMetadata, } from '@hyperlane-xyz/sdk';
|
|
5
5
|
import { objMap } from '@hyperlane-xyz/utils';
|
|
6
|
-
import {
|
|
6
|
+
import { log, logBlue, logGray, logGreen } from '../../logger.js';
|
|
7
|
+
import { readDeploymentArtifacts } from '../config/artifacts.js';
|
|
8
|
+
import { readWarpRouteConfig } from '../config/warp.js';
|
|
7
9
|
import { MINIMUM_WARP_DEPLOY_BALANCE } from '../consts.js';
|
|
8
10
|
import { getDeployerContext, getMergedContractAddresses } from '../context.js';
|
|
9
|
-
import { log, logBlue, logGray, logGreen } from '../logger.js';
|
|
10
11
|
import { prepNewArtifactsFiles, writeJson } from '../utils/files.js';
|
|
11
12
|
import { runPreflightChecks } from './utils.js';
|
|
12
13
|
export async function runWarpDeploy({ key, chainConfigPath, warpConfigPath, coreArtifactsPath, outPath, }) {
|
|
@@ -107,19 +108,19 @@ async function runBuildConfigStep({ warpRouteConfig, multiProvider, signer, arti
|
|
|
107
108
|
return {
|
|
108
109
|
configMap,
|
|
109
110
|
metadata: baseMetadata,
|
|
110
|
-
|
|
111
|
+
origin: baseChainName,
|
|
111
112
|
remotes: synthetics.map(({ chainName }) => chainName),
|
|
112
113
|
isNft: !!isNft,
|
|
113
114
|
};
|
|
114
115
|
}
|
|
115
|
-
async function runDeployPlanStep({ configMap, isNft,
|
|
116
|
+
async function runDeployPlanStep({ configMap, isNft, origin, remotes, signer, }) {
|
|
116
117
|
const address = await signer.getAddress();
|
|
117
|
-
const baseToken = configMap[
|
|
118
|
+
const baseToken = configMap[origin];
|
|
118
119
|
const baseName = getTokenName(baseToken);
|
|
119
120
|
logBlue('\n', 'Deployment plan:');
|
|
120
121
|
logGray('===============:');
|
|
121
122
|
log(`Transaction signer and owner of new contracts will be ${address}`);
|
|
122
|
-
log(`Deploying a warp route with a base of ${baseName} token on ${
|
|
123
|
+
log(`Deploying a warp route with a base of ${baseName} token on ${origin}`);
|
|
123
124
|
log(`Connecting it to new synthetic tokens on ${remotes.join(', ')}`);
|
|
124
125
|
log(`Using token standard ${isNft ? 'ERC721' : 'ERC20'}`);
|
|
125
126
|
const isConfirmed = await confirm({
|
|
@@ -194,14 +195,14 @@ function writeTokenDeploymentArtifacts(filePath, contracts, { configMap }) {
|
|
|
194
195
|
});
|
|
195
196
|
writeJson(filePath, artifacts);
|
|
196
197
|
}
|
|
197
|
-
function writeWarpUiTokenConfig(filePath, contracts, { configMap, isNft, metadata,
|
|
198
|
-
const baseConfig = configMap[
|
|
199
|
-
const hypTokenAddr = contracts[
|
|
198
|
+
function writeWarpUiTokenConfig(filePath, contracts, { configMap, isNft, metadata, origin, multiProvider }) {
|
|
199
|
+
const baseConfig = configMap[origin];
|
|
200
|
+
const hypTokenAddr = contracts[origin]?.router?.address || configMap[origin]?.foreignDeployment;
|
|
200
201
|
if (!hypTokenAddr) {
|
|
201
202
|
throw Error('No base Hyperlane token address deployed and no foreign deployment specified');
|
|
202
203
|
}
|
|
203
204
|
const commonFields = {
|
|
204
|
-
chainId: multiProvider.getChainId(
|
|
205
|
+
chainId: multiProvider.getChainId(origin),
|
|
205
206
|
name: metadata.name,
|
|
206
207
|
symbol: metadata.symbol,
|
|
207
208
|
decimals: metadata.decimals,
|
|
@@ -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;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAGjB,SAAS,GACV,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAOL,aAAa,IAAI,oBAAoB,GACtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"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"}
|
package/dist/src/send/message.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { BigNumber } from 'ethers';
|
|
2
2
|
import { HyperlaneCore, HyperlaneIgp, } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { addressToBytes32, timeout } from '@hyperlane-xyz/utils';
|
|
4
|
-
import {
|
|
4
|
+
import { errorRed, log, logBlue, logGreen } from '../../logger.js';
|
|
5
|
+
import { readDeploymentArtifacts } from '../config/artifacts.js';
|
|
5
6
|
import { MINIMUM_TEST_SEND_BALANCE } from '../consts.js';
|
|
6
7
|
import { getDeployerContext, getMergedContractAddresses } from '../context.js';
|
|
7
8
|
import { runPreflightChecks } from '../deploy/utils.js';
|
|
8
|
-
import { errorRed, log, logBlue, logGreen } from '../logger.js';
|
|
9
9
|
const GAS_AMOUNT = 300000;
|
|
10
10
|
// TODO improve the UX here by making params optional and
|
|
11
11
|
// prompting for missing values
|
|
@@ -15,7 +15,7 @@ export async function sendTestMessage({ key, chainConfigPath, coreArtifactsPath,
|
|
|
15
15
|
? readDeploymentArtifacts(coreArtifactsPath)
|
|
16
16
|
: undefined;
|
|
17
17
|
await runPreflightChecks({
|
|
18
|
-
|
|
18
|
+
origin,
|
|
19
19
|
remotes: [destination],
|
|
20
20
|
multiProvider,
|
|
21
21
|
signer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAGL,aAAa,EACb,YAAY,GAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@ import { ethers } from 'ethers';
|
|
|
2
2
|
import { ERC20__factory, EvmHypCollateralAdapter, HypERC20Collateral__factory, } from '@hyperlane-xyz/hyperlane-token';
|
|
3
3
|
import { HyperlaneCore, MultiProtocolProvider, } from '@hyperlane-xyz/sdk';
|
|
4
4
|
import { timeout } from '@hyperlane-xyz/utils';
|
|
5
|
-
import {
|
|
5
|
+
import { logBlue, logGreen } from '../../logger.js';
|
|
6
|
+
import { readDeploymentArtifacts } from '../config/artifacts.js';
|
|
6
7
|
import { MINIMUM_TEST_SEND_BALANCE } from '../consts.js';
|
|
7
8
|
import { getDeployerContext, getMergedContractAddresses } from '../context.js';
|
|
8
9
|
import { runPreflightChecks } from '../deploy/utils.js';
|
|
9
|
-
import { logBlue, logGreen } from '../logger.js';
|
|
10
10
|
import { assertTokenBalance } from '../utils/balances.js';
|
|
11
11
|
// TODO improve the UX here by making params optional and
|
|
12
12
|
// prompting for missing values
|
|
@@ -17,7 +17,7 @@ export async function sendTestTransfer({ key, chainConfigPath, coreArtifactsPath
|
|
|
17
17
|
: undefined;
|
|
18
18
|
await assertTokenBalance(multiProvider, signer, origin, routerAddress, wei.toString());
|
|
19
19
|
await runPreflightChecks({
|
|
20
|
-
|
|
20
|
+
origin,
|
|
21
21
|
remotes: [destination],
|
|
22
22
|
multiProvider,
|
|
23
23
|
signer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAGL,aAAa,EACb,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ChainMap, ChainMetadata } from '@hyperlane-xyz/sdk';
|
|
2
|
-
export declare function
|
|
3
|
-
|
|
2
|
+
export declare function runOriginAndRemotesSelectionStep(customChains: ChainMap<ChainMetadata>): Promise<{
|
|
3
|
+
origin: string;
|
|
4
4
|
remotes: string[];
|
|
5
|
-
selectedChains: string[];
|
|
6
5
|
}>;
|
|
7
6
|
export declare function runSingleChainSelectionStep(customChains: ChainMap<ChainMetadata>, message?: string): Promise<string>;
|
|
8
7
|
export declare function runMultiChainSelectionStep(customChains: ChainMap<ChainMetadata>, message?: string): Promise<string[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/utils/chains.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EACR,aAAa,EAGd,MAAM,oBAAoB,CAAC;AAQ5B,wBAAsB
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/utils/chains.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EACR,aAAa,EAGd,MAAM,oBAAoB,CAAC;AAQ5B,wBAAsB,gCAAgC,CACpD,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC;;;GAWtC;AAED,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,EACrC,OAAO,SAAiB,mBAUzB;AAED,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,EACrC,OAAO,SAAkB,qBAW1B"}
|
package/dist/src/utils/chains.js
CHANGED
|
@@ -2,25 +2,24 @@ import { Separator, checkbox } from '@inquirer/prompts';
|
|
|
2
2
|
import select from '@inquirer/select';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import { mainnetChainsMetadata, testnetChainsMetadata, } from '@hyperlane-xyz/sdk';
|
|
5
|
-
import { log, logBlue } from '
|
|
5
|
+
import { log, logBlue } from '../../logger.js';
|
|
6
6
|
// A special value marker to indicate user selected
|
|
7
7
|
// a new chain in the list
|
|
8
8
|
const NEW_CHAIN_MARKER = '__new__';
|
|
9
|
-
export async function
|
|
10
|
-
const
|
|
11
|
-
const remotes = await runMultiChainSelectionStep(customChains, 'Select remote chains the
|
|
12
|
-
|
|
13
|
-
return { local, remotes, selectedChains };
|
|
9
|
+
export async function runOriginAndRemotesSelectionStep(customChains) {
|
|
10
|
+
const origin = await runSingleChainSelectionStep(customChains, 'Select origin chain (the chain to which you will deploy now)');
|
|
11
|
+
const remotes = await runMultiChainSelectionStep(customChains, 'Select remote chains the origin will send messages to');
|
|
12
|
+
return { origin, remotes };
|
|
14
13
|
}
|
|
15
14
|
export async function runSingleChainSelectionStep(customChains, message = 'Select chain') {
|
|
16
15
|
const choices = getChainChoices(customChains);
|
|
17
|
-
const
|
|
16
|
+
const origin = (await select({
|
|
18
17
|
message,
|
|
19
18
|
choices,
|
|
20
19
|
pageSize: 20,
|
|
21
20
|
}));
|
|
22
|
-
handleNewChain([
|
|
23
|
-
return
|
|
21
|
+
handleNewChain([origin]);
|
|
22
|
+
return origin;
|
|
24
23
|
}
|
|
25
24
|
export async function runMultiChainSelectionStep(customChains, message = 'Select chains') {
|
|
26
25
|
const choices = getChainChoices(customChains);
|