@hyperlane-xyz/cli 5.7.0-zksyncbeta.0 → 6.0.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/src/commands/warp.d.ts +3 -0
- package/dist/src/commands/warp.d.ts.map +1 -1
- package/dist/src/commands/warp.js +18 -0
- package/dist/src/commands/warp.js.map +1 -1
- package/dist/src/config/chain.d.ts.map +1 -1
- package/dist/src/config/chain.js +1 -9
- package/dist/src/config/chain.js.map +1 -1
- package/dist/src/config/core.d.ts +6 -6
- package/dist/src/config/ism.d.ts +18 -7
- package/dist/src/config/ism.d.ts.map +1 -1
- package/dist/src/config/ism.js +33 -23
- package/dist/src/config/ism.js.map +1 -1
- package/dist/src/config/submit.d.ts.map +1 -1
- package/dist/src/config/submit.js +3 -17
- package/dist/src/config/submit.js.map +1 -1
- package/dist/src/config/warp.d.ts.map +1 -1
- package/dist/src/config/warp.js +10 -2
- package/dist/src/config/warp.js.map +1 -1
- package/dist/src/context/context.d.ts +10 -1
- package/dist/src/context/context.d.ts.map +1 -1
- package/dist/src/context/context.js +14 -1
- package/dist/src/context/context.js.map +1 -1
- package/dist/src/deploy/core.d.ts.map +1 -1
- package/dist/src/deploy/core.js +3 -11
- package/dist/src/deploy/core.js.map +1 -1
- package/dist/src/deploy/utils.d.ts +1 -12
- package/dist/src/deploy/utils.d.ts.map +1 -1
- package/dist/src/deploy/utils.js +1 -14
- 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 +14 -8
- package/dist/src/deploy/warp.js.map +1 -1
- package/dist/src/submit/submit.js +3 -1
- package/dist/src/submit/submit.js.map +1 -1
- package/dist/src/tests/commands/core.d.ts +1 -1
- package/dist/src/tests/commands/core.d.ts.map +1 -1
- package/dist/src/tests/commands/core.js +3 -3
- package/dist/src/tests/commands/core.js.map +1 -1
- package/dist/src/tests/commands/helpers.d.ts +4 -7
- package/dist/src/tests/commands/helpers.d.ts.map +1 -1
- package/dist/src/tests/commands/helpers.js +15 -16
- package/dist/src/tests/commands/helpers.js.map +1 -1
- package/dist/src/tests/commands/warp.d.ts +4 -4
- package/dist/src/tests/commands/warp.d.ts.map +1 -1
- package/dist/src/tests/commands/warp.js +12 -11
- package/dist/src/tests/commands/warp.js.map +1 -1
- package/dist/src/tests/warp-apply.e2e-test.js +9 -9
- package/dist/src/tests/warp-apply.e2e-test.js.map +1 -1
- package/dist/src/utils/chains.js +1 -1
- package/dist/src/utils/chains.js.map +1 -1
- package/dist/src/utils/input.d.ts +6 -0
- package/dist/src/utils/input.d.ts.map +1 -1
- package/dist/src/utils/input.js +43 -4
- package/dist/src/utils/input.js.map +1 -1
- package/dist/src/utils/keys.d.ts +2 -3
- package/dist/src/utils/keys.d.ts.map +1 -1
- package/dist/src/utils/keys.js +2 -3
- package/dist/src/utils/keys.js.map +1 -1
- package/dist/src/verify/warp.d.ts +7 -0
- package/dist/src/verify/warp.d.ts.map +1 -0
- package/dist/src/verify/warp.js +61 -0
- package/dist/src/verify/warp.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/submit/strategy/impersonated-account-strategy.yaml +1 -0
- package/examples/submit/strategy/json-rpc-chain-strategy.yaml +2 -6
- package/examples/submit/strategy/json-rpc-strategy.yaml +1 -0
- package/package.json +4 -5
- package/dist/src/tests/warp-apply-zksync.e2e-test.d.ts +0 -3
- package/dist/src/tests/warp-apply-zksync.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp-apply-zksync.e2e-test.js +0 -151
- package/dist/src/tests/warp-apply-zksync.e2e-test.js.map +0 -1
- package/dist/src/tests/warp-read-zksync.e2e-test.d.ts +0 -3
- package/dist/src/tests/warp-read-zksync.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp-read-zksync.e2e-test.js +0 -34
- package/dist/src/tests/warp-read-zksync.e2e-test.js.map +0 -1
- package/examples/core-config-zksync.yaml +0 -10
|
@@ -2,12 +2,12 @@ import { WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
|
|
|
2
2
|
/**
|
|
3
3
|
* Deploys the Warp route to the specified chain using the provided config.
|
|
4
4
|
*/
|
|
5
|
-
export declare function hyperlaneWarpDeploy(warpCorePath: string
|
|
5
|
+
export declare function hyperlaneWarpDeploy(warpCorePath: string): Promise<import("zx").ProcessOutput>;
|
|
6
6
|
/**
|
|
7
7
|
* Applies updates to the Warp route config.
|
|
8
8
|
*/
|
|
9
|
-
export declare function hyperlaneWarpApply(warpDeployPath: string, warpCorePath: string, strategyUrl?: string
|
|
10
|
-
export declare function hyperlaneWarpRead(chain: string, warpAddress: string, warpDeployPath: string
|
|
9
|
+
export declare function hyperlaneWarpApply(warpDeployPath: string, warpCorePath: string, strategyUrl?: string): Promise<import("zx").ProcessOutput>;
|
|
10
|
+
export declare function hyperlaneWarpRead(chain: string, warpAddress: string, warpDeployPath: string): Promise<import("zx").ProcessOutput>;
|
|
11
11
|
export declare function hyperlaneWarpSendRelay(origin: string, destination: string, warpCorePath: string): Promise<import("zx").ProcessOutput>;
|
|
12
12
|
/**
|
|
13
13
|
* Reads the Warp route deployment config to specified output path.
|
|
@@ -15,5 +15,5 @@ export declare function hyperlaneWarpSendRelay(origin: string, destination: stri
|
|
|
15
15
|
* @param warpDeployPath path to output the resulting read
|
|
16
16
|
* @returns The Warp route deployment config.
|
|
17
17
|
*/
|
|
18
|
-
export declare function readWarpConfig(chain: string, warpCorePath: string, warpDeployPath: string
|
|
18
|
+
export declare function readWarpConfig(chain: string, warpCorePath: string, warpDeployPath: string): Promise<WarpRouteDeployConfig>;
|
|
19
19
|
//# sourceMappingURL=warp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../../src/tests/commands/warp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAQ3D;;GAEG;AACH,wBAAsB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../../src/tests/commands/warp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAQ3D;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,uCAS7D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,WAAW,SAAK,uCAWjB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,uCAUvB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,uCAYrB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAIhC"}
|
|
@@ -5,36 +5,37 @@ $.verbose = true;
|
|
|
5
5
|
/**
|
|
6
6
|
* Deploys the Warp route to the specified chain using the provided config.
|
|
7
7
|
*/
|
|
8
|
-
export async function hyperlaneWarpDeploy(warpCorePath
|
|
8
|
+
export async function hyperlaneWarpDeploy(warpCorePath) {
|
|
9
|
+
// --overrides is " " to allow local testing to work
|
|
9
10
|
return $ `yarn workspace @hyperlane-xyz/cli run hyperlane warp deploy \
|
|
10
|
-
--registry ${
|
|
11
|
+
--registry ${REGISTRY_PATH} \
|
|
11
12
|
--overrides " " \
|
|
12
13
|
--config ${warpCorePath} \
|
|
13
|
-
--key ${
|
|
14
|
+
--key ${ANVIL_KEY} \
|
|
14
15
|
--verbosity debug \
|
|
15
16
|
--yes`;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* Applies updates to the Warp route config.
|
|
19
20
|
*/
|
|
20
|
-
export async function hyperlaneWarpApply(warpDeployPath, warpCorePath, strategyUrl = ''
|
|
21
|
+
export async function hyperlaneWarpApply(warpDeployPath, warpCorePath, strategyUrl = '') {
|
|
21
22
|
return $ `yarn workspace @hyperlane-xyz/cli run hyperlane warp apply \
|
|
22
|
-
--registry ${
|
|
23
|
+
--registry ${REGISTRY_PATH} \
|
|
23
24
|
--overrides " " \
|
|
24
25
|
--config ${warpDeployPath} \
|
|
25
26
|
--warp ${warpCorePath} \
|
|
26
|
-
--key ${
|
|
27
|
+
--key ${ANVIL_KEY} \
|
|
27
28
|
--verbosity debug \
|
|
28
29
|
--strategy ${strategyUrl} \
|
|
29
30
|
--yes`;
|
|
30
31
|
}
|
|
31
|
-
export async function hyperlaneWarpRead(chain, warpAddress, warpDeployPath
|
|
32
|
+
export async function hyperlaneWarpRead(chain, warpAddress, warpDeployPath) {
|
|
32
33
|
return $ `yarn workspace @hyperlane-xyz/cli run hyperlane warp read \
|
|
33
|
-
--registry ${
|
|
34
|
+
--registry ${REGISTRY_PATH} \
|
|
34
35
|
--overrides " " \
|
|
35
36
|
--address ${warpAddress} \
|
|
36
37
|
--chain ${chain} \
|
|
37
|
-
--key ${
|
|
38
|
+
--key ${ANVIL_KEY} \
|
|
38
39
|
--verbosity debug \
|
|
39
40
|
--config ${warpDeployPath}`;
|
|
40
41
|
}
|
|
@@ -56,9 +57,9 @@ export async function hyperlaneWarpSendRelay(origin, destination, warpCorePath)
|
|
|
56
57
|
* @param warpDeployPath path to output the resulting read
|
|
57
58
|
* @returns The Warp route deployment config.
|
|
58
59
|
*/
|
|
59
|
-
export async function readWarpConfig(chain, warpCorePath, warpDeployPath
|
|
60
|
+
export async function readWarpConfig(chain, warpCorePath, warpDeployPath) {
|
|
60
61
|
const warpAddress = getDeployedWarpAddress(chain, warpCorePath);
|
|
61
|
-
await hyperlaneWarpRead(chain, warpAddress, warpDeployPath
|
|
62
|
+
await hyperlaneWarpRead(chain, warpAddress, warpDeployPath);
|
|
62
63
|
return readYamlOrJson(warpDeployPath);
|
|
63
64
|
}
|
|
64
65
|
//# sourceMappingURL=warp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../../src/tests/commands/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC;AAIvB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEhF,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAEjB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../../src/tests/commands/warp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC;AAIvB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEhF,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAEjB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,YAAoB;IAC5D,oDAAoD;IACpD,OAAO,CAAC,CAAA;qBACW,aAAa;;mBAEf,YAAY;gBACf,SAAS;;cAEX,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAAsB,EACtB,YAAoB,EACpB,WAAW,GAAG,EAAE;IAEhB,OAAO,CAAC,CAAA;qBACW,aAAa;;mBAEf,cAAc;iBAChB,YAAY;gBACb,SAAS;;qBAEJ,WAAW;cAClB,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,WAAmB,EACnB,cAAsB;IAEtB,OAAO,CAAC,CAAA;qBACW,aAAa;;oBAEd,WAAW;kBACb,KAAK;gBACP,SAAS;;mBAEN,cAAc,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,WAAmB,EACnB,YAAoB;IAEpB,OAAO,CAAC,CAAA;;qBAEW,aAAa;;mBAEf,MAAM;wBACD,WAAW;iBAClB,YAAY;gBACb,SAAS;;cAEX,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,YAAoB,EACpB,cAAsB;IAEtB,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,iBAAiB,CAAC,KAAK,EAAE,WAAY,EAAE,cAAc,CAAC,CAAC;IAC7D,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { expect } from 'chai';
|
|
|
2
2
|
import { Wallet } from 'ethers';
|
|
3
3
|
import { TokenType, } from '@hyperlane-xyz/sdk';
|
|
4
4
|
import { readYamlOrJson, writeYamlOrJson } from '../utils/files.js';
|
|
5
|
-
import { ANVIL_KEY, REGISTRY_PATH, deployOrUseExistingCore, extendWarpConfig,
|
|
5
|
+
import { ANVIL_KEY, REGISTRY_PATH, deployOrUseExistingCore, extendWarpConfig, getDomainId, updateOwner, } from './commands/helpers.js';
|
|
6
6
|
import { hyperlaneWarpApply, hyperlaneWarpDeploy, readWarpConfig, } from './commands/warp.js';
|
|
7
7
|
const CHAIN_NAME_2 = 'anvil2';
|
|
8
8
|
const CHAIN_NAME_3 = 'anvil3';
|
|
@@ -64,12 +64,12 @@ describe('WarpApply e2e tests', async function () {
|
|
|
64
64
|
const COMBINED_WARP_CORE_CONFIG_PATH = `${REGISTRY_PATH}/deployments/warp_routes/ETH/anvil2-anvil3-config.yaml`;
|
|
65
65
|
// Check that chain2 is enrolled in chain1
|
|
66
66
|
const updatedWarpDeployConfig1 = await readWarpConfig(CHAIN_NAME_2, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
|
|
67
|
-
const chain2Id = await
|
|
67
|
+
const chain2Id = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
|
|
68
68
|
const remoteRouterKeys1 = Object.keys(updatedWarpDeployConfig1[CHAIN_NAME_2].remoteRouters);
|
|
69
69
|
expect(remoteRouterKeys1).to.include(chain2Id);
|
|
70
70
|
// Check that chain1 is enrolled in chain2
|
|
71
71
|
const updatedWarpDeployConfig2 = await readWarpConfig(CHAIN_NAME_3, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
|
|
72
|
-
const chain1Id = await
|
|
72
|
+
const chain1Id = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
|
|
73
73
|
const remoteRouterKeys2 = Object.keys(updatedWarpDeployConfig2[CHAIN_NAME_3].remoteRouters);
|
|
74
74
|
expect(remoteRouterKeys2).to.include(chain1Id);
|
|
75
75
|
});
|
|
@@ -98,12 +98,12 @@ describe('WarpApply e2e tests', async function () {
|
|
|
98
98
|
const COMBINED_WARP_CORE_CONFIG_PATH = `${REGISTRY_PATH}/deployments/warp_routes/ETH/anvil2-anvil3-config.yaml`;
|
|
99
99
|
// Check that chain2 is enrolled in chain1
|
|
100
100
|
const updatedWarpDeployConfig1 = await readWarpConfig(CHAIN_NAME_2, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
|
|
101
|
-
const chain2Id = await
|
|
101
|
+
const chain2Id = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
|
|
102
102
|
const remoteRouterKeys1 = Object.keys(updatedWarpDeployConfig1[CHAIN_NAME_2].remoteRouters);
|
|
103
103
|
expect(remoteRouterKeys1).to.include(chain2Id);
|
|
104
104
|
// Check that chain1 is enrolled in chain2
|
|
105
105
|
const updatedWarpDeployConfig2 = await readWarpConfig(CHAIN_NAME_3, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
|
|
106
|
-
const chain1Id = await
|
|
106
|
+
const chain1Id = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
|
|
107
107
|
const remoteRouterKeys2 = Object.keys(updatedWarpDeployConfig2[CHAIN_NAME_3].remoteRouters);
|
|
108
108
|
expect(remoteRouterKeys2).to.include(chain1Id);
|
|
109
109
|
});
|
|
@@ -134,8 +134,8 @@ describe('WarpApply e2e tests', async function () {
|
|
|
134
134
|
// Also, anvil3 owner is not burned
|
|
135
135
|
expect(updatedWarpDeployConfig_3.anvil3.owner).to.equal(randomOwner);
|
|
136
136
|
// Check that both chains enrolled
|
|
137
|
-
const chain2Id = await
|
|
138
|
-
const chain3Id = await
|
|
137
|
+
const chain2Id = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
|
|
138
|
+
const chain3Id = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
|
|
139
139
|
const remoteRouterKeys2 = Object.keys(updatedWarpDeployConfig_2[CHAIN_NAME_2].remoteRouters);
|
|
140
140
|
const remoteRouterKeys3 = Object.keys(updatedWarpDeployConfig_3[CHAIN_NAME_3].remoteRouters);
|
|
141
141
|
expect(remoteRouterKeys2).to.include(chain3Id);
|
|
@@ -164,8 +164,8 @@ describe('WarpApply e2e tests', async function () {
|
|
|
164
164
|
const COMBINED_WARP_CORE_CONFIG_PATH = `${REGISTRY_PATH}/deployments/warp_routes/ETH/anvil2-anvil3-config.yaml`;
|
|
165
165
|
// Check that chain2 is enrolled in chain1
|
|
166
166
|
const updatedWarpDeployConfig_2 = await readWarpConfig(CHAIN_NAME_2, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
|
|
167
|
-
const chain2Id = await
|
|
168
|
-
const chain3Id = await
|
|
167
|
+
const chain2Id = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
|
|
168
|
+
const chain3Id = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
|
|
169
169
|
// Destination gas should be set in the existing chain (chain2) to include the extended chain (chain3)
|
|
170
170
|
const destinationGas_2 = updatedWarpDeployConfig_2[CHAIN_NAME_2].destinationGas;
|
|
171
171
|
expect(Object.keys(destinationGas_2)).to.include(chain3Id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warp-apply.e2e-test.js","sourceRoot":"","sources":["../../../src/tests/warp-apply.e2e-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAEL,SAAS,GAEV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EACL,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"warp-apply.e2e-test.js","sourceRoot":"","sources":["../../../src/tests/warp-apply.e2e-test.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils/chains.js
CHANGED
|
@@ -30,7 +30,7 @@ export async function runMultiChainSelectionStep({ chainMetadata, message = 'Sel
|
|
|
30
30
|
choices: choices.map((choice) => currentChoiceSelection.has(choice.name)
|
|
31
31
|
? { ...choice, checked: true }
|
|
32
32
|
: choice),
|
|
33
|
-
instructions: `Use TAB key to select at least ${requireNumber} chains, then press ENTER to proceed. Type to search for a specific chain.`,
|
|
33
|
+
instructions: `Use the TAB or the SPACE key to select at least ${requireNumber} chains, then press ENTER to proceed. Type to search for a specific chain.`,
|
|
34
34
|
theme: {
|
|
35
35
|
style: {
|
|
36
36
|
// The leading space is needed because the help tip will be tightly close to the message header
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/utils/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAA4B,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1E,mDAAmD;AACnD,0BAA0B;AAC1B,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,aAAsC,EACtC,OAAO,GAAG,cAAc;IAExB,MAAM,WAAW,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC9C,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,eAAe,CACvD,aAAa,EACb,WAAW,CACZ,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC;QAC1B,OAAO;QACP,OAAO,EAAE,CAAC,oBAAoB,EAAE,GAAG,OAAO,CAAC;QAC3C,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;KAC/B,CAAC,CAAW,CAAC;IACd,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAqCD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,aAAa,EACb,OAAO,GAAG,eAAe,EACzB,aAAa,GAAG,CAAC,EACjB,oBAAoB,GAAG,KAAK,EAC5B,WAAW,GAAG,SAAS,GACW;IAClC,MAAM,mBAAmB,GAAG,WAAW,IAAI,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,eAAe,CACvD,aAAa,EACb,mBAAmB,CACpB,CAAC;IAEF,IAAI,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;IACvC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACtC,OAAO;YACP,0BAA0B,EAAE,oBAAoB;YAChD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9B,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC9B,CAAC,CAAC,MAAM,CACX;YACD,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/utils/chains.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Separator } from '@inquirer/core';
|
|
2
|
+
import { ChainName, DeployedOwnableConfig } from '@hyperlane-xyz/sdk';
|
|
2
3
|
import { WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
4
|
+
import { Address } from '@hyperlane-xyz/utils';
|
|
3
5
|
import { CommandContext } from '../context/types.js';
|
|
4
6
|
export declare function detectAndConfirmOrPrompt(detect: () => Promise<string | undefined>, prompt: string, label: string, source?: string): Promise<string>;
|
|
5
7
|
export declare function inputWithInfo({ message, info, defaultAnswer, }: {
|
|
@@ -7,6 +9,10 @@ export declare function inputWithInfo({ message, info, defaultAnswer, }: {
|
|
|
7
9
|
info?: string;
|
|
8
10
|
defaultAnswer?: string;
|
|
9
11
|
}): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Prompts the user to optionally set an existing ProxyAdmin contract address to be used in a WarpToken deployment.
|
|
14
|
+
*/
|
|
15
|
+
export declare function setProxyAdminConfig(context: CommandContext, chain: ChainName, warpRouteOwner: Address): Promise<DeployedOwnableConfig>;
|
|
10
16
|
/**
|
|
11
17
|
* Gets a {@link WarpCoreConfig} based on the provided path or prompts the user to choose one:
|
|
12
18
|
* - if `symbol` is provided the user will have to select one of the available warp routes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/utils/input.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAYV,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/utils/input.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAYV,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAyB,MAAM,sBAAsB,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAMD,wBAAsB,aAAa,CAAC,EAClC,OAAO,EACP,IAA6C,EAC7C,aAAa,GACd,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,OAAO,GACtB,OAAO,CAAC,qBAAqB,CAAC,CA4ChC;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,OAAO,EACP,MAAM,EACN,IAAI,GACL,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,cAAc,CAAC,CAY1B;AAgDD,MAAM,MAAM,wBAAwB,CAAC,KAAK,IAAI;IAC5C,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAwRF,eAAO,MAAM,kBAAkB;aA/QpB,MAAM;;;;;;;;yEAUV,OAAO,GAAG,MAAM,GAAG,QAAQ,MAAM,GAAG,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;iHAkalD,CAAC"}
|
package/dist/src/utils/input.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Separator, createPrompt, isEnterKey, makeTheme, useEffect, useKeypress, useMemo, usePagination, usePrefix, useRef, useState, } from '@inquirer/core';
|
|
2
2
|
import figures from '@inquirer/figures';
|
|
3
|
-
import { confirm, input } from '@inquirer/prompts';
|
|
3
|
+
import { confirm, input, isSpaceKey } from '@inquirer/prompts';
|
|
4
4
|
import ansiEscapes from 'ansi-escapes';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
+
import { ProxyAdmin__factory } from '@hyperlane-xyz/core';
|
|
7
|
+
import { isAddress, rootLogger } from '@hyperlane-xyz/utils';
|
|
6
8
|
import { readWarpCoreConfig } from '../config/warp.js';
|
|
7
|
-
import { logGray
|
|
9
|
+
import { logGray } from '../logger.js';
|
|
10
|
+
import { logRed } from '../logger.js';
|
|
8
11
|
import { indentYamlOrJson } from './files.js';
|
|
9
12
|
import { selectRegistryWarpRoute } from './tokens.js';
|
|
10
13
|
export async function detectAndConfirmOrPrompt(detect, prompt, label, source) {
|
|
@@ -40,6 +43,41 @@ export async function inputWithInfo({ message, info = 'No additional information
|
|
|
40
43
|
} while (answer === INFO_COMMAND);
|
|
41
44
|
return answer;
|
|
42
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Prompts the user to optionally set an existing ProxyAdmin contract address to be used in a WarpToken deployment.
|
|
48
|
+
*/
|
|
49
|
+
export async function setProxyAdminConfig(context, chain, warpRouteOwner) {
|
|
50
|
+
const defaultAdminConfig = {
|
|
51
|
+
owner: warpRouteOwner,
|
|
52
|
+
};
|
|
53
|
+
// default to deploying a new ProxyAdmin with `warpRouteOwner` as the owner
|
|
54
|
+
// if the user supplied the --yes flag
|
|
55
|
+
if (context.skipConfirmation) {
|
|
56
|
+
return defaultAdminConfig;
|
|
57
|
+
}
|
|
58
|
+
const useExistingProxy = await confirm({
|
|
59
|
+
message: `Use an existing Proxy Admin contract for the warp route deployment on chain "${chain}"?`,
|
|
60
|
+
});
|
|
61
|
+
if (!useExistingProxy) {
|
|
62
|
+
return defaultAdminConfig;
|
|
63
|
+
}
|
|
64
|
+
const proxyAdminAddress = await input({
|
|
65
|
+
message: `Please enter the address of the Proxy Admin contract to be used on chain "${chain}":`,
|
|
66
|
+
validate: isAddress,
|
|
67
|
+
});
|
|
68
|
+
const proxy = ProxyAdmin__factory.connect(proxyAdminAddress, context.multiProvider.getProvider(chain));
|
|
69
|
+
try {
|
|
70
|
+
const ownerAddress = await proxy.owner();
|
|
71
|
+
return {
|
|
72
|
+
address: proxyAdminAddress,
|
|
73
|
+
owner: ownerAddress,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
rootLogger.error(`Failed to read owner address from ProxyAdmin contract at ${proxy.address} on chain ${chain}.`, error);
|
|
78
|
+
throw new Error(`Failed to read owner address from ProxyAdmin contract at ${proxy.address}. Are you sure this is a ProxyAdmin contract?`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
43
81
|
/**
|
|
44
82
|
* Gets a {@link WarpCoreConfig} based on the provided path or prompts the user to choose one:
|
|
45
83
|
* - if `symbol` is provided the user will have to select one of the available warp routes.
|
|
@@ -127,7 +165,7 @@ function getHelpTips({ theme, instructions, currentItemCount, pageSize, firstRen
|
|
|
127
165
|
let helpTipTop = '';
|
|
128
166
|
let helpTipBottom = '';
|
|
129
167
|
const defaultTopHelpTip = instructions ??
|
|
130
|
-
`(Press ${theme.style.key('tab')} to select, and ${theme.style.key('enter')} to proceed`;
|
|
168
|
+
`(Press ${theme.style.key('tab')} or ${theme.style.key('space')} to select, and ${theme.style.key('enter')} to proceed`;
|
|
131
169
|
const defaultBottomHelpTip = `\n${theme.style.help('(Use arrow keys to reveal more choices)')}`;
|
|
132
170
|
if (theme.helpMode === 'always') {
|
|
133
171
|
helpTipTop = theme.style.helpTip(defaultTopHelpTip);
|
|
@@ -270,7 +308,8 @@ export const searchableCheckBox = createPrompt((config, done) => {
|
|
|
270
308
|
setActive(next);
|
|
271
309
|
}
|
|
272
310
|
}
|
|
273
|
-
else if (key.name === 'tab'
|
|
311
|
+
else if ((key.name === 'tab' || isSpaceKey(key)) &&
|
|
312
|
+
optionState.options.length > 0) {
|
|
274
313
|
// Avoid the message header to be printed again in the console
|
|
275
314
|
rl.clearLine(0);
|
|
276
315
|
const currentElement = optionState.options[active];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/utils/input.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/utils/input.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils/keys.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import { Wallet } from 'zksync-ethers';
|
|
3
2
|
import { Address } from '@hyperlane-xyz/utils';
|
|
4
3
|
/**
|
|
5
4
|
* Retrieves a signer for the current command-context.
|
|
@@ -9,8 +8,8 @@ export declare function getSigner({ key, skipConfirmation, }: {
|
|
|
9
8
|
key?: string;
|
|
10
9
|
skipConfirmation?: boolean;
|
|
11
10
|
}): Promise<{
|
|
12
|
-
key
|
|
13
|
-
signer: Wallet;
|
|
11
|
+
key: string;
|
|
12
|
+
signer: ethers.Wallet;
|
|
14
13
|
}>;
|
|
15
14
|
/**
|
|
16
15
|
* Retrieves an impersonated signer for the current command-context.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AAIzD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,EAC9B,GAAG,EACH,gBAAgB,GACjB,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;;;GAIA;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,WAAW,EACX,GAAG,EACH,gBAAgB,GACjB,EAAE;IACD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;;;GASA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,QAGjD"}
|
package/dist/src/utils/keys.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { input } from '@inquirer/prompts';
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
|
-
import { Wallet } from 'zksync-ethers';
|
|
4
3
|
import { impersonateAccount } from '@hyperlane-xyz/sdk';
|
|
5
4
|
import { ensure0x } from '@hyperlane-xyz/utils';
|
|
6
5
|
const ETHEREUM_ADDRESS_LENGTH = 42;
|
|
@@ -61,9 +60,9 @@ function privateKeyToSigner(key) {
|
|
|
61
60
|
throw new Error('No private key provided');
|
|
62
61
|
const formattedKey = key.trim().toLowerCase();
|
|
63
62
|
if (ethers.utils.isHexString(ensure0x(formattedKey)))
|
|
64
|
-
return new Wallet(ensure0x(formattedKey));
|
|
63
|
+
return new ethers.Wallet(ensure0x(formattedKey));
|
|
65
64
|
else if (formattedKey.split(' ').length >= 6)
|
|
66
|
-
return Wallet.fromMnemonic(formattedKey);
|
|
65
|
+
return ethers.Wallet.fromMnemonic(formattedKey);
|
|
67
66
|
else
|
|
68
67
|
throw new Error('Invalid private key format');
|
|
69
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAW,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAC9B,GAAG,EACH,gBAAgB,GAIjB;IACC,GAAG,KAAK,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,WAAW,EACX,GAAG,EACH,gBAAgB,GAKjB;IACC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC9D,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IACD,OAAO;QACL,eAAe,EAAE,WAAW;QAC5B,kBAAkB,EAAE,MAAM,2BAA2B,CAAC,WAAW,CAAC;KACnE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,2BAA2B,CACxC,OAAgB;IAEhB,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,IAAI,uBAAuB;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SACxC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;;QAChC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;SAC9C,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;;QAC7C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,gBAAqC;IAErC,IAAI,gBAAgB;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;;QAE/D,OAAO,KAAK,CAAC;YACX,OAAO,EAAE,mEAAmE;SAC7E,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import { CommandContext } from '../context/types.js';
|
|
3
|
+
export declare function runVerifyWarpRoute({ context, warpCoreConfig, }: {
|
|
4
|
+
context: CommandContext;
|
|
5
|
+
warpCoreConfig: WarpCoreConfig;
|
|
6
|
+
}): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=warp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/verify/warp.ts"],"names":[],"mappings":"AAGA,OAAO,EAQL,cAAc,EAMf,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMrD,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,cAAc,GACf,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;CAChC,iBA0EA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { buildArtifact } from '@hyperlane-xyz/core/buildArtifact.js';
|
|
2
|
+
import { EvmERC20WarpRouteReader, ExplorerLicenseType, PostDeploymentContractVerifier, hypERC20contracts, hypERC20factories, isProxy, proxyImplementation, verificationUtils, } from '@hyperlane-xyz/sdk';
|
|
3
|
+
import { assert, objFilter } from '@hyperlane-xyz/utils';
|
|
4
|
+
import { requestAndSaveApiKeys } from '../context/context.js';
|
|
5
|
+
import { logBlue, logGray, logGreen } from '../logger.js';
|
|
6
|
+
// Zircuit does not have an external API: https://docs.zircuit.com/dev-tools/block-explorer
|
|
7
|
+
const UNSUPPORTED_CHAINS = ['zircuit'];
|
|
8
|
+
export async function runVerifyWarpRoute({ context, warpCoreConfig, }) {
|
|
9
|
+
const { multiProvider, chainMetadata, registry, skipConfirmation } = context;
|
|
10
|
+
const verificationInputs = {};
|
|
11
|
+
let apiKeys = {};
|
|
12
|
+
if (!skipConfirmation)
|
|
13
|
+
apiKeys = await requestAndSaveApiKeys(warpCoreConfig.tokens.map((t) => t.chainName), chainMetadata, registry);
|
|
14
|
+
for (const token of warpCoreConfig.tokens) {
|
|
15
|
+
const { chainName } = token;
|
|
16
|
+
verificationInputs[chainName] = [];
|
|
17
|
+
if (UNSUPPORTED_CHAINS.includes(chainName)) {
|
|
18
|
+
logBlue(`Unsupported chain ${chainName}. Skipping.`);
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
assert(token.addressOrDenom, 'Invalid addressOrDenom');
|
|
22
|
+
const provider = multiProvider.getProvider(chainName);
|
|
23
|
+
const isProxyContract = await isProxy(provider, token.addressOrDenom);
|
|
24
|
+
logGray(`Getting constructor args for ${chainName} using explorer API`);
|
|
25
|
+
// Verify Implementation first because Proxy won't verify without it.
|
|
26
|
+
const deployedContractAddress = isProxyContract
|
|
27
|
+
? await proxyImplementation(provider, token.addressOrDenom)
|
|
28
|
+
: token.addressOrDenom;
|
|
29
|
+
const { factory, tokenType } = await getWarpRouteFactory(multiProvider, chainName, deployedContractAddress);
|
|
30
|
+
const contractName = hypERC20contracts[tokenType];
|
|
31
|
+
const implementationInput = await verificationUtils.getImplementationInput({
|
|
32
|
+
chainName,
|
|
33
|
+
contractName,
|
|
34
|
+
multiProvider,
|
|
35
|
+
bytecode: factory.bytecode,
|
|
36
|
+
implementationAddress: deployedContractAddress,
|
|
37
|
+
});
|
|
38
|
+
verificationInputs[chainName].push(implementationInput);
|
|
39
|
+
// Verify Proxy and ProxyAdmin
|
|
40
|
+
if (isProxyContract) {
|
|
41
|
+
const { proxyAdminInput, transparentUpgradeableProxyInput } = await verificationUtils.getProxyAndAdminInput({
|
|
42
|
+
chainName,
|
|
43
|
+
multiProvider,
|
|
44
|
+
proxyAddress: token.addressOrDenom,
|
|
45
|
+
});
|
|
46
|
+
verificationInputs[chainName].push(proxyAdminInput);
|
|
47
|
+
verificationInputs[chainName].push(transparentUpgradeableProxyInput);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
logBlue(`All explorer constructor args successfully retrieved. Verifying...`);
|
|
51
|
+
const verifier = new PostDeploymentContractVerifier(verificationInputs, context.multiProvider, apiKeys, buildArtifact, ExplorerLicenseType.MIT);
|
|
52
|
+
await verifier.verify();
|
|
53
|
+
return logGreen('Finished contract verification');
|
|
54
|
+
}
|
|
55
|
+
async function getWarpRouteFactory(multiProvider, chainName, warpRouteAddress) {
|
|
56
|
+
const warpRouteReader = new EvmERC20WarpRouteReader(multiProvider, chainName);
|
|
57
|
+
const tokenType = (await warpRouteReader.deriveTokenType(warpRouteAddress));
|
|
58
|
+
const factory = objFilter(hypERC20factories, (t, _contract) => t === tokenType)[tokenType];
|
|
59
|
+
return { factory, tokenType };
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=warp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warp.js","sourceRoot":"","sources":["../../../src/verify/warp.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "
|
|
1
|
+
export declare const VERSION = "6.0.0";
|
|
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,UAAU,CAAC"}
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '
|
|
1
|
+
export const VERSION = '6.0.0';
|
|
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,OAAO,CAAC"}
|