@hyperlane-xyz/cli 3.10.1-beta0 → 3.11.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/dist/cli.js +13 -5
- package/dist/cli.js.map +1 -1
- package/dist/src/commands/chains.d.ts.map +1 -1
- package/dist/src/commands/chains.js +40 -34
- 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 +41 -82
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/deploy.d.ts +0 -6
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +27 -74
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/hook.d.ts +6 -1
- package/dist/src/commands/hook.d.ts.map +1 -1
- package/dist/src/commands/hook.js +6 -14
- package/dist/src/commands/hook.js.map +1 -1
- package/dist/src/commands/ism.d.ts +6 -1
- package/dist/src/commands/ism.d.ts.map +1 -1
- package/dist/src/commands/ism.js +5 -13
- package/dist/src/commands/ism.js.map +1 -1
- package/dist/src/commands/options.d.ts +6 -33
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +41 -41
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/send.d.ts +7 -1
- package/dist/src/commands/send.d.ts.map +1 -1
- package/dist/src/commands/send.js +23 -58
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/commands/signCommands.d.ts +3 -0
- package/dist/src/commands/signCommands.d.ts.map +1 -0
- package/dist/src/commands/signCommands.js +9 -0
- package/dist/src/commands/signCommands.js.map +1 -0
- package/dist/src/commands/status.d.ts +5 -2
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +6 -15
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/config/chain.d.ts +5 -7
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +16 -39
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/chain.test.js +1 -5
- package/dist/src/config/chain.test.js.map +1 -1
- package/dist/src/config/hooks.d.ts +7 -8
- package/dist/src/config/hooks.d.ts.map +1 -1
- package/dist/src/config/hooks.js +18 -20
- package/dist/src/config/hooks.js.map +1 -1
- package/dist/src/config/ism.d.ts +3 -4
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +3 -5
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/multisig.d.ts +3 -4
- package/dist/src/config/multisig.d.ts.map +1 -1
- package/dist/src/config/multisig.js +5 -7
- package/dist/src/config/multisig.js.map +1 -1
- package/dist/src/config/warp.d.ts +6 -36
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +16 -13
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/context/context.d.ts +14 -0
- package/dist/src/context/context.d.ts.map +1 -0
- package/dist/src/context/context.js +103 -0
- package/dist/src/context/context.js.map +1 -0
- package/dist/src/context/types.d.ts +32 -0
- package/dist/src/context/types.d.ts.map +1 -0
- package/dist/src/context/types.js +2 -0
- package/dist/src/context/types.js.map +1 -0
- package/dist/src/deploy/agent.d.ts +6 -5
- package/dist/src/deploy/agent.d.ts.map +1 -1
- package/dist/src/deploy/agent.js +4 -6
- package/dist/src/deploy/agent.js.map +1 -1
- package/dist/src/deploy/core.d.ts +4 -7
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +61 -73
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/dry-run.d.ts +2 -3
- package/dist/src/deploy/dry-run.d.ts.map +1 -1
- package/dist/src/deploy/dry-run.js.map +1 -1
- package/dist/src/deploy/utils.d.ts +9 -11
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +13 -11
- package/dist/src/deploy/utils.js.map +1 -1
- package/dist/src/deploy/warp.d.ts +3 -7
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +26 -63
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/hook/read.d.ts +4 -5
- package/dist/src/hook/read.d.ts.map +1 -1
- package/dist/src/hook/read.js +8 -12
- package/dist/src/hook/read.js.map +1 -1
- package/dist/src/ism/read.d.ts +4 -5
- package/dist/src/ism/read.d.ts.map +1 -1
- package/dist/src/ism/read.js +8 -12
- package/dist/src/ism/read.js.map +1 -1
- package/dist/src/registry/MergedRegistry.d.ts +35 -0
- package/dist/src/registry/MergedRegistry.d.ts.map +1 -0
- package/dist/src/registry/MergedRegistry.js +83 -0
- package/dist/src/registry/MergedRegistry.js.map +1 -0
- package/dist/src/send/message.d.ts +3 -4
- package/dist/src/send/message.d.ts.map +1 -1
- package/dist/src/send/message.js +14 -19
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.d.ts +3 -6
- package/dist/src/send/transfer.d.ts.map +1 -1
- package/dist/src/send/transfer.js +26 -41
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/status/message.d.ts +3 -4
- package/dist/src/status/message.d.ts.map +1 -1
- package/dist/src/status/message.js +5 -12
- package/dist/src/status/message.js.map +1 -1
- package/dist/src/utils/chains.d.ts +2 -2
- package/dist/src/utils/chains.d.ts.map +1 -1
- package/dist/src/utils/chains.js +13 -14
- package/dist/src/utils/chains.js.map +1 -1
- package/dist/src/utils/files.d.ts +0 -7
- package/dist/src/utils/files.d.ts.map +1 -1
- package/dist/src/utils/files.js +2 -27
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/utils/keys.d.ts +15 -4
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +11 -16
- package/dist/src/utils/keys.js.map +1 -1
- package/dist/src/utils/tokens.d.ts +3 -0
- package/dist/src/utils/tokens.d.ts.map +1 -0
- package/dist/src/utils/tokens.js +14 -0
- package/dist/src/utils/tokens.js.map +1 -0
- package/dist/src/utils/version-check.d.ts.map +1 -1
- package/dist/src/utils/version-check.js +5 -0
- package/dist/src/utils/version-check.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/examples/chain-config.yaml +38 -46
- package/examples/warp-route-deployment.yaml +2 -4
- package/package.json +5 -4
- package/dist/src/config/artifacts.d.ts +0 -16
- package/dist/src/config/artifacts.d.ts.map +0 -1
- package/dist/src/config/artifacts.js +0 -48
- package/dist/src/config/artifacts.js.map +0 -1
- package/dist/src/context.d.ts +0 -64
- package/dist/src/context.d.ts.map +0 -1
- package/dist/src/context.js +0 -113
- package/dist/src/context.js.map +0 -1
- package/dist/src/context.test.d.ts +0 -2
- package/dist/src/context.test.d.ts.map +0 -1
- package/dist/src/context.test.js +0 -21
- package/dist/src/context.test.js.map +0 -1
- package/dist/src/utils/fork.d.ts +0 -37
- package/dist/src/utils/fork.d.ts.map +0 -1
- package/dist/src/utils/fork.js +0 -91
- package/dist/src/utils/fork.js.map +0 -1
- package/examples/anvil-chains.yaml +0 -22
- package/examples/dry-run/anvil-chains.yaml +0 -17
- package/examples/dry-run/ism.yaml +0 -8
- package/examples/dry-run/warp-route-deployment.yaml +0 -4
- package/examples/fork/anvil-chains.yaml +0 -21
- package/examples/fork/ism.yaml +0 -9
- package/examples/fork/warp-route-deployment.yaml +0 -34
package/dist/src/context.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { input } from '@inquirer/prompts';
|
|
2
|
-
import { MultiProvider, chainMetadata, hyperlaneEnvironments, } from '@hyperlane-xyz/sdk';
|
|
3
|
-
import { objFilter, objMap, objMerge } from '@hyperlane-xyz/utils';
|
|
4
|
-
import { runDeploymentArtifactStep } from './config/artifacts.js';
|
|
5
|
-
import { readChainConfigsIfExists } from './config/chain.js';
|
|
6
|
-
import { forkNetworkToMultiProvider } from './deploy/dry-run.js';
|
|
7
|
-
import { runSingleChainSelectionStep } from './utils/chains.js';
|
|
8
|
-
import { readYamlOrJson } from './utils/files.js';
|
|
9
|
-
import { getImpersonatedSigner, getSigner } from './utils/keys.js';
|
|
10
|
-
export const sdkContractAddressesMap = {
|
|
11
|
-
...hyperlaneEnvironments.testnet,
|
|
12
|
-
...hyperlaneEnvironments.mainnet,
|
|
13
|
-
};
|
|
14
|
-
export function getMergedContractAddresses(artifacts, chains) {
|
|
15
|
-
// if chains include non sdkContractAddressesMap chains, don't recover interchainGasPaymaster
|
|
16
|
-
let sdkContractsAddressesToRecover = sdkContractAddressesMap;
|
|
17
|
-
if (chains?.some((chain) => !Object.keys(sdkContractAddressesMap).includes(chain))) {
|
|
18
|
-
sdkContractsAddressesToRecover = objMap(sdkContractAddressesMap, (_, v) => objFilter(v, (key, v) => key !== 'interchainGasPaymaster'));
|
|
19
|
-
}
|
|
20
|
-
return objMerge(sdkContractsAddressesToRecover, artifacts || {});
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Retrieves context for the user-selected command
|
|
24
|
-
* @returns context for the current command
|
|
25
|
-
*/
|
|
26
|
-
export async function getContext({ chainConfigPath, coreConfig, keyConfig, skipConfirmation, warpConfig, }) {
|
|
27
|
-
const customChains = readChainConfigsIfExists(chainConfigPath);
|
|
28
|
-
const signer = await getSigner({
|
|
29
|
-
keyConfig,
|
|
30
|
-
skipConfirmation,
|
|
31
|
-
});
|
|
32
|
-
let coreArtifacts = undefined;
|
|
33
|
-
if (coreConfig) {
|
|
34
|
-
coreArtifacts =
|
|
35
|
-
(await runDeploymentArtifactStep({
|
|
36
|
-
artifactsPath: coreConfig.coreArtifactsPath,
|
|
37
|
-
message: coreConfig.promptMessage ||
|
|
38
|
-
'Do you want to use some core deployment address artifacts? This is required for PI chains (non-core chains).',
|
|
39
|
-
skipConfirmation,
|
|
40
|
-
})) || {};
|
|
41
|
-
}
|
|
42
|
-
let warpCoreConfig = undefined;
|
|
43
|
-
if (warpConfig) {
|
|
44
|
-
let warpConfigPath = warpConfig.warpConfigPath;
|
|
45
|
-
if (!warpConfigPath) {
|
|
46
|
-
// prompt for path to token config
|
|
47
|
-
warpConfigPath = await input({
|
|
48
|
-
message: warpConfig.promptMessage ||
|
|
49
|
-
'Please provide a path to the Warp config',
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
warpCoreConfig = readYamlOrJson(warpConfigPath);
|
|
53
|
-
}
|
|
54
|
-
const multiProvider = getMultiProvider(customChains, signer);
|
|
55
|
-
return {
|
|
56
|
-
customChains,
|
|
57
|
-
signer,
|
|
58
|
-
multiProvider,
|
|
59
|
-
coreArtifacts,
|
|
60
|
-
warpCoreConfig,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Retrieves dry-run context for the user-selected command
|
|
65
|
-
* @returns dry-run context for the current command
|
|
66
|
-
*/
|
|
67
|
-
export async function getDryRunContext({ chainConfigPath, chains, coreConfig, keyConfig, skipConfirmation, }) {
|
|
68
|
-
const customChains = readChainConfigsIfExists(chainConfigPath);
|
|
69
|
-
let coreArtifacts = undefined;
|
|
70
|
-
if (coreConfig) {
|
|
71
|
-
coreArtifacts =
|
|
72
|
-
(await runDeploymentArtifactStep({
|
|
73
|
-
artifactsPath: coreConfig.coreArtifactsPath,
|
|
74
|
-
message: coreConfig.promptMessage ||
|
|
75
|
-
'Do you want to use some core deployment address artifacts? This is required for PI chains (non-core chains).',
|
|
76
|
-
skipConfirmation,
|
|
77
|
-
})) || {};
|
|
78
|
-
}
|
|
79
|
-
const multiProvider = getMultiProvider(customChains);
|
|
80
|
-
if (!chains?.length) {
|
|
81
|
-
if (skipConfirmation)
|
|
82
|
-
throw new Error('No chains provided');
|
|
83
|
-
chains = [
|
|
84
|
-
await runSingleChainSelectionStep(customChains, 'Select chain to dry-run against:'),
|
|
85
|
-
];
|
|
86
|
-
}
|
|
87
|
-
await forkNetworkToMultiProvider(multiProvider, chains[0]);
|
|
88
|
-
const impersonatedSigner = await getImpersonatedSigner({
|
|
89
|
-
keyConfig,
|
|
90
|
-
skipConfirmation,
|
|
91
|
-
});
|
|
92
|
-
if (impersonatedSigner)
|
|
93
|
-
multiProvider.setSharedSigner(impersonatedSigner);
|
|
94
|
-
return {
|
|
95
|
-
chains,
|
|
96
|
-
signer: impersonatedSigner,
|
|
97
|
-
multiProvider,
|
|
98
|
-
coreArtifacts,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Retrieves a new MultiProvider based on all known chain metadata & custom user chains
|
|
103
|
-
* @param customChains Custom chains specified by the user
|
|
104
|
-
* @returns a new MultiProvider
|
|
105
|
-
*/
|
|
106
|
-
export function getMultiProvider(customChains, signer) {
|
|
107
|
-
const chainConfigs = { ...chainMetadata, ...customChains };
|
|
108
|
-
const multiProvider = new MultiProvider(chainConfigs);
|
|
109
|
-
if (signer)
|
|
110
|
-
multiProvider.setSharedSigner(signer);
|
|
111
|
-
return multiProvider;
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=context.js.map
|
package/dist/src/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.test.d.ts","sourceRoot":"","sources":["../../src/context.test.ts"],"names":[],"mappings":""}
|
package/dist/src/context.test.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { expect } from 'chai';
|
|
2
|
-
import { ethers } from 'ethers';
|
|
3
|
-
import { getContext } from './context.js';
|
|
4
|
-
describe('context', () => {
|
|
5
|
-
it('Gets minimal read-only context correctly', async () => {
|
|
6
|
-
const context = await getContext({ chainConfigPath: './fakePath' });
|
|
7
|
-
expect(!!context.multiProvider).to.be.true;
|
|
8
|
-
expect(context.customChains).to.eql({});
|
|
9
|
-
});
|
|
10
|
-
it('Handles conditional type correctly', async () => {
|
|
11
|
-
const randomWallet = ethers.Wallet.createRandom();
|
|
12
|
-
const context = await getContext({
|
|
13
|
-
chainConfigPath: './fakePath',
|
|
14
|
-
keyConfig: { key: randomWallet.privateKey },
|
|
15
|
-
});
|
|
16
|
-
expect(!!context.multiProvider).to.be.true;
|
|
17
|
-
expect(context.customChains).to.eql({});
|
|
18
|
-
expect(await context.signer.getAddress()).to.eql(randomWallet.address);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
//# sourceMappingURL=context.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.test.js","sourceRoot":"","sources":["../../src/context.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;YAC/B,eAAe,EAAE,YAAY;YAC7B,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,UAAU,EAAE;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/src/utils/fork.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { providers } from 'ethers';
|
|
2
|
-
import { ChainName, MultiProvider } from '@hyperlane-xyz/sdk';
|
|
3
|
-
import { Address } from '@hyperlane-xyz/utils';
|
|
4
|
-
export declare enum ANVIL_RPC_METHODS {
|
|
5
|
-
RESET = "anvil_reset",
|
|
6
|
-
IMPERSONATE_ACCOUNT = "anvil_impersonateAccount",
|
|
7
|
-
STOP_IMPERSONATING_ACCOUNT = "anvil_stopImpersonatingAccount",
|
|
8
|
-
NODE_INFO = "anvil_nodeInfo"
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Resets the local node to it's original start (anvil [31337] at block zero).
|
|
12
|
-
*/
|
|
13
|
-
export declare const resetFork: () => Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* Forks a chain onto the local node at the latest block of the forked network.
|
|
16
|
-
* @param multiProvider the multiProvider with which to fork the network
|
|
17
|
-
* @param chain the network to fork
|
|
18
|
-
*/
|
|
19
|
-
export declare const setFork: (multiProvider: MultiProvider, chain: ChainName | number) => Promise<void>;
|
|
20
|
-
/**
|
|
21
|
-
* Impersonates an EOA for a provided address.
|
|
22
|
-
* @param address the address to impersonate
|
|
23
|
-
* @returns the impersonated signer
|
|
24
|
-
*/
|
|
25
|
-
export declare const impersonateAccount: (address: Address) => Promise<providers.JsonRpcSigner>;
|
|
26
|
-
/**
|
|
27
|
-
* Stops account impersonation.
|
|
28
|
-
* @param address the address to stop impersonating
|
|
29
|
-
*/
|
|
30
|
-
export declare const stopImpersonatingAccount: (address: Address) => Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* Retrieves a local provider. Defaults to DEFAULT_ANVIL_ENDPOINT.
|
|
33
|
-
* @param urlOverride custom URL to overried the default endpoint
|
|
34
|
-
* @returns a local JSON-RPC provider
|
|
35
|
-
*/
|
|
36
|
-
export declare const getLocalProvider: (urlOverride?: string) => providers.JsonRpcProvider;
|
|
37
|
-
//# sourceMappingURL=fork.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/utils/fork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAqB,MAAM,sBAAsB,CAAC;AAUlE,oBAAY,iBAAiB;IAC3B,KAAK,gBAAgB;IACrB,mBAAmB,6BAA6B;IAChD,0BAA0B,mCAAmC;IAC7D,SAAS,mBAAmB;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,qBAarB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,kBACH,aAAa,SACrB,SAAS,GAAG,MAAM,kBAkB1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,YACpB,OAAO,KACf,QAAQ,UAAU,aAAa,CASjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,YAAmB,OAAO,kBAgB9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,iBACb,MAAM,KACnB,UAAU,eAiBZ,CAAC"}
|
package/dist/src/utils/fork.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { providers } from 'ethers';
|
|
2
|
-
import { isValidAddressEvm } from '@hyperlane-xyz/utils';
|
|
3
|
-
import { logGray, logGreen } from '../logger.js';
|
|
4
|
-
import { warnYellow } from '../logger.js';
|
|
5
|
-
import { ENV } from './env.js';
|
|
6
|
-
const ENDPOINT_PREFIX = 'http';
|
|
7
|
-
const DEFAULT_ANVIL_ENDPOINT = 'http://127.0.0.1:8545';
|
|
8
|
-
export var ANVIL_RPC_METHODS;
|
|
9
|
-
(function (ANVIL_RPC_METHODS) {
|
|
10
|
-
ANVIL_RPC_METHODS["RESET"] = "anvil_reset";
|
|
11
|
-
ANVIL_RPC_METHODS["IMPERSONATE_ACCOUNT"] = "anvil_impersonateAccount";
|
|
12
|
-
ANVIL_RPC_METHODS["STOP_IMPERSONATING_ACCOUNT"] = "anvil_stopImpersonatingAccount";
|
|
13
|
-
ANVIL_RPC_METHODS["NODE_INFO"] = "anvil_nodeInfo";
|
|
14
|
-
})(ANVIL_RPC_METHODS || (ANVIL_RPC_METHODS = {}));
|
|
15
|
-
/**
|
|
16
|
-
* Resets the local node to it's original start (anvil [31337] at block zero).
|
|
17
|
-
*/
|
|
18
|
-
export const resetFork = async () => {
|
|
19
|
-
logGray(`Resetting forked network...`);
|
|
20
|
-
const provider = getLocalProvider();
|
|
21
|
-
await provider.send(ANVIL_RPC_METHODS.RESET, [
|
|
22
|
-
{
|
|
23
|
-
forking: {
|
|
24
|
-
jsonRpcUrl: DEFAULT_ANVIL_ENDPOINT,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
]);
|
|
28
|
-
logGreen(`Successfully reset forked network ✅`);
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Forks a chain onto the local node at the latest block of the forked network.
|
|
32
|
-
* @param multiProvider the multiProvider with which to fork the network
|
|
33
|
-
* @param chain the network to fork
|
|
34
|
-
*/
|
|
35
|
-
export const setFork = async (multiProvider, chain) => {
|
|
36
|
-
logGray(`Forking ${chain} for dry-run...`);
|
|
37
|
-
const provider = getLocalProvider();
|
|
38
|
-
const currentChainMetadata = multiProvider.metadata[chain];
|
|
39
|
-
await provider.send(ANVIL_RPC_METHODS.RESET, [
|
|
40
|
-
{
|
|
41
|
-
forking: {
|
|
42
|
-
jsonRpcUrl: currentChainMetadata.rpcUrls[0].http,
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
]);
|
|
46
|
-
multiProvider.setProvider(chain, provider);
|
|
47
|
-
logGreen(`Successfully forked ${chain} for dry-run ✅`);
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Impersonates an EOA for a provided address.
|
|
51
|
-
* @param address the address to impersonate
|
|
52
|
-
* @returns the impersonated signer
|
|
53
|
-
*/
|
|
54
|
-
export const impersonateAccount = async (address) => {
|
|
55
|
-
logGray(`Impersonating account (${address})...`);
|
|
56
|
-
const provider = getLocalProvider();
|
|
57
|
-
await provider.send(ANVIL_RPC_METHODS.IMPERSONATE_ACCOUNT, [address]);
|
|
58
|
-
logGreen(`Successfully impersonated account (${address}) ✅`);
|
|
59
|
-
return provider.getSigner(address);
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Stops account impersonation.
|
|
63
|
-
* @param address the address to stop impersonating
|
|
64
|
-
*/
|
|
65
|
-
export const stopImpersonatingAccount = async (address) => {
|
|
66
|
-
logGray(`Stopping account impersonation for address (${address})...`);
|
|
67
|
-
if (isValidAddressEvm(address))
|
|
68
|
-
throw new Error(`Cannot stop account impersonation: invalid address format: ${address}`);
|
|
69
|
-
const provider = getLocalProvider();
|
|
70
|
-
await provider.send(ANVIL_RPC_METHODS.STOP_IMPERSONATING_ACCOUNT, [
|
|
71
|
-
address.substring(2),
|
|
72
|
-
]);
|
|
73
|
-
logGreen(`Successfully stopped account impersonation for address (${address}) ✅`);
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Retrieves a local provider. Defaults to DEFAULT_ANVIL_ENDPOINT.
|
|
77
|
-
* @param urlOverride custom URL to overried the default endpoint
|
|
78
|
-
* @returns a local JSON-RPC provider
|
|
79
|
-
*/
|
|
80
|
-
export const getLocalProvider = (urlOverride) => {
|
|
81
|
-
let envUrl;
|
|
82
|
-
if (ENV.ANVIL_IP_ADDR && ENV.ANVIL_PORT)
|
|
83
|
-
envUrl = `${ENDPOINT_PREFIX}${ENV.ANVIL_IP_ADDR}:${ENV.ANVIL_PORT}`;
|
|
84
|
-
if (urlOverride && !urlOverride.startsWith(ENDPOINT_PREFIX)) {
|
|
85
|
-
warnYellow(`⚠️ Provided URL override (${urlOverride}) does not begin with ${ENDPOINT_PREFIX}. Defaulting to ${envUrl ?? DEFAULT_ANVIL_ENDPOINT}`);
|
|
86
|
-
urlOverride = undefined;
|
|
87
|
-
}
|
|
88
|
-
const url = urlOverride ?? envUrl ?? DEFAULT_ANVIL_ENDPOINT;
|
|
89
|
-
return new providers.JsonRpcProvider(url);
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=fork.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/utils/fork.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Configs for describing chain metadata for use in Hyperlane deployments or apps
|
|
2
|
-
# Consists of a map of chain names to metadata
|
|
3
|
-
# Schema here: https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/sdk/src/metadata/chainMetadataTypes.ts
|
|
4
|
-
---
|
|
5
|
-
anvil1:
|
|
6
|
-
chainId: 31337
|
|
7
|
-
domainId: 31337
|
|
8
|
-
name: anvil1
|
|
9
|
-
protocol: ethereum
|
|
10
|
-
rpcUrls:
|
|
11
|
-
- http: http://127.0.0.1:8545
|
|
12
|
-
nativeToken:
|
|
13
|
-
name: Ether
|
|
14
|
-
symbol: ETH
|
|
15
|
-
decimals: 18
|
|
16
|
-
anvil2:
|
|
17
|
-
chainId: 31338
|
|
18
|
-
domainId: 31338
|
|
19
|
-
name: anvil2
|
|
20
|
-
protocol: ethereum
|
|
21
|
-
rpcUrls:
|
|
22
|
-
- http: http://127.0.0.1:8555
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
anvil:
|
|
2
|
-
chainId: 31337
|
|
3
|
-
domainId: 31337
|
|
4
|
-
name: anvil
|
|
5
|
-
protocol: ethereum
|
|
6
|
-
rpcUrls:
|
|
7
|
-
- http: http://127.0.0.1:8545
|
|
8
|
-
nativeToken:
|
|
9
|
-
name: Ether
|
|
10
|
-
symbol: ETH
|
|
11
|
-
decimals: 18
|
|
12
|
-
alfajores:
|
|
13
|
-
rpcUrls:
|
|
14
|
-
- http: https://alfajores-forno.celo-testnet.org
|
|
15
|
-
blocks:
|
|
16
|
-
confirmations: 1
|
|
17
|
-
estimateBlockTime: 1
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Configs for describing chain metadata for use in Hyperlane deployments or apps
|
|
2
|
-
# Consists of a map of chain names to metadata
|
|
3
|
-
# Schema here: https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/sdk/src/metadata/chainMetadataTypes.ts
|
|
4
|
-
---
|
|
5
|
-
anvil:
|
|
6
|
-
chainId: 31337
|
|
7
|
-
domainId: 31337
|
|
8
|
-
name: anvil
|
|
9
|
-
protocol: ethereum
|
|
10
|
-
rpcUrls:
|
|
11
|
-
- http: http://127.0.0.1:8545
|
|
12
|
-
nativeToken:
|
|
13
|
-
name: Ether
|
|
14
|
-
symbol: ETH
|
|
15
|
-
decimals: 18
|
|
16
|
-
ethereum:
|
|
17
|
-
rpcUrls:
|
|
18
|
-
- http: http://127.0.0.1:8555
|
|
19
|
-
blocks:
|
|
20
|
-
confirmations: 1
|
|
21
|
-
estimateBlockTime: 1
|
package/examples/fork/ism.yaml
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# A config for a multisig Interchain Security Module (ISM)
|
|
2
|
-
# Schema: https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/typescript/sdk/src/ism/types.ts
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
anvil:
|
|
7
|
-
threshold: 1 # Number: Signatures required to approve a message
|
|
8
|
-
validators: # Array: List of validator addresses
|
|
9
|
-
- '0xa0ee7a142d267c1f36714e4a8f75612f20a79720'
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# A config for a Warp Route deployment
|
|
2
|
-
# Typically used with the 'hyperlane deploy warp' command
|
|
3
|
-
#
|
|
4
|
-
# Token Types:
|
|
5
|
-
# native
|
|
6
|
-
# collateral
|
|
7
|
-
# synthetic
|
|
8
|
-
# collateralUri
|
|
9
|
-
# syntheticUri
|
|
10
|
-
# fastCollateral
|
|
11
|
-
# fastSynthetic
|
|
12
|
-
---
|
|
13
|
-
anvil:
|
|
14
|
-
type: native
|
|
15
|
-
# token: "0x123" # Collateral/vault address. Required for collateral types
|
|
16
|
-
# owner: "0x123" # Optional owner address for synthetic token
|
|
17
|
-
# mailbox: "0x123" # mailbox address route
|
|
18
|
-
# interchainGasPaymaster: "0x123" # Optional interchainGasPaymaster address
|
|
19
|
-
# isNft: true # If the token is an NFT (ERC721), set to true
|
|
20
|
-
# You can optionally set the token metadata
|
|
21
|
-
# name: "MyCollateralToken"
|
|
22
|
-
# symbol: "MCT"
|
|
23
|
-
# totalSupply: 10000000
|
|
24
|
-
|
|
25
|
-
ethereum:
|
|
26
|
-
type: synthetic
|
|
27
|
-
# token: "0x123" # Collateral/vault address. Required for collateral types
|
|
28
|
-
# owner: "0x123" # Optional owner address for synthetic token
|
|
29
|
-
# mailbox: "0x123" # mailbox address route
|
|
30
|
-
# interchainGasPaymaster: "0x123" # Optional interchainGasPaymaster address
|
|
31
|
-
# You can optionally set the token metadata
|
|
32
|
-
# name: "MySyntheticToken"
|
|
33
|
-
# symbol: "MST"
|
|
34
|
-
# totalSupply: 10000000
|