@hyperlane-xyz/cli 3.12.1 → 3.13.0-next.0
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 +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/src/commands/config.js +9 -9
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/deploy.js +4 -4
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/hook.js +2 -2
- package/dist/src/commands/hook.js.map +1 -1
- package/dist/src/commands/ism.js +2 -2
- package/dist/src/commands/ism.js.map +1 -1
- package/dist/src/commands/options.d.ts +10 -5
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +33 -6
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/send.js +2 -2
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/commands/validator.d.ts +3 -0
- package/dist/src/commands/validator.d.ts.map +1 -0
- package/dist/src/commands/validator.js +34 -0
- package/dist/src/commands/validator.js.map +1 -0
- package/dist/src/config/chain.js +3 -3
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/warp.d.ts +1 -1
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +91 -49
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/deploy/agent.js +1 -1
- package/dist/src/deploy/agent.js.map +1 -1
- package/dist/src/deploy/utils.d.ts +0 -7
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +0 -15
- 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 +34 -121
- 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 +4 -5
- 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 +4 -5
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/submit/submit.d.ts +5 -0
- package/dist/src/submit/submit.d.ts.map +1 -0
- package/dist/src/submit/submit.js +30 -0
- package/dist/src/submit/submit.js.map +1 -0
- package/dist/src/submit/types.d.ts +18 -0
- package/dist/src/submit/types.d.ts.map +1 -0
- package/dist/src/submit/types.js +2 -0
- package/dist/src/submit/types.js.map +1 -0
- package/dist/src/tests/deployTestErc20.js +3 -2
- package/dist/src/tests/deployTestErc20.js.map +1 -1
- package/dist/src/utils/chains.d.ts +1 -1
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +8 -6
- package/dist/src/utils/chains.js.map +1 -1
- package/dist/src/utils/env.d.ts +3 -0
- package/dist/src/utils/env.d.ts.map +1 -1
- package/dist/src/utils/env.js +3 -0
- package/dist/src/utils/env.js.map +1 -1
- package/dist/src/utils/keys.js +3 -2
- package/dist/src/utils/keys.js.map +1 -1
- package/dist/src/utils/schemas.d.ts +11 -0
- package/dist/src/utils/schemas.d.ts.map +1 -0
- package/dist/src/utils/schemas.js +86 -0
- package/dist/src/utils/schemas.js.map +1 -0
- package/dist/src/validator/address.d.ts +10 -0
- package/dist/src/validator/address.d.ts.map +1 -0
- package/dist/src/validator/address.js +107 -0
- package/dist/src/validator/address.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +6 -3
- package/dist/src/avs/config.d.ts +0 -11
- package/dist/src/avs/config.d.ts.map +0 -1
- package/dist/src/avs/config.js +0 -10
- package/dist/src/avs/config.js.map +0 -1
- package/dist/src/avs/stakeRegistry.d.ts +0 -20
- package/dist/src/avs/stakeRegistry.d.ts.map +0 -1
- package/dist/src/avs/stakeRegistry.js +0 -92
- package/dist/src/avs/stakeRegistry.js.map +0 -1
- package/dist/src/commands/avs.d.ts +0 -12
- package/dist/src/commands/avs.d.ts.map +0 -1
- package/dist/src/commands/avs.js +0 -62
- package/dist/src/commands/avs.js.map +0 -1
package/dist/src/config/warp.js
CHANGED
|
@@ -1,14 +1,57 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ethers } from 'ethers';
|
|
1
|
+
import { input, select } from '@inquirer/prompts';
|
|
3
2
|
import { TokenType, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, } from '@hyperlane-xyz/sdk';
|
|
4
|
-
import {
|
|
3
|
+
import { assert, objMap, promiseObjAll } from '@hyperlane-xyz/utils';
|
|
5
4
|
import { errorRed, logBlue, logGreen } from '../logger.js';
|
|
6
|
-
import {
|
|
5
|
+
import { detectAndConfirmOrPrompt, runMultiChainSelectionStep, } from '../utils/chains.js';
|
|
7
6
|
import { readYamlOrJson, writeYamlOrJson } from '../utils/files.js';
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const TYPE_DESCRIPTIONS = {
|
|
8
|
+
[TokenType.synthetic]: 'A new ERC20 with remote transfer functionality',
|
|
9
|
+
[TokenType.collateral]: 'Extends an existing ERC20 with remote transfer functionality',
|
|
10
|
+
[TokenType.native]: 'Extends the native token with remote transfer functionality',
|
|
11
|
+
[TokenType.collateralVault]: 'Extends an existing ERC4626 with remote transfer functionality',
|
|
12
|
+
[TokenType.collateralFiat]: 'Extends an existing FiatToken with remote transfer functionality',
|
|
13
|
+
[TokenType.XERC20]: 'Extends an existing xERC20 with Warp Route functionality',
|
|
14
|
+
[TokenType.XERC20Lockbox]: 'Extends an existing xERC20 Lockbox with Warp Route functionality',
|
|
15
|
+
// TODO: describe
|
|
16
|
+
[TokenType.fastSynthetic]: '',
|
|
17
|
+
[TokenType.syntheticUri]: '',
|
|
18
|
+
[TokenType.fastCollateral]: '',
|
|
19
|
+
[TokenType.collateralUri]: '',
|
|
20
|
+
[TokenType.nativeScaled]: '',
|
|
21
|
+
};
|
|
22
|
+
const TYPE_CHOICES = Object.values(TokenType).map((type) => ({
|
|
23
|
+
name: type,
|
|
24
|
+
value: type,
|
|
25
|
+
description: TYPE_DESCRIPTIONS[type],
|
|
26
|
+
}));
|
|
27
|
+
async function fillDefaults(context, config) {
|
|
28
|
+
return promiseObjAll(objMap(config, async (chain, config) => {
|
|
29
|
+
let mailbox = config.mailbox;
|
|
30
|
+
if (!mailbox) {
|
|
31
|
+
const addresses = await context.registry.getChainAddresses(chain);
|
|
32
|
+
assert(addresses, `No addresses found for chain ${chain}`);
|
|
33
|
+
mailbox = addresses.mailbox;
|
|
34
|
+
}
|
|
35
|
+
let owner = config.owner;
|
|
36
|
+
if (!owner) {
|
|
37
|
+
owner =
|
|
38
|
+
(await context.signer?.getAddress()) ??
|
|
39
|
+
(await context.multiProvider.getSignerAddress(chain));
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
owner,
|
|
43
|
+
mailbox,
|
|
44
|
+
...config,
|
|
45
|
+
};
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
export async function readWarpRouteDeployConfig(filePath, context) {
|
|
49
|
+
let config = readYamlOrJson(filePath);
|
|
10
50
|
if (!config)
|
|
11
51
|
throw new Error(`No warp route deploy config found at ${filePath}`);
|
|
52
|
+
if (context) {
|
|
53
|
+
config = await fillDefaults(context, config);
|
|
54
|
+
}
|
|
12
55
|
return WarpRouteDeployConfigSchema.parse(config);
|
|
13
56
|
}
|
|
14
57
|
export function isValidWarpRouteDeployConfig(config) {
|
|
@@ -16,54 +59,53 @@ export function isValidWarpRouteDeployConfig(config) {
|
|
|
16
59
|
}
|
|
17
60
|
export async function createWarpRouteDeployConfig({ context, outPath, }) {
|
|
18
61
|
logBlue('Creating a new warp route deployment config');
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
? false
|
|
28
|
-
: await confirm({
|
|
29
|
-
message: 'Do you want this warp route to be yield-bearing (i.e. deposits into ERC-4626 vault)?',
|
|
62
|
+
const owner = await detectAndConfirmOrPrompt(async () => context.signer?.getAddress(), 'Enter the desired', 'owner address');
|
|
63
|
+
const warpChains = await runMultiChainSelectionStep(context.chainMetadata, 'Select chains to connect');
|
|
64
|
+
const result = {};
|
|
65
|
+
for (const chain of warpChains) {
|
|
66
|
+
logBlue(`Configuring warp route for chain ${chain}`);
|
|
67
|
+
const type = await select({
|
|
68
|
+
message: `Select ${chain}'s token type`,
|
|
69
|
+
choices: TYPE_CHOICES,
|
|
30
70
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
71
|
+
// TODO: restore NFT prompting
|
|
72
|
+
const isNft = type === TokenType.syntheticUri || type === TokenType.collateralUri
|
|
73
|
+
? true
|
|
74
|
+
: undefined;
|
|
75
|
+
const mailbox = await detectAndConfirmOrPrompt(async () => {
|
|
76
|
+
const addresses = await context.registry.getChainAddresses(chain);
|
|
77
|
+
return addresses?.mailbox;
|
|
78
|
+
}, `For ${chain}, enter the`, 'mailbox address');
|
|
79
|
+
switch (type) {
|
|
80
|
+
case TokenType.collateral:
|
|
81
|
+
case TokenType.XERC20:
|
|
82
|
+
case TokenType.XERC20Lockbox:
|
|
83
|
+
case TokenType.collateralFiat:
|
|
84
|
+
case TokenType.collateralUri:
|
|
85
|
+
case TokenType.fastCollateral:
|
|
86
|
+
case TokenType.collateralVault:
|
|
87
|
+
result[chain] = {
|
|
88
|
+
mailbox,
|
|
89
|
+
type,
|
|
90
|
+
owner,
|
|
91
|
+
isNft,
|
|
92
|
+
token: await input({
|
|
93
|
+
message: `Enter the existing token address on chain ${chain}`,
|
|
94
|
+
}),
|
|
95
|
+
};
|
|
96
|
+
break;
|
|
97
|
+
default:
|
|
98
|
+
result[chain] = { mailbox, type, owner, isNft };
|
|
99
|
+
}
|
|
54
100
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
type: TokenType.synthetic,
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
|
-
if (isValidWarpRouteDeployConfig(result)) {
|
|
101
|
+
try {
|
|
102
|
+
const parsed = WarpRouteDeployConfigSchema.parse(result);
|
|
61
103
|
logGreen(`Warp Route config is valid, writing to file ${outPath}`);
|
|
62
|
-
writeYamlOrJson(outPath,
|
|
104
|
+
writeYamlOrJson(outPath, parsed);
|
|
63
105
|
}
|
|
64
|
-
|
|
106
|
+
catch (e) {
|
|
65
107
|
errorRed(`Warp route deployment config is invalid, please see https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/cli/examples/warp-route-deployment.yaml for an example`);
|
|
66
|
-
throw
|
|
108
|
+
throw e;
|
|
67
109
|
}
|
|
68
110
|
}
|
|
69
111
|
// Note, this is different than the function above which reads a config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/config/warp.ts"],"names":[],"mappings":"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"}
|
package/dist/src/deploy/agent.js
CHANGED
|
@@ -28,7 +28,7 @@ export async function runKurtosisAgentDeploy({ context, originChain, relayChains
|
|
|
28
28
|
};
|
|
29
29
|
const base64EncodedPackageConfig = toBase64(kurtosisPackageConfig) || '';
|
|
30
30
|
const kurtosisCloudUrl = getKurtosisCloudUrl(base64EncodedPackageConfig);
|
|
31
|
-
const kurtosisCloudLink = terminalLink('
|
|
31
|
+
const kurtosisCloudLink = terminalLink('Kurtosis Cloud Link 🔗 (cmd+click or ctrl+click here)', kurtosisCloudUrl, { fallback: () => kurtosisCloudUrl });
|
|
32
32
|
logGreen('\n', 'Click the link below to deploy your validator and relayer with Kurtosis:', '\n', `${kurtosisCloudLink}`);
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/deploy/agent.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,OAAO,EACP,WAAW,EACX,WAAW,EACX,sBAAsB,GAMvB;IACC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,2BAA2B,CAC7C,OAAO,CAAC,aAAa,EACrB,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,mBAAmB,GAAG,MAAM,0BAA0B,CAC1D,OAAO,CAAC,aAAa,EACrB,gCAAgC,EAChC,IAAI,CACL,CAAC;QACF,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO,CACL,IAAI,EACJ,mFAAmF,CACpF,CAAC;QACF,sBAAsB,GAAG,MAAM,oBAAoB,CACjD,WAAW,EACX,mBAAmB,EACnB,cAAc,CACf,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,GAAG,QAAQ,CAAM,sBAAsB,CAAC,CAAC;IAEhE,MAAM,oBAAoB,GAAG;QAC3B,IAAI,EAAE,IAAI;QACV,iBAAiB,EAAE,WAAW;QAC9B,YAAY,EAAE,WAAW;QACzB,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACrD,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC5B,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,oBAAoB;KAC3B,CAAC;IAEF,MAAM,0BAA0B,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACzE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,YAAY,CACpC,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/deploy/agent.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,OAAO,EACP,WAAW,EACX,WAAW,EACX,sBAAsB,GAMvB;IACC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,2BAA2B,CAC7C,OAAO,CAAC,aAAa,EACrB,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,mBAAmB,GAAG,MAAM,0BAA0B,CAC1D,OAAO,CAAC,aAAa,EACrB,gCAAgC,EAChC,IAAI,CACL,CAAC;QACF,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO,CACL,IAAI,EACJ,mFAAmF,CACpF,CAAC;QACF,sBAAsB,GAAG,MAAM,oBAAoB,CACjD,WAAW,EACX,mBAAmB,EACnB,cAAc,CACf,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,GAAG,QAAQ,CAAM,sBAAsB,CAAC,CAAC;IAEhE,MAAM,oBAAoB,GAAG;QAC3B,IAAI,EAAE,IAAI;QACV,iBAAiB,EAAE,WAAW;QAC9B,YAAY,EAAE,WAAW;QACzB,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACrD,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC5B,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,oBAAoB;KAC3B,CAAC;IAEF,MAAM,0BAA0B,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACzE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,YAAY,CACpC,uDAAuD,EACvD,gBAAgB,EAChB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CACrC,CAAC;IAEF,QAAQ,CACN,IAAI,EACJ,0EAA0E,EAC1E,IAAI,EACJ,GAAG,iBAAiB,EAAE,CACvB,CAAC;IACF,OAAO;AACT,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,YAAoB,EAAE,EAAE,CACnD,qHAAqH,YAAY,EAAE,CAAC"}
|
|
@@ -2,13 +2,6 @@ import { BigNumber } from 'ethers';
|
|
|
2
2
|
import { ChainMap, ChainName, IsmConfig, MultisigConfig } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { Address } from '@hyperlane-xyz/utils';
|
|
4
4
|
import { WriteCommandContext } from '../context/types.js';
|
|
5
|
-
export declare function runPreflightChecks({ context, origin, remotes, minGas, chainsToGasCheck, }: {
|
|
6
|
-
context: WriteCommandContext;
|
|
7
|
-
origin: ChainName;
|
|
8
|
-
remotes: ChainName[];
|
|
9
|
-
minGas: string;
|
|
10
|
-
chainsToGasCheck?: ChainName[];
|
|
11
|
-
}): Promise<void>;
|
|
12
5
|
export declare function runPreflightChecksForChains({ context, chains, minGas, chainsToGasCheck, }: {
|
|
13
6
|
context: WriteCommandContext;
|
|
14
7
|
chains: ChainName[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAgB,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQ1D,wBAAsB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAgB,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQ1D,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,MAAM,EACN,MAAM,EACN,gBAAgB,GACjB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IAGf,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;CAChC,iBAuBA;AAGD,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,GACrD,OAAO,CAET;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAapC;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC1C,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,SAAS,EAAE,iBAqBpB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,UAE9C"}
|
package/dist/src/deploy/utils.js
CHANGED
|
@@ -7,21 +7,6 @@ import { gasBalancesAreSufficient } from '../utils/balances.js';
|
|
|
7
7
|
import { ENV } from '../utils/env.js';
|
|
8
8
|
import { assertSigner } from '../utils/keys.js';
|
|
9
9
|
import { completeDryRun } from './dry-run.js';
|
|
10
|
-
export async function runPreflightChecks({ context, origin, remotes, minGas, chainsToGasCheck, }) {
|
|
11
|
-
log('Running pre-flight checks...');
|
|
12
|
-
if (!origin || !remotes?.length)
|
|
13
|
-
throw new Error('Invalid chain selection');
|
|
14
|
-
logGreen('✅ Chain selections are valid');
|
|
15
|
-
if (remotes.includes(origin))
|
|
16
|
-
throw new Error('Origin and remotes must be distinct');
|
|
17
|
-
logGreen('✅ Origin and remote are distinct');
|
|
18
|
-
return runPreflightChecksForChains({
|
|
19
|
-
context,
|
|
20
|
-
chains: [origin, ...remotes],
|
|
21
|
-
minGas,
|
|
22
|
-
chainsToGasCheck,
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
10
|
export async function runPreflightChecksForChains({ context, chains, minGas, chainsToGasCheck, }) {
|
|
26
11
|
log('Running pre-flight checks for chains...');
|
|
27
12
|
const { signer, multiProvider } = context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAKL,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAkBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAe1D,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,6BAA6B,GAC9B,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,iBA+CA"}
|
package/dist/src/deploy/warp.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { confirm
|
|
2
|
-
import {
|
|
1
|
+
import { confirm } from '@inquirer/prompts';
|
|
2
|
+
import { HypERC20Deployer, HypERC721Deployer, TOKEN_TYPE_TO_STANDARD, TokenType, getTokenConnectionId, isTokenMetadata, } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { ProtocolType } from '@hyperlane-xyz/utils';
|
|
4
4
|
import { readWarpRouteDeployConfig } from '../config/warp.js';
|
|
5
5
|
import { MINIMUM_WARP_DEPLOY_GAS } from '../consts.js';
|
|
6
|
-
import { log, logBlue, logGray, logGreen } from '../logger.js';
|
|
6
|
+
import { log, logBlue, logGray, logGreen, logTable } from '../logger.js';
|
|
7
7
|
import { isFile, runFileSelectionStep } from '../utils/files.js';
|
|
8
|
-
import { completeDeploy, prepareDeploy,
|
|
8
|
+
import { completeDeploy, prepareDeploy, runPreflightChecksForChains, } from './utils.js';
|
|
9
9
|
export async function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPath, }) {
|
|
10
10
|
const { signer, skipConfirmation } = context;
|
|
11
11
|
if (!warpRouteDeploymentConfigPath ||
|
|
@@ -17,106 +17,30 @@ export async function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPat
|
|
|
17
17
|
else {
|
|
18
18
|
log(`Using warp route deployment config at ${warpRouteDeploymentConfigPath}`);
|
|
19
19
|
}
|
|
20
|
-
const warpRouteConfig = readWarpRouteDeployConfig(warpRouteDeploymentConfigPath);
|
|
21
|
-
const configs = await runBuildConfigStep({
|
|
22
|
-
context,
|
|
23
|
-
warpRouteConfig,
|
|
24
|
-
});
|
|
20
|
+
const warpRouteConfig = await readWarpRouteDeployConfig(warpRouteDeploymentConfigPath, context);
|
|
25
21
|
const deploymentParams = {
|
|
26
22
|
context,
|
|
27
|
-
|
|
23
|
+
configMap: warpRouteConfig,
|
|
28
24
|
};
|
|
29
25
|
logBlue('Warp route deployment plan');
|
|
30
26
|
await runDeployPlanStep(deploymentParams);
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
const chains = Object.keys(warpRouteConfig);
|
|
28
|
+
await runPreflightChecksForChains({
|
|
29
|
+
context,
|
|
30
|
+
chains,
|
|
33
31
|
minGas: MINIMUM_WARP_DEPLOY_GAS,
|
|
34
32
|
});
|
|
35
33
|
const userAddress = await signer.getAddress();
|
|
36
|
-
const chains = [deploymentParams.origin, ...configs.remotes];
|
|
37
34
|
const initialBalances = await prepareDeploy(context, userAddress, chains);
|
|
38
35
|
await executeDeploy(deploymentParams);
|
|
39
36
|
await completeDeploy(context, 'warp', initialBalances, userAddress, chains);
|
|
40
37
|
}
|
|
41
|
-
async function
|
|
42
|
-
const {
|
|
43
|
-
log('Assembling token configs');
|
|
44
|
-
const chainAddresses = await registry.getAddresses();
|
|
45
|
-
const owner = await signer.getAddress();
|
|
46
|
-
const requiredRouterFields = ['mailbox'];
|
|
47
|
-
const remotes = [];
|
|
48
|
-
/// @dev This will keep track of the base collateral metadata which can get overwritten if there are multiple collaterals.
|
|
49
|
-
/// These 'base' variables are used to derive synthetic fields
|
|
50
|
-
/// @todo Remove this artifact when multi-collateral is enabled
|
|
51
|
-
let baseChainName = '';
|
|
52
|
-
let baseMetadata = {};
|
|
53
|
-
// Define configs that coalesce together values from the config file
|
|
54
|
-
for (const [chain, config] of Object.entries(warpRouteConfig)) {
|
|
55
|
-
// the artifacts, and the SDK as a fallback
|
|
56
|
-
config.owner = owner;
|
|
57
|
-
config.mailbox = config.mailbox || chainAddresses[chain]?.mailbox;
|
|
58
|
-
config.interchainSecurityModule =
|
|
59
|
-
config.interchainSecurityModule ||
|
|
60
|
-
chainAddresses[chain]?.interchainSecurityModule ||
|
|
61
|
-
chainAddresses[chain]?.multisigIsm;
|
|
62
|
-
// config.ismFactory: chainAddresses[baseChainName].domainRoutingIsmFactory, // TODO fix when updating from routingIsm
|
|
63
|
-
if (isCollateralConfig(config) || isNativeConfig(config)) {
|
|
64
|
-
// Store the base metadata
|
|
65
|
-
baseChainName = chain;
|
|
66
|
-
baseMetadata = await fetchBaseTokenMetadata(chain, config, multiProvider);
|
|
67
|
-
log(`Using token metadata: Name: ${baseMetadata.name}, Symbol: ${baseMetadata.symbol}, Decimals: ${baseMetadata.decimals}`);
|
|
68
|
-
if (isCollateralConfig(config)) {
|
|
69
|
-
config.name = baseMetadata.name;
|
|
70
|
-
config.symbol = baseMetadata.symbol;
|
|
71
|
-
config.decimals = baseMetadata.decimals;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else if (isSyntheticConfig(config)) {
|
|
75
|
-
// Use the config, or baseMetadata
|
|
76
|
-
config.name = config.name || baseMetadata.name;
|
|
77
|
-
config.symbol = config.symbol || baseMetadata.symbol;
|
|
78
|
-
config.totalSupply = config.totalSupply || 0;
|
|
79
|
-
remotes.push(chain);
|
|
80
|
-
}
|
|
81
|
-
let hasShownInfo = false;
|
|
82
|
-
// Request input for any address fields that are missing
|
|
83
|
-
for (const field of requiredRouterFields) {
|
|
84
|
-
if (config[field])
|
|
85
|
-
continue;
|
|
86
|
-
if (skipConfirmation)
|
|
87
|
-
throw new Error(`Field ${field} for token on ${chain} required`);
|
|
88
|
-
if (!hasShownInfo) {
|
|
89
|
-
logBlue('Some router fields are missing. Please enter them now, add them to your warp config, or use the --core flag to use deployment artifacts.');
|
|
90
|
-
hasShownInfo = true;
|
|
91
|
-
}
|
|
92
|
-
const value = await input({
|
|
93
|
-
message: `Enter ${field} for ${getTokenName(config)} token on ${chain}`,
|
|
94
|
-
});
|
|
95
|
-
if (!value)
|
|
96
|
-
throw new Error(`Field ${field} required`);
|
|
97
|
-
config[field] = value.trim();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
log('Token configs ready');
|
|
101
|
-
return {
|
|
102
|
-
configMap: warpRouteConfig,
|
|
103
|
-
origin: baseChainName,
|
|
104
|
-
metadata: baseMetadata,
|
|
105
|
-
remotes,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
async function runDeployPlanStep({ context, configMap, origin, remotes, }) {
|
|
109
|
-
const { signer, skipConfirmation } = context;
|
|
110
|
-
const address = await signer.getAddress();
|
|
111
|
-
const baseToken = configMap[origin];
|
|
112
|
-
const baseName = getTokenName(baseToken);
|
|
38
|
+
async function runDeployPlanStep({ context, configMap }) {
|
|
39
|
+
const { skipConfirmation } = context;
|
|
113
40
|
logBlue('\nDeployment plan');
|
|
114
41
|
logGray('===============');
|
|
115
|
-
log(`Collateral type will be ${baseToken.type}`);
|
|
116
|
-
log(`Transaction signer and owner of new contracts will be ${address}`);
|
|
117
|
-
log(`Deploying a warp route with a base of ${baseName} token on ${origin}`);
|
|
118
|
-
log(`Connecting it to new synthetic tokens on ${remotes.join(', ')}`);
|
|
119
42
|
log(`Using token standard ${configMap.isNft ? 'ERC721' : 'ERC20'}`);
|
|
43
|
+
logTable(configMap);
|
|
120
44
|
if (skipConfirmation)
|
|
121
45
|
return;
|
|
122
46
|
const isConfirmed = await confirm({
|
|
@@ -127,57 +51,46 @@ async function runDeployPlanStep({ context, configMap, origin, remotes, }) {
|
|
|
127
51
|
}
|
|
128
52
|
async function executeDeploy(params) {
|
|
129
53
|
logBlue('All systems ready, captain! Beginning deployment...');
|
|
130
|
-
const { configMap, context: { registry, multiProvider, isDryRun }, } = params;
|
|
54
|
+
const { configMap, context: { registry, multiProvider, isDryRun, dryRunChain }, } = params;
|
|
131
55
|
const deployer = configMap.isNft
|
|
132
56
|
? new HypERC721Deployer(multiProvider)
|
|
133
57
|
: new HypERC20Deployer(multiProvider);
|
|
134
|
-
const config = isDryRun
|
|
135
|
-
? { [
|
|
58
|
+
const config = isDryRun && dryRunChain
|
|
59
|
+
? { [dryRunChain]: configMap[dryRunChain] }
|
|
136
60
|
: configMap;
|
|
137
|
-
const deployedContracts = await deployer.deploy(config);
|
|
61
|
+
const deployedContracts = await deployer.deploy(config);
|
|
138
62
|
logGreen('✅ Hyp token deployments complete');
|
|
139
63
|
if (!isDryRun)
|
|
140
64
|
log('Writing deployment artifacts');
|
|
141
|
-
const warpCoreConfig = getWarpCoreConfig(params, deployedContracts);
|
|
65
|
+
const warpCoreConfig = await getWarpCoreConfig(params, deployedContracts);
|
|
142
66
|
await registry.addWarpRoute(warpCoreConfig);
|
|
143
67
|
log(JSON.stringify(warpCoreConfig, null, 2));
|
|
144
68
|
logBlue('Deployment is complete!');
|
|
145
69
|
}
|
|
146
|
-
async function
|
|
147
|
-
if (config.type === TokenType.native) {
|
|
148
|
-
// If it's a native token, use the chain's native token metadata
|
|
149
|
-
const chainNativeToken = multiProvider.getChainMetadata(chain).nativeToken;
|
|
150
|
-
if (chainNativeToken)
|
|
151
|
-
return chainNativeToken;
|
|
152
|
-
else
|
|
153
|
-
throw new Error(`No native token metadata for ${chain}`);
|
|
154
|
-
}
|
|
155
|
-
else if (config.type === TokenType.collateralVault ||
|
|
156
|
-
config.type === TokenType.collateral) {
|
|
157
|
-
// If it's a collateral type, use a TokenAdapter to query for its metadata
|
|
158
|
-
log(`Fetching token metadata for ${config.token} on ${chain}`);
|
|
159
|
-
const adapter = new EvmTokenAdapter(chain, MultiProtocolProvider.fromMultiProvider(multiProvider), { token: config.token });
|
|
160
|
-
return adapter.getMetadata();
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
throw new Error(`Unsupported token: ${config.type}. Consider setting token metadata in your deployment config.`);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
function getTokenName(token) {
|
|
167
|
-
return token.type === TokenType.native ? 'native' : token.name;
|
|
168
|
-
}
|
|
169
|
-
function getWarpCoreConfig({ configMap, metadata }, contracts) {
|
|
70
|
+
async function getWarpCoreConfig({ configMap, context }, contracts) {
|
|
170
71
|
const warpCoreConfig = { tokens: [] };
|
|
72
|
+
// TODO: replace with warp read
|
|
73
|
+
const tokenMetadata = await HypERC20Deployer.deriveTokenMetadata(context.multiProvider, configMap);
|
|
171
74
|
// First pass, create token configs
|
|
172
75
|
for (const [chainName, contract] of Object.entries(contracts)) {
|
|
173
76
|
const config = configMap[chainName];
|
|
77
|
+
const metadata = {
|
|
78
|
+
...tokenMetadata,
|
|
79
|
+
...config,
|
|
80
|
+
};
|
|
81
|
+
if (!isTokenMetadata(metadata)) {
|
|
82
|
+
throw new Error('Missing required token metadata');
|
|
83
|
+
}
|
|
84
|
+
const { decimals } = metadata;
|
|
85
|
+
if (!decimals) {
|
|
86
|
+
throw new Error('Missing decimals on token metadata');
|
|
87
|
+
}
|
|
174
88
|
const collateralAddressOrDenom = config.type === TokenType.collateral ? config.token : undefined;
|
|
175
89
|
warpCoreConfig.tokens.push({
|
|
176
90
|
chainName,
|
|
177
91
|
standard: TOKEN_TYPE_TO_STANDARD[config.type],
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
decimals: metadata.decimals,
|
|
92
|
+
...metadata,
|
|
93
|
+
decimals,
|
|
181
94
|
addressOrDenom: contract[configMap[chainName].type].address,
|
|
182
95
|
collateralAddressOrDenom,
|
|
183
96
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAI9D,OAAO,EAAkB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK1E,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,
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAI9D,OAAO,EAAkB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK1E,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
|
@@ -2,7 +2,7 @@ import { ethers } from 'ethers';
|
|
|
2
2
|
import { HyperlaneCore } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { addressToBytes32, timeout } from '@hyperlane-xyz/utils';
|
|
4
4
|
import { MINIMUM_TEST_SEND_GAS } from '../consts.js';
|
|
5
|
-
import {
|
|
5
|
+
import { runPreflightChecksForChains } from '../deploy/utils.js';
|
|
6
6
|
import { errorRed, log, logBlue, logGreen } from '../logger.js';
|
|
7
7
|
import { runSingleChainSelectionStep } from '../utils/chains.js';
|
|
8
8
|
export async function sendTestMessage({ context, origin, destination, messageBody, timeoutSec, skipWaitForDelivery, selfRelay, }) {
|
|
@@ -13,12 +13,11 @@ export async function sendTestMessage({ context, origin, destination, messageBod
|
|
|
13
13
|
if (!destination) {
|
|
14
14
|
destination = await runSingleChainSelectionStep(chainMetadata, 'Select the destination chain');
|
|
15
15
|
}
|
|
16
|
-
await
|
|
16
|
+
await runPreflightChecksForChains({
|
|
17
17
|
context,
|
|
18
|
-
origin,
|
|
19
|
-
remotes: [destination],
|
|
20
|
-
minGas: MINIMUM_TEST_SEND_GAS,
|
|
18
|
+
chains: [origin, destination],
|
|
21
19
|
chainsToGasCheck: [origin],
|
|
20
|
+
minGas: MINIMUM_TEST_SEND_GAS,
|
|
22
21
|
});
|
|
23
22
|
await timeout(executeDelivery({
|
|
24
23
|
context,
|
|
@@ -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,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,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,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,SAAS,GASV;IACC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAElC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,2BAA2B,CACxC,aAAa,EACb,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,2BAA2B,CAC7C,aAAa,EACb,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,MAAM,2BAA2B,CAAC;QAChC,OAAO;QACP,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;QAC7B,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,MAAM,EAAE,qBAAqB;KAC9B,CAAC,CAAC;IAEH,MAAM,OAAO,CACX,eAAe,CAAC;QACd,OAAO;QACP,MAAM;QACN,WAAW;QACX,WAAW;QACX,mBAAmB;QACnB,SAAS;KACV,CAAC,EACF,UAAU,GAAG,IAAI,EACjB,gDAAgD,CACjD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,EAC7B,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,SAAS,GAQV;IACC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,aAAa,CAAC,gBAAgB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAElD,IAAI,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC9C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,qBAAqB,IAAI,QAAQ,MAAM,OAAO,WAAW,EAAE,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,CAAC,sBAAsB,IAAI,QAAQ,MAAM,OAAO,WAAW,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,iBAAiB,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACjE,IAAI,SAAiC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEvD,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,OAAO,CACzB,mDAAmD,CACpD,CACC,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EACxB,IAAI,CACL,CAAC;QACF,GAAG,CAAC,uBAAuB,KAAK,MAAM,CAAC,CAAC;QAExC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,8CAA8C,CAC/C,CACC,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EACxB,IAAI,EACJ;YACE,KAAK;SACN,CACF,CAAC;QACF,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,qBAAqB,MAAM,OAAO,SAAS,OAAO,WAAW,GAAG,CAAC,CAAC;QAC1E,OAAO,CAAC,eAAe,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,GAAG,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,kCAAkC,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CACN,0CAA0C,MAAM,OAAO,WAAW,EAAE,CACrE,CAAC;QACF,MAAM,CAAC,CAAC;IACV,CAAC;IAED,IAAI,mBAAmB;QAAE,OAAO;IAEhC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAC5D,sBAAsB;IACtB,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAQV,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,cAAc,EACd,MAAM,EACN,WAAW,EACX,GAAG,EACH,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,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,
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAQV,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,cAAc,EACd,MAAM,EACN,WAAW,EACX,GAAG,EACH,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,GACV,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,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,iBAwCA"}
|
|
@@ -2,7 +2,7 @@ import { HyperlaneCore, MultiProtocolProvider, ProviderType, TokenAmount, WarpCo
|
|
|
2
2
|
import { timeout } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { readWarpRouteConfig } from '../config/warp.js';
|
|
4
4
|
import { MINIMUM_TEST_SEND_GAS } from '../consts.js';
|
|
5
|
-
import {
|
|
5
|
+
import { runPreflightChecksForChains } from '../deploy/utils.js';
|
|
6
6
|
import { logBlue, logGreen, logRed } from '../logger.js';
|
|
7
7
|
import { runSingleChainSelectionStep } from '../utils/chains.js';
|
|
8
8
|
import { runTokenSelectionStep } from '../utils/tokens.js';
|
|
@@ -15,12 +15,11 @@ export async function sendTestTransfer({ context, warpConfigPath, origin, destin
|
|
|
15
15
|
if (!destination) {
|
|
16
16
|
destination = await runSingleChainSelectionStep(chainMetadata, 'Select the destination chain');
|
|
17
17
|
}
|
|
18
|
-
await
|
|
18
|
+
await runPreflightChecksForChains({
|
|
19
19
|
context,
|
|
20
|
-
origin,
|
|
21
|
-
remotes: [destination],
|
|
22
|
-
minGas: MINIMUM_TEST_SEND_GAS,
|
|
20
|
+
chains: [origin, destination],
|
|
23
21
|
chainsToGasCheck: [origin],
|
|
22
|
+
minGas: MINIMUM_TEST_SEND_GAS,
|
|
24
23
|
});
|
|
25
24
|
await timeout(executeDelivery({
|
|
26
25
|
context,
|