@hyperlane-xyz/cli 5.6.2 → 5.7.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.
Files changed (39) hide show
  1. package/dist/src/commands/warp.d.ts +3 -0
  2. package/dist/src/commands/warp.d.ts.map +1 -1
  3. package/dist/src/commands/warp.js +18 -0
  4. package/dist/src/commands/warp.js.map +1 -1
  5. package/dist/src/config/core.d.ts +479 -455
  6. package/dist/src/config/core.d.ts.map +1 -1
  7. package/dist/src/config/hooks.d.ts +269 -158
  8. package/dist/src/config/hooks.d.ts.map +1 -1
  9. package/dist/src/config/hooks.js +101 -44
  10. package/dist/src/config/hooks.js.map +1 -1
  11. package/dist/src/config/warp.d.ts.map +1 -1
  12. package/dist/src/config/warp.js +10 -2
  13. package/dist/src/config/warp.js.map +1 -1
  14. package/dist/src/context/context.d.ts +10 -1
  15. package/dist/src/context/context.d.ts.map +1 -1
  16. package/dist/src/context/context.js +14 -1
  17. package/dist/src/context/context.js.map +1 -1
  18. package/dist/src/deploy/core.js +2 -2
  19. package/dist/src/deploy/core.js.map +1 -1
  20. package/dist/src/deploy/warp.d.ts.map +1 -1
  21. package/dist/src/deploy/warp.js +75 -37
  22. package/dist/src/deploy/warp.js.map +1 -1
  23. package/dist/src/tests/warp-apply.e2e-test.js +35 -0
  24. package/dist/src/tests/warp-apply.e2e-test.js.map +1 -1
  25. package/dist/src/utils/chains.d.ts +7 -1
  26. package/dist/src/utils/chains.d.ts.map +1 -1
  27. package/dist/src/utils/chains.js +4 -4
  28. package/dist/src/utils/chains.js.map +1 -1
  29. package/dist/src/utils/input.d.ts +6 -0
  30. package/dist/src/utils/input.d.ts.map +1 -1
  31. package/dist/src/utils/input.js +43 -4
  32. package/dist/src/utils/input.js.map +1 -1
  33. package/dist/src/verify/warp.d.ts +7 -0
  34. package/dist/src/verify/warp.d.ts.map +1 -0
  35. package/dist/src/verify/warp.js +61 -0
  36. package/dist/src/verify/warp.js.map +1 -0
  37. package/dist/src/version.d.ts +1 -1
  38. package/dist/src/version.js +1 -1
  39. package/package.json +3 -3
@@ -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":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAEL,uBAAuB,EACvB,mBAAmB,EAEnB,8BAA8B,EAI9B,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE1D,2FAA2F;AAC3F,MAAM,kBAAkB,GAAG,CAAC,SAAS,CAAC,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,OAAO,EACP,cAAc,GAIf;IACC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE7E,MAAM,kBAAkB,GAAgC,EAAE,CAAC;IAE3D,IAAI,OAAO,GAAqB,EAAE,CAAC;IACnC,IAAI,CAAC,gBAAgB;QACnB,OAAO,GAAG,MAAM,qBAAqB,CACnC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAC7C,aAAa,EACb,QAAQ,CACT,CAAC;IAEJ,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAC5B,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,qBAAqB,SAAS,aAAa,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAEtE,OAAO,CAAC,gCAAgC,SAAS,qBAAqB,CAAC,CAAC;QAExE,qEAAqE;QACrE,MAAM,uBAAuB,GAAG,eAAe;YAC7C,CAAC,CAAC,MAAM,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC;YAC3D,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;QAEzB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CACtD,aAAa,EACb,SAAS,EACT,uBAAuB,CACxB,CAAC;QACF,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,mBAAmB,GAAG,MAAM,iBAAiB,CAAC,sBAAsB,CAAC;YACzE,SAAS;YACT,YAAY;YACZ,aAAa;YACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,qBAAqB,EAAE,uBAAuB;SAC/C,CAAC,CAAC;QACH,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAExD,8BAA8B;QAC9B,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,EAAE,eAAe,EAAE,gCAAgC,EAAE,GACzD,MAAM,iBAAiB,CAAC,qBAAqB,CAAC;gBAC5C,SAAS;gBACT,aAAa;gBACb,YAAY,EAAE,KAAK,CAAC,cAAc;aACnC,CAAC,CAAC;YAEL,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpD,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,oEAAoE,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,IAAI,8BAA8B,CACjD,kBAAkB,EAClB,OAAO,CAAC,aAAa,EACrB,OAAO,EACP,aAAa,EACb,mBAAmB,CAAC,GAAG,CACxB,CAAC;IAEF,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IAExB,OAAO,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,aAA4B,EAC5B,SAAiB,EACjB,gBAAyB;IAQzB,MAAM,eAAe,GAAG,IAAI,uBAAuB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,CACtD,gBAAgB,CACjB,CAAyE,CAAC;IAE3E,MAAM,OAAO,GAAG,SAAS,CACvB,iBAAiB,EACjB,CAAC,CAAC,EAAE,SAAS,EAAoB,EAAE,CAAC,CAAC,KAAK,SAAS,CACpD,CAAC,SAAS,CAAC,CAAC;IAEb,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "5.6.2";
1
+ export declare const VERSION = "5.7.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const VERSION = '5.6.2';
1
+ export const VERSION = '5.7.0';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@hyperlane-xyz/cli",
3
- "version": "5.6.2",
3
+ "version": "5.7.0",
4
4
  "description": "A command-line utility for common Hyperlane operations",
5
5
  "dependencies": {
6
6
  "@aws-sdk/client-kms": "^3.577.0",
7
7
  "@aws-sdk/client-s3": "^3.577.0",
8
8
  "@hyperlane-xyz/registry": "4.7.0",
9
- "@hyperlane-xyz/sdk": "5.6.2",
10
- "@hyperlane-xyz/utils": "5.6.2",
9
+ "@hyperlane-xyz/sdk": "5.7.0",
10
+ "@hyperlane-xyz/utils": "5.7.0",
11
11
  "@inquirer/core": "9.0.10",
12
12
  "@inquirer/figures": "1.0.5",
13
13
  "@inquirer/prompts": "^3.0.0",