@hyperlane-xyz/cli 3.20.0-beta0 → 4.0.0-alpha
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 +10 -6
- package/dist/cli.js.map +1 -1
- package/dist/src/avs/config.d.ts +11 -0
- package/dist/src/avs/config.d.ts.map +1 -0
- package/dist/src/avs/config.js +10 -0
- package/dist/src/avs/config.js.map +1 -0
- package/dist/src/avs/stakeRegistry.d.ts +21 -0
- package/dist/src/avs/stakeRegistry.d.ts.map +1 -0
- package/dist/src/avs/stakeRegistry.js +64 -0
- package/dist/src/avs/stakeRegistry.js.map +1 -0
- package/dist/src/commands/avs.d.ts +12 -0
- package/dist/src/commands/avs.d.ts.map +1 -0
- package/dist/src/commands/avs.js +64 -0
- package/dist/src/commands/avs.js.map +1 -0
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +10 -60
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/core.d.ts +16 -0
- package/dist/src/commands/core.d.ts.map +1 -0
- package/dist/src/commands/core.js +88 -0
- package/dist/src/commands/core.js.map +1 -0
- package/dist/src/commands/deploy.d.ts +13 -0
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +22 -26
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/options.d.ts +11 -5
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +45 -11
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/registry.d.ts +6 -0
- package/dist/src/commands/registry.d.ts.map +1 -0
- package/dist/src/commands/{chains.js → registry.js} +3 -3
- package/dist/src/commands/registry.js.map +1 -0
- package/dist/src/commands/send.d.ts.map +1 -1
- package/dist/src/commands/send.js +2 -42
- 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/commands/{hook.d.ts → warp.d.ts} +6 -2
- package/dist/src/commands/warp.d.ts.map +1 -0
- package/dist/src/commands/warp.js +101 -0
- package/dist/src/commands/warp.js.map +1 -0
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +21 -9
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/hooks.d.ts +4528 -90
- package/dist/src/config/hooks.d.ts.map +1 -1
- package/dist/src/config/hooks.js +31 -97
- package/dist/src/config/hooks.js.map +1 -1
- package/dist/src/config/ism.d.ts +58 -61
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +40 -128
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/warp.d.ts +3 -2
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +112 -49
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/consts.d.ts +1 -0
- package/dist/src/consts.d.ts.map +1 -1
- package/dist/src/consts.js +1 -0
- package/dist/src/consts.js.map +1 -1
- package/dist/src/context/context.d.ts +1 -1
- package/dist/src/context/context.d.ts.map +1 -1
- package/dist/src/context/context.js +37 -15
- package/dist/src/context/context.js.map +1 -1
- package/dist/src/context/types.d.ts +1 -0
- package/dist/src/context/types.d.ts.map +1 -1
- package/dist/src/deploy/agent.js +1 -1
- package/dist/src/deploy/agent.js.map +1 -1
- package/dist/src/deploy/core.d.ts +4 -8
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +28 -232
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/dry-run.d.ts +2 -2
- package/dist/src/deploy/dry-run.d.ts.map +1 -1
- package/dist/src/deploy/dry-run.js +1 -0
- package/dist/src/deploy/dry-run.js.map +1 -1
- package/dist/src/deploy/utils.d.ts +4 -7
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +22 -19
- 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 +38 -123
- 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 +15 -29
- 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 +5 -6
- 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/tests/hooks.test.js +14 -8
- package/dist/src/tests/hooks.test.js.map +1 -1
- package/dist/src/tests/ism.test.js +1 -1
- package/dist/src/tests/ism.test.js.map +1 -1
- package/dist/src/utils/balances.d.ts +2 -2
- package/dist/src/utils/balances.d.ts.map +1 -1
- package/dist/src/utils/balances.js +8 -3
- package/dist/src/utils/balances.js.map +1 -1
- package/dist/src/utils/chains.d.ts +1 -0
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +20 -3
- 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/files.d.ts +1 -0
- package/dist/src/utils/files.d.ts.map +1 -1
- package/dist/src/utils/files.js +8 -0
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/utils/keys.d.ts +5 -3
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +16 -13
- package/dist/src/utils/keys.js.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/examples/core-config.yaml +19 -0
- package/examples/hooks.yaml +8 -4
- package/examples/warp-route-deployment.yaml +2 -4
- package/package.json +7 -4
- package/dist/src/commands/chains.d.ts +0 -6
- package/dist/src/commands/chains.d.ts.map +0 -1
- package/dist/src/commands/chains.js.map +0 -1
- package/dist/src/commands/hook.d.ts.map +0 -1
- package/dist/src/commands/hook.js +0 -34
- package/dist/src/commands/hook.js.map +0 -1
- package/dist/src/commands/ism.d.ts +0 -12
- package/dist/src/commands/ism.d.ts.map +0 -1
- package/dist/src/commands/ism.js +0 -36
- package/dist/src/commands/ism.js.map +0 -1
- package/dist/src/registry/MergedRegistry.d.ts +0 -35
- package/dist/src/registry/MergedRegistry.d.ts.map +0 -1
- package/dist/src/registry/MergedRegistry.js +0 -83
- package/dist/src/registry/MergedRegistry.js.map +0 -1
|
@@ -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;
|
|
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,56 +51,47 @@ 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
|
-
|
|
140
|
-
|
|
141
|
-
|
|
63
|
+
const warpCoreConfig = await getWarpCoreConfig(params, deployedContracts);
|
|
64
|
+
if (!isDryRun) {
|
|
65
|
+
log('Writing deployment artifacts');
|
|
66
|
+
await registry.addWarpRoute(warpCoreConfig);
|
|
67
|
+
}
|
|
142
68
|
log(JSON.stringify(warpCoreConfig, null, 2));
|
|
143
69
|
logBlue('Deployment is complete!');
|
|
144
70
|
}
|
|
145
|
-
async function
|
|
146
|
-
if (config.type === TokenType.native) {
|
|
147
|
-
// If it's a native token, use the chain's native token metadata
|
|
148
|
-
const chainNativeToken = multiProvider.getChainMetadata(chain).nativeToken;
|
|
149
|
-
if (chainNativeToken)
|
|
150
|
-
return chainNativeToken;
|
|
151
|
-
else
|
|
152
|
-
throw new Error(`No native token metadata for ${chain}`);
|
|
153
|
-
}
|
|
154
|
-
else if (config.type === TokenType.collateralVault ||
|
|
155
|
-
config.type === TokenType.collateral) {
|
|
156
|
-
// If it's a collateral type, use a TokenAdapter to query for its metadata
|
|
157
|
-
log(`Fetching token metadata for ${config.token} on ${chain}`);
|
|
158
|
-
const adapter = new EvmTokenAdapter(chain, MultiProtocolProvider.fromMultiProvider(multiProvider), { token: config.token });
|
|
159
|
-
return adapter.getMetadata();
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
throw new Error(`Unsupported token: ${config.type}. Consider setting token metadata in your deployment config.`);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
function getTokenName(token) {
|
|
166
|
-
return token.type === TokenType.native ? 'native' : token.name;
|
|
167
|
-
}
|
|
168
|
-
function getWarpCoreConfig({ configMap, metadata }, contracts) {
|
|
71
|
+
async function getWarpCoreConfig({ configMap, context }, contracts) {
|
|
169
72
|
const warpCoreConfig = { tokens: [] };
|
|
73
|
+
// TODO: replace with warp read
|
|
74
|
+
const tokenMetadata = await HypERC20Deployer.deriveTokenMetadata(context.multiProvider, configMap);
|
|
170
75
|
// First pass, create token configs
|
|
171
76
|
for (const [chainName, contract] of Object.entries(contracts)) {
|
|
172
77
|
const config = configMap[chainName];
|
|
78
|
+
const metadata = {
|
|
79
|
+
...tokenMetadata,
|
|
80
|
+
...config,
|
|
81
|
+
};
|
|
82
|
+
if (!isTokenMetadata(metadata)) {
|
|
83
|
+
throw new Error('Missing required token metadata');
|
|
84
|
+
}
|
|
85
|
+
const { decimals } = metadata;
|
|
86
|
+
if (!decimals) {
|
|
87
|
+
throw new Error('Missing decimals on token metadata');
|
|
88
|
+
}
|
|
173
89
|
const collateralAddressOrDenom = config.type === TokenType.collateral ? config.token : undefined;
|
|
174
90
|
warpCoreConfig.tokens.push({
|
|
175
91
|
chainName,
|
|
176
92
|
standard: TOKEN_TYPE_TO_STANDARD[config.type],
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
decimals: metadata.decimals,
|
|
93
|
+
...metadata,
|
|
94
|
+
decimals,
|
|
180
95
|
addressOrDenom: contract[configMap[chainName].type].address,
|
|
181
96
|
collateralAddressOrDenom,
|
|
182
97
|
});
|
|
@@ -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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,sBAAsB,EAEtB,SAAS,EAGT,oBAAoB,EACpB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EACL,cAAc,EACd,aAAa,EACb,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAOpB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,OAAO,EACP,6BAA6B,GAI9B;IACC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE7C,IACE,CAAC,6BAA6B;QAC9B,CAAC,MAAM,CAAC,6BAA6B,CAAC,EACtC,CAAC;QACD,IAAI,gBAAgB;YAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,6BAA6B,GAAG,MAAM,oBAAoB,CACxD,WAAW,EACX,8BAA8B,EAC9B,MAAM,CACP,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,GAAG,CACD,yCAAyC,6BAA6B,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,yBAAyB,CACrD,6BAA6B,EAC7B,OAAO,CACR,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACvB,OAAO;QACP,SAAS,EAAE,eAAe;KAC3B,CAAC;IAEF,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAEtC,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE5C,MAAM,2BAA2B,CAAC;QAChC,OAAO;QACP,MAAM;QACN,MAAM,EAAE,uBAAuB;KAChC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE9C,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAE1E,MAAM,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAEtC,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAgB;IACnE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAErC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3B,GAAG,CAAC,wBAAwB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEpB,IAAI,gBAAgB;QAAE,OAAO;IAE7B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;QAChC,OAAO,EAAE,kCAAkC;KAC5C,CAAC,CAAC;IACH,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAoB;IAC/C,OAAO,CAAC,qDAAqD,CAAC,CAAC;IAE/D,MAAM,EACJ,SAAS,EACT,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,GAC5D,GAAG,MAAM,CAAC;IAEX,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK;QAC9B,CAAC,CAAC,IAAI,iBAAiB,CAAC,aAAa,CAAC;QACtC,CAAC,CAAC,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAExC,MAAM,MAAM,GACV,QAAQ,IAAI,WAAW;QACrB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE;QAC3C,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAExD,QAAQ,CAAC,kCAAkC,CAAC,CAAC;IAE7C,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACpC,MAAM,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,EAAE,SAAS,EAAE,OAAO,EAAgB,EACpC,SAAgD;IAEhD,MAAM,cAAc,GAAmB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEtD,+BAA+B;IAC/B,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAC9D,OAAO,CAAC,aAAa,EACrB,SAAS,CACV,CAAC;IAEF,mCAAmC;IACnC,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG;YACf,GAAG,aAAa;YAChB,GAAG,MAAM;SACV,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,wBAAwB,GAC5B,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,SAAS;YACT,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,GAAG,QAAQ;YACX,QAAQ;YACR,cAAc,EACZ,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAA4B,CAAC,CAAC,OAAO;YACrE,wBAAwB;SACzB,CAAC,CAAC;IACL,CAAC;IAED,8CAA8C;IAC9C,wEAAwE;IACxE,oCAAoC;IACpC,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3C,IACE,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;gBACrC,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc;gBAE/C,SAAS;YACX,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAE,oBAAoB,CACzB,YAAY,CAAC,QAAQ,EACrB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,cAAe,CACvB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAAA,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
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
2
1
|
import { HyperlaneCore } from '@hyperlane-xyz/sdk';
|
|
3
2
|
import { addressToBytes32, timeout } from '@hyperlane-xyz/utils';
|
|
4
3
|
import { MINIMUM_TEST_SEND_GAS } from '../consts.js';
|
|
5
|
-
import {
|
|
4
|
+
import { runPreflightChecksForChains } from '../deploy/utils.js';
|
|
6
5
|
import { errorRed, log, logBlue, logGreen } from '../logger.js';
|
|
7
6
|
import { runSingleChainSelectionStep } from '../utils/chains.js';
|
|
8
7
|
export async function sendTestMessage({ context, origin, destination, messageBody, timeoutSec, skipWaitForDelivery, selfRelay, }) {
|
|
@@ -13,12 +12,11 @@ export async function sendTestMessage({ context, origin, destination, messageBod
|
|
|
13
12
|
if (!destination) {
|
|
14
13
|
destination = await runSingleChainSelectionStep(chainMetadata, 'Select the destination chain');
|
|
15
14
|
}
|
|
16
|
-
await
|
|
15
|
+
await runPreflightChecksForChains({
|
|
17
16
|
context,
|
|
18
|
-
origin,
|
|
19
|
-
remotes: [destination],
|
|
20
|
-
minGas: MINIMUM_TEST_SEND_GAS,
|
|
17
|
+
chains: [origin, destination],
|
|
21
18
|
chainsToGasCheck: [origin],
|
|
19
|
+
minGas: MINIMUM_TEST_SEND_GAS,
|
|
22
20
|
});
|
|
23
21
|
await timeout(executeDelivery({
|
|
24
22
|
context,
|
|
@@ -33,32 +31,18 @@ async function executeDelivery({ context, origin, destination, messageBody, skip
|
|
|
33
31
|
const { registry, multiProvider } = context;
|
|
34
32
|
const chainAddresses = await registry.getAddresses();
|
|
35
33
|
const core = HyperlaneCore.fromAddressesMap(chainAddresses, multiProvider);
|
|
36
|
-
const
|
|
37
|
-
let hook = chainAddresses[origin]?.customHook;
|
|
34
|
+
const hook = chainAddresses[origin]?.customHook;
|
|
38
35
|
if (hook) {
|
|
39
36
|
logBlue(`Using custom hook ${hook} for ${origin} -> ${destination}`);
|
|
40
37
|
}
|
|
41
|
-
else {
|
|
42
|
-
hook = await mailbox.defaultHook();
|
|
43
|
-
logBlue(`Using default hook ${hook} for ${origin} -> ${destination}`);
|
|
44
|
-
}
|
|
45
|
-
const destinationDomain = multiProvider.getDomainId(destination);
|
|
46
|
-
let txReceipt;
|
|
47
38
|
try {
|
|
48
39
|
const recipient = chainAddresses[destination].testRecipient;
|
|
49
40
|
if (!recipient) {
|
|
50
41
|
throw new Error(`Unable to find TestRecipient for ${destination}`);
|
|
51
42
|
}
|
|
52
43
|
const formattedRecipient = addressToBytes32(recipient);
|
|
53
|
-
log('Getting gas quote');
|
|
54
|
-
const value = await mailbox['quoteDispatch(uint32,bytes32,bytes,bytes,address)'](destinationDomain, formattedRecipient, messageBody, ethers.utils.hexlify([]), hook);
|
|
55
|
-
log(`Paying for gas with ${value} wei`);
|
|
56
44
|
log('Dispatching message');
|
|
57
|
-
const
|
|
58
|
-
value,
|
|
59
|
-
});
|
|
60
|
-
txReceipt = await multiProvider.handleTx(origin, messageTx);
|
|
61
|
-
const message = core.getDispatchedMessages(txReceipt)[0];
|
|
45
|
+
const { dispatchTx, message } = await core.sendMessage(origin, destination, formattedRecipient, messageBody, hook, undefined);
|
|
62
46
|
logBlue(`Sent message from ${origin} to ${recipient} on ${destination}.`);
|
|
63
47
|
logBlue(`Message ID: ${message.id}`);
|
|
64
48
|
log(`Message: ${JSON.stringify(message)}`);
|
|
@@ -66,18 +50,20 @@ async function executeDelivery({ context, origin, destination, messageBody, skip
|
|
|
66
50
|
log('Attempting self-relay of message');
|
|
67
51
|
await core.relayMessage(message);
|
|
68
52
|
logGreen('Message was self-relayed!');
|
|
69
|
-
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
if (skipWaitForDelivery) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
log('Waiting for message delivery on destination chain...');
|
|
59
|
+
// Max wait 10 minutes
|
|
60
|
+
await core.waitForMessageProcessed(dispatchTx, 10000, 60);
|
|
61
|
+
logGreen('Message was delivered!');
|
|
70
62
|
}
|
|
71
63
|
}
|
|
72
64
|
catch (e) {
|
|
73
65
|
errorRed(`Encountered error sending message from ${origin} to ${destination}`);
|
|
74
66
|
throw e;
|
|
75
67
|
}
|
|
76
|
-
if (skipWaitForDelivery)
|
|
77
|
-
return;
|
|
78
|
-
log('Waiting for message delivery on destination chain...');
|
|
79
|
-
// Max wait 10 minutes
|
|
80
|
-
await core.waitForMessageProcessed(txReceipt, 10000, 60);
|
|
81
|
-
logGreen('Message was delivered!');
|
|
82
68
|
}
|
|
83
69
|
//# sourceMappingURL=message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/send/message.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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":"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,
|
|
@@ -64,7 +63,7 @@ async function executeDelivery({ context, origin, destination, warpCoreConfig, w
|
|
|
64
63
|
sender: senderAddress,
|
|
65
64
|
});
|
|
66
65
|
if (errors) {
|
|
67
|
-
logRed('
|
|
66
|
+
logRed('Error validating transfer', JSON.stringify(errors));
|
|
68
67
|
throw new Error('Error validating transfer');
|
|
69
68
|
}
|
|
70
69
|
const transferTxs = await warpCore.getTransferRemoteTxs({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,qBAAqB,EACrB,YAAY,EAEZ,WAAW,EACX,QAAQ,GAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TxSubmitterBuilder } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import { ProtocolType } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { SubmitterBuilderSettings } from './types.js';
|
|
4
|
+
export declare function getSubmitterBuilder<TProtocol extends ProtocolType>({ submitterMetadata, transformersMetadata, multiProvider, }: SubmitterBuilderSettings): Promise<TxSubmitterBuilder<TProtocol>>;
|
|
5
|
+
//# sourceMappingURL=submit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/submit/submit.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,kBAAkB,EAKnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EACL,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,mBAAmB,CAAC,SAAS,SAAS,YAAY,EAAE,EACxE,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAWnE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EV5GnosisSafeTxSubmitter, EV5ImpersonatedAccountTxSubmitter, EV5InterchainAccountTxTransformer, EV5JsonRpcTxSubmitter, TxSubmitterBuilder, TxSubmitterType, TxTransformerType, } from '@hyperlane-xyz/sdk';
|
|
2
|
+
export async function getSubmitterBuilder({ submitterMetadata, transformersMetadata, multiProvider, }) {
|
|
3
|
+
const submitter = await getSubmitter(multiProvider, submitterMetadata);
|
|
4
|
+
const transformers = await getTransformers(multiProvider, transformersMetadata);
|
|
5
|
+
return new TxSubmitterBuilder(submitter, transformers);
|
|
6
|
+
}
|
|
7
|
+
async function getSubmitter(multiProvider, submitterMetadata) {
|
|
8
|
+
switch (submitterMetadata.type) {
|
|
9
|
+
case TxSubmitterType.JSON_RPC:
|
|
10
|
+
return new EV5JsonRpcTxSubmitter(multiProvider);
|
|
11
|
+
case TxSubmitterType.IMPERSONATED_ACCOUNT:
|
|
12
|
+
return new EV5ImpersonatedAccountTxSubmitter(multiProvider, submitterMetadata.props);
|
|
13
|
+
case TxSubmitterType.GNOSIS_SAFE:
|
|
14
|
+
return new EV5GnosisSafeTxSubmitter(multiProvider, submitterMetadata.props);
|
|
15
|
+
default:
|
|
16
|
+
throw new Error(`Invalid TxSubmitterType: ${submitterMetadata.type}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function getTransformers(multiProvider, metadata) {
|
|
20
|
+
return Promise.all(metadata.map(({ type, props: settings }) => getTransformer(multiProvider, { type, props: settings })));
|
|
21
|
+
}
|
|
22
|
+
async function getTransformer(multiProvider, transformerMetadata) {
|
|
23
|
+
switch (transformerMetadata.type) {
|
|
24
|
+
case TxTransformerType.INTERCHAIN_ACCOUNT:
|
|
25
|
+
return new EV5InterchainAccountTxTransformer(multiProvider, transformerMetadata.props);
|
|
26
|
+
default:
|
|
27
|
+
throw new Error(`Invalid TxTransformerType: ${transformerMetadata.type}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=submit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/submit/submit.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,iCAAiC,EAEjC,iCAAiC,EACjC,qBAAqB,EAErB,kBAAkB,EAElB,eAAe,EAEf,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAS5B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAiC,EACxE,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACY;IACzB,MAAM,SAAS,GAAG,MAAM,YAAY,CAClC,aAAa,EACb,iBAAiB,CAClB,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,eAAe,CACxC,aAAa,EACb,oBAAoB,CACrB,CAAC;IAEF,OAAO,IAAI,kBAAkB,CAAY,SAAS,EAAE,YAAY,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,aAA4B,EAC5B,iBAAoC;IAEpC,QAAQ,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC/B,KAAK,eAAe,CAAC,QAAQ;YAC3B,OAAO,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAClD,KAAK,eAAe,CAAC,oBAAoB;YACvC,OAAO,IAAI,iCAAiC,CAC1C,aAAa,EACb,iBAAiB,CAAC,KAA+C,CAClE,CAAC;QACJ,KAAK,eAAe,CAAC,WAAW;YAC9B,OAAO,IAAI,wBAAwB,CACjC,aAAa,EACb,iBAAiB,CAAC,KAAsC,CACzD,CAAC;QACJ;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,aAA4B,EAC5B,QAA+B;IAE/B,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CACzC,cAAc,CAAY,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CACpE,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,aAA4B,EAC5B,mBAAwC;IAExC,QAAQ,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACjC,KAAK,iBAAiB,CAAC,kBAAkB;YACvC,OAAO,IAAI,iCAAiC,CAC1C,aAAa,EACb,mBAAmB,CAAC,KAAK,CAC1B,CAAC;QACJ;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { EV5GnosisSafeTxSubmitterProps, EV5ImpersonatedAccountTxSubmitterProps, EV5InterchainAccountTxTransformerProps, MultiProvider, TxSubmitterType, TxTransformerType } from '@hyperlane-xyz/sdk';
|
|
2
|
+
export interface SubmitterBuilderSettings {
|
|
3
|
+
submitterMetadata: SubmitterMetadata;
|
|
4
|
+
transformersMetadata: TransformerMetadata[];
|
|
5
|
+
multiProvider: MultiProvider;
|
|
6
|
+
}
|
|
7
|
+
export interface SubmitterMetadata {
|
|
8
|
+
type: TxSubmitterType;
|
|
9
|
+
props: SubmitterProps;
|
|
10
|
+
}
|
|
11
|
+
export interface TransformerMetadata {
|
|
12
|
+
type: TxTransformerType;
|
|
13
|
+
props: TransformerProps;
|
|
14
|
+
}
|
|
15
|
+
type SubmitterProps = EV5ImpersonatedAccountTxSubmitterProps | EV5GnosisSafeTxSubmitterProps;
|
|
16
|
+
type TransformerProps = EV5InterchainAccountTxTransformerProps;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/submit/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,sCAAsC,EACtC,sCAAsC,EACtC,aAAa,EACb,eAAe,EACf,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,aAAa,EAAE,aAAa,CAAC;CAC9B;AACD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;CACvB;AACD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,KAAK,cAAc,GACf,sCAAsC,GACtC,6BAA6B,CAAC;AAClC,KAAK,gBAAgB,GAAG,sCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/submit/types.ts"],"names":[],"mappings":""}
|
|
@@ -15,9 +15,10 @@ async function deployERC20() {
|
|
|
15
15
|
[chain1]: {
|
|
16
16
|
type: TokenType.collateral,
|
|
17
17
|
token: contract.address,
|
|
18
|
-
isNft: false,
|
|
19
18
|
},
|
|
20
|
-
[chain2]: {
|
|
19
|
+
[chain2]: {
|
|
20
|
+
type: TokenType.synthetic,
|
|
21
|
+
},
|
|
21
22
|
};
|
|
22
23
|
console.log('Writing deployment config to', outPath);
|
|
23
24
|
fs.writeFileSync(outPath, JSON.stringify(warpDeploymentConfig, null, 2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployTestErc20.js","sourceRoot":"","sources":["../../../src/tests/deployTestErc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"deployTestErc20.js","sourceRoot":"","sources":["../../../src/tests/deployTestErc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,KAAK,UAAU,WAAW;IACxB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CACnC,MAAM,EACN,MAAM,EACN,uBAAuB,EACvB,EAAE,CACH,CAAC;IACF,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE9D,MAAM,oBAAoB,GAAG;QAC3B,CAAC,MAAM,CAAC,EAAE;YACR,IAAI,EAAE,SAAS,CAAC,UAAU;YAC1B,KAAK,EAAE,QAAQ,CAAC,OAAO;SACxB;QACD,CAAC,MAAM,CAAC,EAAE;YACR,IAAI,EAAE,SAAS,CAAC,SAAS;SAC1B;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;IACrD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,WAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
-
import {
|
|
2
|
+
import { HookType } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { readHooksConfigMap } from '../config/hooks.js';
|
|
4
4
|
describe('readHooksConfigMap', () => {
|
|
5
5
|
it('parses and validates example correctly', () => {
|
|
@@ -28,10 +28,13 @@ describe('readHooksConfigMap', () => {
|
|
|
28
28
|
beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
|
|
29
29
|
owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
|
|
30
30
|
oracleKey: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
|
|
31
|
-
gasOracleType: {
|
|
32
|
-
anvil2: GasOracleContractType.StorageGasOracle,
|
|
33
|
-
},
|
|
34
31
|
overhead: { anvil2: 50000 },
|
|
32
|
+
oracleConfig: {
|
|
33
|
+
anvil2: {
|
|
34
|
+
gasPrice: '100',
|
|
35
|
+
tokenExchangeRate: '100',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
35
38
|
},
|
|
36
39
|
],
|
|
37
40
|
},
|
|
@@ -61,10 +64,13 @@ describe('readHooksConfigMap', () => {
|
|
|
61
64
|
beneficiary: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
|
|
62
65
|
owner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
|
|
63
66
|
oracleKey: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
|
|
64
|
-
gasOracleType: {
|
|
65
|
-
anvil1: GasOracleContractType.StorageGasOracle,
|
|
66
|
-
},
|
|
67
67
|
overhead: { anvil1: 50000 },
|
|
68
|
+
oracleConfig: {
|
|
69
|
+
anvil1: {
|
|
70
|
+
gasPrice: '100',
|
|
71
|
+
tokenExchangeRate: '100',
|
|
72
|
+
},
|
|
73
|
+
},
|
|
68
74
|
},
|
|
69
75
|
],
|
|
70
76
|
},
|
|
@@ -77,7 +83,7 @@ describe('readHooksConfigMap', () => {
|
|
|
77
83
|
it('parsing failure, missing internal key "overhead"', () => {
|
|
78
84
|
expect(() => {
|
|
79
85
|
readHooksConfigMap('src/tests/hooks/safe-parse-fail.yaml');
|
|
80
|
-
}).to.throw(
|
|
86
|
+
}).to.throw();
|
|
81
87
|
});
|
|
82
88
|
});
|
|
83
89
|
//# sourceMappingURL=hooks.test.js.map
|