@hyperlane-xyz/cli 3.10.0 → 3.10.1-beta0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/src/commands/deploy.d.ts +6 -0
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +66 -54
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/hook.d.ts +7 -0
- package/dist/src/commands/hook.d.ts.map +1 -0
- package/dist/src/commands/hook.js +42 -0
- package/dist/src/commands/hook.js.map +1 -0
- package/dist/src/commands/ism.d.ts +7 -0
- package/dist/src/commands/ism.d.ts.map +1 -0
- package/dist/src/commands/ism.js +44 -0
- package/dist/src/commands/ism.js.map +1 -0
- package/dist/src/commands/options.d.ts +37 -2
- package/dist/src/commands/options.d.ts.map +1 -1
- package/dist/src/commands/options.js +45 -2
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/send.d.ts +8 -1
- package/dist/src/commands/send.d.ts.map +1 -1
- package/dist/src/commands/send.js +14 -4
- package/dist/src/commands/send.js.map +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +8 -7
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/config/artifacts.d.ts +6 -1
- package/dist/src/config/artifacts.d.ts.map +1 -1
- package/dist/src/config/artifacts.js +7 -1
- package/dist/src/config/artifacts.js.map +1 -1
- package/dist/src/config/ism.d.ts +18 -0
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +22 -7
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/warp.d.ts +30 -180
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +19 -56
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/context.d.ts +22 -5
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +57 -18
- package/dist/src/context.js.map +1 -1
- package/dist/src/deploy/core.d.ts +6 -2
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +37 -16
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/dry-run.d.ts +20 -0
- package/dist/src/deploy/dry-run.d.ts.map +1 -0
- package/dist/src/deploy/dry-run.js +45 -0
- package/dist/src/deploy/dry-run.js.map +1 -0
- package/dist/src/deploy/utils.d.ts +6 -1
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +40 -6
- package/dist/src/deploy/utils.js.map +1 -1
- package/dist/src/deploy/warp.d.ts +3 -2
- package/dist/src/deploy/warp.d.ts.map +1 -1
- package/dist/src/deploy/warp.js +94 -89
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/hook/read.d.ts +14 -0
- package/dist/src/hook/read.d.ts.map +1 -0
- package/dist/src/hook/read.js +29 -0
- package/dist/src/hook/read.js.map +1 -0
- package/dist/src/ism/read.d.ts +14 -0
- package/dist/src/ism/read.d.ts.map +1 -0
- package/dist/src/ism/read.js +29 -0
- package/dist/src/ism/read.js.map +1 -0
- package/dist/src/logger.d.ts +1 -0
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +1 -0
- package/dist/src/logger.js.map +1 -1
- package/dist/src/send/message.d.ts +3 -2
- package/dist/src/send/message.d.ts.map +1 -1
- package/dist/src/send/message.js +8 -2
- package/dist/src/send/message.js.map +1 -1
- package/dist/src/send/transfer.d.ts +3 -2
- package/dist/src/send/transfer.d.ts.map +1 -1
- package/dist/src/send/transfer.js +9 -3
- package/dist/src/send/transfer.js.map +1 -1
- package/dist/src/status/message.d.ts +4 -1
- package/dist/src/status/message.d.ts.map +1 -1
- package/dist/src/status/message.js +14 -3
- package/dist/src/status/message.js.map +1 -1
- package/dist/src/tests/deployTestErc20.js +4 -4
- package/dist/src/tests/deployTestErc20.js.map +1 -1
- package/dist/src/utils/env.d.ts +2 -0
- package/dist/src/utils/env.d.ts.map +1 -1
- package/dist/src/utils/env.js +2 -0
- package/dist/src/utils/env.js.map +1 -1
- package/dist/src/utils/files.d.ts +12 -4
- package/dist/src/utils/files.d.ts.map +1 -1
- package/dist/src/utils/files.js +35 -11
- package/dist/src/utils/files.js.map +1 -1
- package/dist/src/utils/fork.d.ts +37 -0
- package/dist/src/utils/fork.d.ts.map +1 -0
- package/dist/src/utils/fork.js +91 -0
- package/dist/src/utils/fork.js.map +1 -0
- package/dist/src/utils/keys.d.ts +16 -2
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +67 -6
- package/dist/src/utils/keys.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/dry-run/anvil-chains.yaml +17 -0
- package/examples/dry-run/ism.yaml +8 -0
- package/examples/dry-run/warp-route-deployment.yaml +4 -0
- package/examples/fork/warp-route-deployment.yaml +17 -9
- package/examples/warp-route-deployment.yaml +17 -10
- package/package.json +9 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAGL,aAAa,EACb,qBAAqB,EAErB,YAAY,EACZ,WAAW,EACX,QAAQ,GAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,WAAW,EACX,aAAa,EACb,GAAG,EACH,SAAS,EACT,UAAU,EACV,mBAAmB,
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../src/send/transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { ChainName } from '@hyperlane-xyz/sdk';
|
|
2
|
-
export declare function checkMessageStatus({ chainConfigPath, coreArtifactsPath, messageId, destination, }: {
|
|
2
|
+
export declare function checkMessageStatus({ chainConfigPath, coreArtifactsPath, messageId, destination, origin, selfRelay, key, }: {
|
|
3
3
|
chainConfigPath: string;
|
|
4
4
|
coreArtifactsPath?: string;
|
|
5
5
|
messageId?: string;
|
|
6
6
|
destination?: ChainName;
|
|
7
|
+
origin?: ChainName;
|
|
8
|
+
selfRelay?: boolean;
|
|
9
|
+
key?: string;
|
|
7
10
|
}): Promise<void>;
|
|
8
11
|
//# sourceMappingURL=message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/status/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAM9D,wBAAsB,kBAAkB,CAAC,EACvC,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/status/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAM9D,wBAAsB,kBAAkB,CAAC,EACvC,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,GAAG,GACJ,EAAE;IACD,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,iBAkDA"}
|
|
@@ -3,10 +3,12 @@ import { HyperlaneCore } from '@hyperlane-xyz/sdk';
|
|
|
3
3
|
import { getContext, getMergedContractAddresses } from '../context.js';
|
|
4
4
|
import { log, logBlue, logGreen } from '../logger.js';
|
|
5
5
|
import { runSingleChainSelectionStep } from '../utils/chains.js';
|
|
6
|
-
export async function checkMessageStatus({ chainConfigPath, coreArtifactsPath, messageId, destination, }) {
|
|
6
|
+
export async function checkMessageStatus({ chainConfigPath, coreArtifactsPath, messageId, destination, origin, selfRelay, key, }) {
|
|
7
|
+
const keyConfig = selfRelay ? { key } : undefined;
|
|
7
8
|
const { multiProvider, customChains, coreArtifacts } = await getContext({
|
|
8
9
|
chainConfigPath,
|
|
9
10
|
coreConfig: { coreArtifactsPath },
|
|
11
|
+
keyConfig,
|
|
10
12
|
});
|
|
11
13
|
if (!destination) {
|
|
12
14
|
destination = await runSingleChainSelectionStep(customChains, 'Select the destination chain');
|
|
@@ -23,9 +25,18 @@ export async function checkMessageStatus({ chainConfigPath, coreArtifactsPath, m
|
|
|
23
25
|
const delivered = await mailbox.delivered(messageId);
|
|
24
26
|
if (delivered) {
|
|
25
27
|
logGreen(`Message ${messageId} was delivered`);
|
|
28
|
+
return;
|
|
26
29
|
}
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
logBlue(`Message ${messageId} was not yet delivered`);
|
|
31
|
+
if (selfRelay) {
|
|
32
|
+
// TODO: implement option for tx receipt input
|
|
33
|
+
if (!origin) {
|
|
34
|
+
origin = await runSingleChainSelectionStep(customChains, 'Select the origin chain');
|
|
35
|
+
}
|
|
36
|
+
const receipt = await core.getDispatchTx(origin, messageId);
|
|
37
|
+
const messages = core.getDispatchedMessages(receipt);
|
|
38
|
+
await core.relayMessage(messages[0]);
|
|
39
|
+
logGreen(`Message ${messageId} was self-relayed!`);
|
|
29
40
|
}
|
|
30
41
|
}
|
|
31
42
|
//# sourceMappingURL=message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/status/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/status/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAa,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,GAAG,GASJ;IACC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAElD,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,UAAU,CAAC;QACtE,eAAe;QACf,UAAU,EAAE,EAAE,iBAAiB,EAAE;QACjC,SAAS;KACV,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,2BAA2B,CAC7C,YAAY,EACZ,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,MAAM,KAAK,CAAC;YACtB,OAAO,EAAE,+BAA+B;SACzC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,aAAa,CAAC,gBAAgB,CACzC,mBAAmB,EACnB,aAAa,CACd,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;IACvD,GAAG,CAAC,8BAA8B,SAAS,OAAO,WAAW,EAAE,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,WAAW,SAAS,gBAAgB,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,WAAW,SAAS,wBAAwB,CAAC,CAAC;IAEtD,IAAI,SAAS,EAAE,CAAC;QACd,8CAA8C;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,2BAA2B,CACxC,YAAY,EACZ,yBAAyB,CAC1B,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,QAAQ,CAAC,WAAW,SAAS,oBAAoB,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -12,12 +12,12 @@ async function deployERC20() {
|
|
|
12
12
|
await contract.deployed();
|
|
13
13
|
console.log('Test ERC20 contract deployed', contract.address);
|
|
14
14
|
const warpDeploymentConfig = {
|
|
15
|
-
|
|
16
|
-
chainName: chain1,
|
|
15
|
+
[chain1]: {
|
|
17
16
|
type: TokenType.collateral,
|
|
18
|
-
|
|
17
|
+
token: contract.address,
|
|
18
|
+
isNft: false,
|
|
19
19
|
},
|
|
20
|
-
|
|
20
|
+
[chain2]: { type: TokenType.synthetic },
|
|
21
21
|
};
|
|
22
22
|
console.log('Writing deployment config to', outPath);
|
|
23
23
|
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,EAAyB,MAAM,oBAAoB,CAAC;AAEtE,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,GAA0B;QAClD,CAAC,MAAM,CAAC,EAAE;YACR,IAAI,EAAE,SAAS,CAAC,UAAU;YAC1B,KAAK,EAAE,QAAQ,CAAC,OAAO;YACvB,KAAK,EAAE,KAAK;SACb;QACD,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE;KACxC,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"}
|
package/dist/src/utils/env.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,GAAG;;;;CAA0C,CAAC"}
|
package/dist/src/utils/env.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import z from 'zod';
|
|
2
2
|
const envScheme = z.object({
|
|
3
3
|
HYP_KEY: z.string().optional(),
|
|
4
|
+
ANVIL_IP_ADDR: z.string().optional(),
|
|
5
|
+
ANVIL_PORT: z.number().optional(),
|
|
4
6
|
});
|
|
5
7
|
const parsedEnv = envScheme.safeParse(process.env);
|
|
6
8
|
export const ENV = parsedEnv.success ? parsedEnv.data : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export type FileFormat = 'yaml' | 'json';
|
|
2
|
+
export type ArtifactsFile = {
|
|
3
|
+
filename: string;
|
|
4
|
+
description: string;
|
|
5
|
+
};
|
|
2
6
|
export declare function isFile(filepath: string): boolean;
|
|
3
7
|
export declare function readFileAtPath(filepath: string): string;
|
|
4
8
|
export declare function writeFileAtPath(filepath: string, value: string): void;
|
|
@@ -13,9 +17,13 @@ export declare function mergeYaml<T extends Record<string, any>>(filepath: strin
|
|
|
13
17
|
export declare function readYamlOrJson<T>(filepath: string, format?: FileFormat): T;
|
|
14
18
|
export declare function writeYamlOrJson(filepath: string, obj: Record<string, any>, format?: FileFormat): any;
|
|
15
19
|
export declare function mergeYamlOrJson(filepath: string, obj: Record<string, any>, format?: FileFormat): any;
|
|
16
|
-
export declare function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
export declare function resolveFileFormat(filepath?: string, format?: FileFormat): FileFormat | undefined;
|
|
21
|
+
export declare function prepNewArtifactsFiles(outPath: string, files: Array<ArtifactsFile>): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Retrieves artifacts file metadata for the current command.
|
|
24
|
+
* @param dryRun whether or not the current command is being dry-run
|
|
25
|
+
* @returns the artifacts files
|
|
26
|
+
*/
|
|
27
|
+
export declare function getArtifactsFiles(defaultFiles: ArtifactsFile[], dryRun?: string): Array<ArtifactsFile>;
|
|
20
28
|
export declare function runFileSelectionStep(folderPath: string, description: string, pattern?: string): Promise<string>;
|
|
21
29
|
//# sourceMappingURL=files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,WAQtC;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAK9C;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAM9D;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAMzD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAM/D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,CAAC,CAE1E;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,UAAU,OAQpB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,UAAU,OAQpB;
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,WAQtC;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAK9C;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAM9D;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAMzD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAE/C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAM/D;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,QAQP;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,CAAC,CAE1E;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,UAAU,OAQpB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,UAAU,OAQpB;AAoBD,wBAAgB,iBAAiB,CAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,UAAU,GAClB,UAAU,GAAG,SAAS,CAmBxB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,YAY5B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,aAAa,EAAE,EAC7B,MAAM,GAAE,MAAW,GAClB,KAAK,CAAC,aAAa,CAAC,CAMtB;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,mBA6BjB"}
|
package/dist/src/utils/files.js
CHANGED
|
@@ -77,26 +77,38 @@ export function mergeYaml(filepath, obj) {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
export function readYamlOrJson(filepath, format) {
|
|
80
|
-
return
|
|
80
|
+
return resolveYamlOrJsonFn(filepath, readJson, readYaml, format);
|
|
81
81
|
}
|
|
82
82
|
export function writeYamlOrJson(filepath, obj, format) {
|
|
83
|
-
return
|
|
83
|
+
return resolveYamlOrJsonFn(filepath, (f) => writeJson(f, obj), (f) => writeYaml(f, obj), format);
|
|
84
84
|
}
|
|
85
85
|
export function mergeYamlOrJson(filepath, obj, format) {
|
|
86
|
-
return
|
|
86
|
+
return resolveYamlOrJsonFn(filepath, (f) => mergeJson(f, obj), (f) => mergeYaml(f, obj), format);
|
|
87
87
|
}
|
|
88
|
-
function
|
|
89
|
-
|
|
88
|
+
function resolveYamlOrJsonFn(filepath, jsonFn, yamlFn, format) {
|
|
89
|
+
const fileFormat = resolveFileFormat(filepath, format);
|
|
90
|
+
if (!fileFormat) {
|
|
91
|
+
throw new Error(`Invalid file format for ${filepath}`);
|
|
92
|
+
}
|
|
93
|
+
if (fileFormat === 'json') {
|
|
90
94
|
return jsonFn(filepath);
|
|
91
95
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
+
return yamlFn(filepath);
|
|
97
|
+
}
|
|
98
|
+
export function resolveFileFormat(filepath, format) {
|
|
99
|
+
// early out if filepath is undefined
|
|
100
|
+
if (!filepath) {
|
|
101
|
+
return format;
|
|
96
102
|
}
|
|
97
|
-
|
|
98
|
-
|
|
103
|
+
if (format === 'json' || filepath?.endsWith('.json')) {
|
|
104
|
+
return 'json';
|
|
105
|
+
}
|
|
106
|
+
if (format === 'yaml' ||
|
|
107
|
+
filepath?.endsWith('.yaml') ||
|
|
108
|
+
filepath?.endsWith('.yml')) {
|
|
109
|
+
return 'yaml';
|
|
99
110
|
}
|
|
111
|
+
return undefined;
|
|
100
112
|
}
|
|
101
113
|
export function prepNewArtifactsFiles(outPath, files) {
|
|
102
114
|
const timestamp = getTimestampForFilename();
|
|
@@ -110,6 +122,18 @@ export function prepNewArtifactsFiles(outPath, files) {
|
|
|
110
122
|
}
|
|
111
123
|
return newPaths;
|
|
112
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Retrieves artifacts file metadata for the current command.
|
|
127
|
+
* @param dryRun whether or not the current command is being dry-run
|
|
128
|
+
* @returns the artifacts files
|
|
129
|
+
*/
|
|
130
|
+
export function getArtifactsFiles(defaultFiles, dryRun = '') {
|
|
131
|
+
if (dryRun)
|
|
132
|
+
defaultFiles.map((defaultFile) => {
|
|
133
|
+
defaultFile.filename = `dry-run_${defaultFile.filename}`;
|
|
134
|
+
});
|
|
135
|
+
return defaultFiles;
|
|
136
|
+
}
|
|
113
137
|
export async function runFileSelectionStep(folderPath, description, pattern) {
|
|
114
138
|
const noFilesErrorMessage = `No "${description}" found in ${folderPath}. Please confirm the path for "${description}". By default, the CLI writes to folders relative to where its run.`;
|
|
115
139
|
if (!fs.existsSync(folderPath))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/utils/fork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAW,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAEvD,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,qEAAgD,CAAA;IAChD,kFAA6D,CAAA;IAC7D,iDAA4B,CAAA;AAC9B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;QAC3C;YACE,OAAO,EAAE;gBACP,UAAU,EAAE,sBAAsB;aACnC;SACF;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,qCAAqC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,aAA4B,EAC5B,KAAyB,EACzB,EAAE;IACF,OAAO,CAAC,WAAW,KAAK,iBAAiB,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,oBAAoB,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE3D,MAAM,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;QAC3C;YACE,OAAO,EAAE;gBACP,UAAU,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;aACjD;SACF;KACF,CAAC,CAAC;IAEH,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE3C,QAAQ,CAAC,uBAAuB,KAAK,gBAAgB,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,OAAgB,EACkB,EAAE;IACpC,OAAO,CAAC,0BAA0B,OAAO,MAAM,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtE,QAAQ,CAAC,sCAAsC,OAAO,KAAK,CAAC,CAAC;IAE7D,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjE,OAAO,CAAC,+CAA+C,OAAO,MAAM,CAAC,CAAC;IAEtE,IAAI,iBAAiB,CAAC,OAAO,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,8DAA8D,OAAO,EAAE,CACxE,CAAC;IAEJ,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,EAAE;QAChE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;KACrB,CAAC,CAAC;IAEH,QAAQ,CACN,2DAA2D,OAAO,KAAK,CACxE,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,WAAoB,EACO,EAAE;IAC7B,IAAI,MAAM,CAAC;IACX,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU;QACrC,MAAM,GAAG,GAAG,eAAe,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;IAEtE,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5D,UAAU,CACR,6BAA6B,WAAW,yBAAyB,eAAe,mBAC9E,MAAM,IAAI,sBACZ,EAAE,CACH,CAAC;QACF,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,IAAI,MAAM,IAAI,sBAAsB,CAAC;IAE5D,OAAO,IAAI,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC,CAAC"}
|
package/dist/src/utils/keys.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
2
|
-
|
|
1
|
+
import { ethers, providers } from 'ethers';
|
|
2
|
+
import { ContextSettings } from '../context.js';
|
|
3
|
+
/**
|
|
4
|
+
* Retrieves a signer for the current command-context.
|
|
5
|
+
* @returns the signer
|
|
6
|
+
*/
|
|
7
|
+
export declare function getSigner<P extends ContextSettings>({ keyConfig, skipConfirmation, }: P): Promise<providers.JsonRpcSigner | ethers.Wallet | undefined>;
|
|
8
|
+
/**
|
|
9
|
+
* Retrieves an impersonated signer for the current command-context.
|
|
10
|
+
* @returns the impersonated signer
|
|
11
|
+
*/
|
|
12
|
+
export declare function getImpersonatedSigner<P extends ContextSettings>({ keyConfig, skipConfirmation, }: P): Promise<providers.JsonRpcSigner | ethers.Wallet | undefined>;
|
|
13
|
+
/**
|
|
14
|
+
* Verifies the specified signer is valid.
|
|
15
|
+
* @param signer the signer to verify
|
|
16
|
+
*/
|
|
3
17
|
export declare function assertSigner(signer: ethers.Signer): void;
|
|
4
18
|
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAK3C,OAAO,EAAE,eAAe,EAAa,MAAM,eAAe,CAAC;AAM3D;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,eAAe,EAAE,EACzD,SAAS,EACT,gBAAgB,GACjB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAMlE;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,SAAS,eAAe,EAAE,EACrE,SAAS,EACT,gBAAgB,GACjB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAUlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,QAGjD"}
|
package/dist/src/utils/keys.js
CHANGED
|
@@ -1,18 +1,79 @@
|
|
|
1
|
+
import { input } from '@inquirer/prompts';
|
|
1
2
|
import { ethers } from 'ethers';
|
|
3
|
+
import { impersonateAccount } from '@hyperlane-xyz/sdk';
|
|
2
4
|
import { ensure0x } from '@hyperlane-xyz/utils';
|
|
3
|
-
|
|
5
|
+
const ETHEREUM_ADDRESS_LENGTH = 42;
|
|
6
|
+
const DEFAULT_KEY_TYPE = 'private key';
|
|
7
|
+
const IMPERSONATED_KEY_TYPE = 'address';
|
|
8
|
+
/**
|
|
9
|
+
* Retrieves a signer for the current command-context.
|
|
10
|
+
* @returns the signer
|
|
11
|
+
*/
|
|
12
|
+
export async function getSigner({ keyConfig, skipConfirmation, }) {
|
|
13
|
+
if (!keyConfig)
|
|
14
|
+
return undefined;
|
|
15
|
+
const key = await retrieveKey(DEFAULT_KEY_TYPE, keyConfig, skipConfirmation);
|
|
16
|
+
return privateKeyToSigner(key);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves an impersonated signer for the current command-context.
|
|
20
|
+
* @returns the impersonated signer
|
|
21
|
+
*/
|
|
22
|
+
export async function getImpersonatedSigner({ keyConfig, skipConfirmation, }) {
|
|
23
|
+
if (!keyConfig)
|
|
24
|
+
return undefined;
|
|
25
|
+
const key = await retrieveKey(IMPERSONATED_KEY_TYPE, keyConfig, skipConfirmation);
|
|
26
|
+
return await addressToImpersonatedSigner(key);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Verifies the specified signer is valid.
|
|
30
|
+
* @param signer the signer to verify
|
|
31
|
+
*/
|
|
32
|
+
export function assertSigner(signer) {
|
|
33
|
+
if (!signer || !ethers.Signer.isSigner(signer))
|
|
34
|
+
throw new Error('Signer is invalid');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Generates a signer from an address.
|
|
38
|
+
* @param address an EOA address
|
|
39
|
+
* @returns a signer for the address
|
|
40
|
+
*/
|
|
41
|
+
async function addressToImpersonatedSigner(address) {
|
|
42
|
+
if (!address)
|
|
43
|
+
throw new Error('No address provided');
|
|
44
|
+
const formattedKey = address.trim().toLowerCase();
|
|
45
|
+
if (address.length != ETHEREUM_ADDRESS_LENGTH)
|
|
46
|
+
throw new Error('Invalid address length. Please ensure you are passing an address and not a private key.');
|
|
47
|
+
else if (ethers.utils.isHexString(ensure0x(formattedKey)))
|
|
48
|
+
return await impersonateAccount(address);
|
|
49
|
+
else
|
|
50
|
+
throw new Error('Invalid address format');
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Generates a signer from a private key.
|
|
54
|
+
* @param key a private key
|
|
55
|
+
* @returns a signer for the private key
|
|
56
|
+
*/
|
|
57
|
+
function privateKeyToSigner(key) {
|
|
4
58
|
if (!key)
|
|
5
|
-
throw new Error('No key provided');
|
|
59
|
+
throw new Error('No private key provided');
|
|
6
60
|
const formattedKey = key.trim().toLowerCase();
|
|
7
61
|
if (ethers.utils.isHexString(ensure0x(formattedKey)))
|
|
8
62
|
return new ethers.Wallet(ensure0x(formattedKey));
|
|
9
63
|
else if (formattedKey.split(' ').length >= 6)
|
|
10
64
|
return ethers.Wallet.fromMnemonic(formattedKey);
|
|
11
65
|
else
|
|
12
|
-
throw new Error('Invalid key format');
|
|
66
|
+
throw new Error('Invalid private key format');
|
|
13
67
|
}
|
|
14
|
-
|
|
15
|
-
if (
|
|
16
|
-
|
|
68
|
+
async function retrieveKey(keyType, keyConfig, skipConfirmation) {
|
|
69
|
+
if (keyConfig.key)
|
|
70
|
+
return keyConfig.key;
|
|
71
|
+
else if (skipConfirmation)
|
|
72
|
+
throw new Error(`No ${keyType} provided`);
|
|
73
|
+
else
|
|
74
|
+
return await input({
|
|
75
|
+
message: keyConfig.promptMessage ||
|
|
76
|
+
`Please enter ${keyType} or use the HYP_KEY environment variable.`,
|
|
77
|
+
});
|
|
17
78
|
}
|
|
18
79
|
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "3.10.
|
|
1
|
+
export declare const VERSION = "3.10.1-beta0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,iBAAiB,CAAC"}
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '3.10.
|
|
1
|
+
export const VERSION = '3.10.1-beta0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|