@hyperlane-xyz/sdk 32.0.1 → 33.0.1
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/consts/testChains.d.ts +2 -2
- package/dist/consts/testChains.d.ts.map +1 -1
- package/dist/consts/testChains.js +21 -21
- package/dist/consts/testChains.js.map +1 -1
- package/dist/core/EvmCoreModule.d.ts.map +1 -1
- package/dist/core/EvmCoreModule.js +2 -1
- package/dist/core/EvmCoreModule.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +1 -0
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/types.d.ts +124 -22
- package/dist/core/types.d.ts.map +1 -1
- package/dist/deploy/warp.d.ts.map +1 -1
- package/dist/deploy/warp.js +3 -1
- package/dist/deploy/warp.js.map +1 -1
- package/dist/hook/EvmHookReader.d.ts.map +1 -1
- package/dist/hook/EvmHookReader.js +4 -0
- package/dist/hook/EvmHookReader.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +19 -10
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/hook/types.d.ts +118 -17
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/hook/types.js +14 -0
- package/dist/hook/types.js.map +1 -1
- package/dist/hook/updates.d.ts +4 -1
- package/dist/hook/updates.d.ts.map +1 -1
- package/dist/hook/updates.js +1 -1
- package/dist/hook/updates.js.map +1 -1
- package/dist/hook/utils.d.ts +7 -1
- package/dist/hook/utils.d.ts.map +1 -1
- package/dist/hook/utils.js +18 -0
- package/dist/hook/utils.js.map +1 -1
- package/dist/ica/types.d.ts +36 -6
- package/dist/ica/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataResolver.js +1 -13
- package/dist/metadata/ChainMetadataResolver.js.map +1 -1
- package/dist/metadata/chainIdUtils.d.ts +8 -0
- package/dist/metadata/chainIdUtils.d.ts.map +1 -0
- package/dist/metadata/chainIdUtils.js +33 -0
- package/dist/metadata/chainIdUtils.js.map +1 -0
- package/dist/metadata/chainIdUtils.test.d.ts +2 -0
- package/dist/metadata/chainIdUtils.test.d.ts.map +1 -0
- package/dist/metadata/chainIdUtils.test.js +45 -0
- package/dist/metadata/chainIdUtils.test.js.map +1 -0
- package/dist/predicate/PredicateApiClient.d.ts +45 -0
- package/dist/predicate/PredicateApiClient.d.ts.map +1 -0
- package/dist/predicate/PredicateApiClient.js +66 -0
- package/dist/predicate/PredicateApiClient.js.map +1 -0
- package/dist/predicate/PredicateApiClient.test.d.ts +2 -0
- package/dist/predicate/PredicateApiClient.test.d.ts.map +1 -0
- package/dist/predicate/PredicateApiClient.test.js +108 -0
- package/dist/predicate/PredicateApiClient.test.js.map +1 -0
- package/dist/predicate/PredicateDeployer.d.ts +56 -0
- package/dist/predicate/PredicateDeployer.d.ts.map +1 -0
- package/dist/predicate/PredicateDeployer.hardhat-test.d.ts +2 -0
- package/dist/predicate/PredicateDeployer.hardhat-test.d.ts.map +1 -0
- package/dist/predicate/PredicateDeployer.hardhat-test.js +209 -0
- package/dist/predicate/PredicateDeployer.hardhat-test.js.map +1 -0
- package/dist/predicate/PredicateDeployer.js +218 -0
- package/dist/predicate/PredicateDeployer.js.map +1 -0
- package/dist/router/types.d.ts +54 -9
- package/dist/router/types.d.ts.map +1 -1
- package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +6 -6
- package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -1
- package/dist/test/testUtils.d.ts +1 -1
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +1 -0
- package/dist/test/testUtils.js.map +1 -1
- package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js +4 -4
- package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js.map +1 -1
- package/dist/token/EvmWarpModule.d.ts +55 -0
- package/dist/token/EvmWarpModule.d.ts.map +1 -1
- package/dist/token/EvmWarpModule.hardhat-test.js +29 -0
- package/dist/token/EvmWarpModule.hardhat-test.js.map +1 -1
- package/dist/token/EvmWarpModule.js +264 -21
- package/dist/token/EvmWarpModule.js.map +1 -1
- package/dist/token/EvmWarpRouteReader.d.ts +6 -0
- package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmWarpRouteReader.js +34 -1
- package/dist/token/EvmWarpRouteReader.js.map +1 -1
- package/dist/token/TokenMetadata.d.ts.map +1 -1
- package/dist/token/TokenMetadata.js +2 -3
- package/dist/token/TokenMetadata.js.map +1 -1
- package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts +2 -8
- package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmCrossCollateralAdapter.js +23 -4
- package/dist/token/adapters/EvmCrossCollateralAdapter.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +21 -4
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +191 -22
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +10 -0
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/ITokenAdapter.js +8 -0
- package/dist/token/adapters/ITokenAdapter.js.map +1 -1
- package/dist/token/deploy.d.ts +4 -1
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.js +30 -1
- package/dist/token/deploy.js.map +1 -1
- package/dist/token/types.d.ts +4427 -27
- package/dist/token/types.d.ts.map +1 -1
- package/dist/token/types.js +19 -0
- package/dist/token/types.js.map +1 -1
- package/dist/warp/WarpCore.d.ts +39 -19
- package/dist/warp/WarpCore.d.ts.map +1 -1
- package/dist/warp/WarpCore.js +149 -82
- package/dist/warp/WarpCore.js.map +1 -1
- package/dist/warp/WarpCore.test.js +58 -0
- package/dist/warp/WarpCore.test.js.map +1 -1
- package/package.json +10 -10
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { compareVersions } from 'compare-versions';
|
|
3
3
|
import { constants } from 'ethers';
|
|
4
4
|
import { UINT_256_MAX } from 'starknet';
|
|
5
|
-
import { CrossCollateralRouter__factory, EverclearTokenBridge__factory, GasRouter__factory, IERC20__factory, MailboxClient__factory, MovableCollateralRouter__factory, ProxyAdmin__factory, TokenBridgeCctpV2__factory, TokenRouter__factory, } from '@hyperlane-xyz/core';
|
|
5
|
+
import { CrossCollateralRouter__factory, EverclearTokenBridge__factory, GasRouter__factory, IERC20__factory, MailboxClient__factory, MovableCollateralRouter__factory, PredicateRouterWrapper__factory, ProxyAdmin__factory, StaticAggregationHook__factory, StaticAggregationHookFactory__factory, TokenBridgeCctpV2__factory, TokenRouter__factory, } from '@hyperlane-xyz/core';
|
|
6
6
|
import { buildArtifact as coreBuildArtifact } from '@hyperlane-xyz/core/buildArtifact.js';
|
|
7
7
|
import { ZERO_ADDRESS_HEX_32, addressToBytes32, assert, deepEquals, difference, eqAddress, isAddressEvm, isNullish, isObjEmpty, isZeroishAddress, normalizeAddressEvm, objDiff, objFilter, objKeys, objMap, promiseObjAll, rootLogger, } from '@hyperlane-xyz/utils';
|
|
8
8
|
import { ExplorerLicenseType } from '../block-explorer/etherscan.js';
|
|
@@ -12,7 +12,10 @@ import { isInitialized, proxyAdmin, proxyAdminUpdateTxs, } from '../deploy/proxy
|
|
|
12
12
|
import { ContractVerifier } from '../deploy/verify/ContractVerifier.js';
|
|
13
13
|
import { EvmTokenFeeModule } from '../fee/EvmTokenFeeModule.js';
|
|
14
14
|
import { getEvmHookUpdateTransactions } from '../hook/updates.js';
|
|
15
|
+
import { stripPredicateSubHook } from '../hook/utils.js';
|
|
16
|
+
import { OnchainHookType } from '../hook/types.js';
|
|
15
17
|
import { EvmIsmModule } from '../ism/EvmIsmModule.js';
|
|
18
|
+
import { PredicateWrapperDeployer } from '../predicate/PredicateDeployer.js';
|
|
16
19
|
import { resolveRouterMapConfig } from '../router/types.js';
|
|
17
20
|
import { scalesEqual } from '../utils/decimals.js';
|
|
18
21
|
import { extractIsmAndHookFactoryAddresses } from '../utils/ism.js';
|
|
@@ -22,7 +25,7 @@ import { TokenType } from './config.js';
|
|
|
22
25
|
import { resolveTokenFeeAddress } from './configUtils.js';
|
|
23
26
|
import { hypERC20contracts } from './contracts.js';
|
|
24
27
|
import { HypERC20Deployer } from './deploy.js';
|
|
25
|
-
import { HypTokenRouterConfigSchema, VERSION_ERROR_MESSAGE, contractVersionMatchesDependency, derivedIsmAddress, isCctpTokenConfig, isEverclearTokenBridgeConfig, isMovableCollateralTokenConfig, isCrossCollateralTokenConfig, isOftTokenConfig, isXERC20TokenConfig, } from './types.js';
|
|
28
|
+
import { HypTokenRouterConfigSchema, PredicateWrapperConfigSchema, VERSION_ERROR_MESSAGE, contractVersionMatchesDependency, derivedHookAddress, derivedIsmAddress, isCctpTokenConfig, isEverclearTokenBridgeConfig, isMovableCollateralTokenConfig, isCrossCollateralTokenConfig, isOftTokenConfig, isXERC20TokenConfig, } from './types.js';
|
|
26
29
|
const getAllowedRebalancingBridgesByDomain = (allowedRebalancingBridgesByDomain) => {
|
|
27
30
|
return objMap(allowedRebalancingBridgesByDomain, (_domainId, allowedRebalancingBridges) => {
|
|
28
31
|
return new Set(allowedRebalancingBridges.map((bridgeConfig) => normalizeAddressEvm(bridgeConfig.bridge)));
|
|
@@ -63,6 +66,11 @@ export class EvmWarpModule extends HyperlaneModule {
|
|
|
63
66
|
/**
|
|
64
67
|
* Updates the Warp Route contract with the provided configuration.
|
|
65
68
|
*
|
|
69
|
+
* IMPORTANT — irreversible side effects when expectedConfig includes `predicateWrapper`:
|
|
70
|
+
* The PredicateRouterWrapper contract is deployed on-chain during planning (before this
|
|
71
|
+
* method returns). If the returned transactions are never submitted, the wrapper is
|
|
72
|
+
* orphaned. See PredicateWrapperDeployer.deployAndConfigure for details.
|
|
73
|
+
*
|
|
66
74
|
* @param expectedConfig - The configuration for the token router to be updated.
|
|
67
75
|
* @returns An array of Ethereum transactions that were executed to update the contract, or an error if the update failed.
|
|
68
76
|
*/
|
|
@@ -81,8 +89,10 @@ export class EvmWarpModule extends HyperlaneModule {
|
|
|
81
89
|
* 1. createOwnershipUpdateTxs() must always be LAST because no updates possible after ownership transferred
|
|
82
90
|
* 2. createEnrollRemoteRoutersUpdateTxs() must be BEFORE createSetDestinationGasUpdateTxs()
|
|
83
91
|
* because GasRouter requires routers to be enrolled before setting destination gas
|
|
92
|
+
* 3. createHookAndPredicateUpdateTxs() handles hook + predicate wrapper together so the
|
|
93
|
+
* pending new hook address is threaded through without leaking into other method signatures
|
|
84
94
|
*/
|
|
85
|
-
transactions.push(...(await this.upgradeWarpRouteImplementationTx(actualConfig, expectedConfig)), ...(await this.createIsmUpdateTxs(actualConfig, expectedConfig)), ...(await this.
|
|
95
|
+
transactions.push(...(await this.upgradeWarpRouteImplementationTx(actualConfig, expectedConfig)), ...(await this.createIsmUpdateTxs(actualConfig, expectedConfig)), ...(await this.createHookAndPredicateUpdateTxs(actualConfig, expectedConfig)), ...(await this.createTokenFeeUpdateTxs(actualConfig, expectedConfig, tokenReaderParams)), ...this.createUnenrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig), ...this.createEnrollRemoteRoutersUpdateTxs(actualConfig, expectedConfig),
|
|
86
96
|
// MC unenroll before enroll for consistency with remote routers.
|
|
87
97
|
// MC enrollment must come before gas setting so that MC-only domains
|
|
88
98
|
...this.createUnenrollCrossCollateralRoutersTxs(actualConfig, expectedConfig), ...this.createEnrollCrossCollateralRoutersTxs(actualConfig, expectedConfig), ...this.createSetDestinationGasUpdateTxs(actualConfig, expectedConfig), ...this.createAddRebalancersUpdateTxs(actualConfig, expectedConfig), ...this.createRemoveRebalancersUpdateTxs(actualConfig, expectedConfig), ...(await this.createAddAllowedBridgesUpdateTxs(actualConfig, expectedConfig)), ...this.createRemoveBridgesTxs(actualConfig, expectedConfig), ...this.createAddRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createRemoveRemoteOutputAssetsTxs(actualConfig, expectedConfig), ...this.createUpdateEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createRemoveEverclearFeeParamsTxs(actualConfig, expectedConfig), ...this.createSetMaxFeePpmTxs(actualConfig, expectedConfig), ...xerc20Txs, ...this.createOwnershipUpdateTxs(actualConfig, expectedConfig), ...proxyAdminUpdateTxs(this.chainId, this.args.addresses.deployedTokenRoute, actualConfig, expectedConfig));
|
|
@@ -559,24 +569,257 @@ export class EvmWarpModule extends HyperlaneModule {
|
|
|
559
569
|
return updateTransactions;
|
|
560
570
|
}
|
|
561
571
|
async createHookUpdateTxs(actualConfig, expectedConfig) {
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
572
|
+
return this.createHookAndPredicateUpdateTxs(actualConfig, expectedConfig);
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* Deploys hook updates and predicate wrapper together so the post-update hook address
|
|
576
|
+
* is available to deployAndConfigure without a stale on-chain read.
|
|
577
|
+
*/
|
|
578
|
+
async createHookAndPredicateUpdateTxs(actualConfig, expectedConfig) {
|
|
579
|
+
let hookTransactions = [];
|
|
580
|
+
let newHookAddress;
|
|
581
|
+
// Explicit type annotation narrows away the undefined that TypeScript infers
|
|
582
|
+
// from the RouterConfig & DerivedMailboxClientConfig intersection.
|
|
583
|
+
const actualHook = actualConfig.hook;
|
|
584
|
+
// Predicate removal: on-chain wrapper exists but expected config omits it.
|
|
585
|
+
// When the user provides an explicit hook that differs from the underlying hook
|
|
586
|
+
// (predicate stripped), the hook-diff path generates the setHook to the new hook.
|
|
587
|
+
// Otherwise (no hook, or a stale aggregation from a warp read), the
|
|
588
|
+
// needsPredicateRemoval block below clears the hook to zero so the router uses the
|
|
589
|
+
// mailbox default — the user who removed predicateWrapper without supplying a
|
|
590
|
+
// replacement hook wants the default behavior restored, not the underlying sub-hook
|
|
591
|
+
// silently preserved.
|
|
592
|
+
const needsPredicateRemoval = actualConfig.predicateWrapper != null && !expectedConfig.predicateWrapper;
|
|
593
|
+
// Treat a zero-address hook the same as "no explicit hook": expandWarpDeployConfig
|
|
594
|
+
// sets hook: zeroAddress as a default when the user config omits the hook field.
|
|
595
|
+
// EvmHookModule.update(zeroAddress) returns [] early without updating deployedHook,
|
|
596
|
+
// so a zero-address target produces no setHook tx and the predicate removal branch
|
|
597
|
+
// would never be reached. Exclude zero addresses so needsPredicateRemoval can fire.
|
|
598
|
+
if (expectedConfig.hook &&
|
|
599
|
+
(typeof expectedConfig.hook !== 'string' ||
|
|
600
|
+
!isZeroishAddress(expectedConfig.hook))) {
|
|
601
|
+
const proxyAdminAddress = expectedConfig.proxyAdmin?.address ?? actualConfig.proxyAdmin?.address;
|
|
602
|
+
assert(proxyAdminAddress, 'ProxyAdmin address is undefined');
|
|
603
|
+
// The reader leaves the PREDICATE sub-hook inside actualConfig.hook
|
|
604
|
+
// (e.g. Agg([Predicate, IGP])). When expectedConfig is derived from
|
|
605
|
+
// actualConfig (e.g. during the enrollment step after initial deploy, OR
|
|
606
|
+
// during a read→edit→apply round-trip where the operator removed predicateWrapper
|
|
607
|
+
// but kept the hook field unchanged), expectedConfig.hook carries the same
|
|
608
|
+
// aggregation. Strip the predicate from BOTH sides so the hook diff sees the bare
|
|
609
|
+
// hook (e.g. IGP) on both sides and doesn't generate a spurious setHook.
|
|
610
|
+
// The needsPredicateRemoval block below then fires to clear the hook to zero.
|
|
611
|
+
const shouldStripHookForComparison = !!expectedConfig.predicateWrapper || needsPredicateRemoval;
|
|
612
|
+
const actualHookForComparison = shouldStripHookForComparison
|
|
613
|
+
? stripPredicateSubHook(actualHook)
|
|
614
|
+
: actualHook;
|
|
615
|
+
const expectedHookForComparison = shouldStripHookForComparison && expectedConfig.hook
|
|
616
|
+
? stripPredicateSubHook(expectedConfig.hook)
|
|
617
|
+
: expectedConfig.hook;
|
|
618
|
+
const result = await getEvmHookUpdateTransactions(this.args.addresses.deployedTokenRoute, {
|
|
619
|
+
actualConfig: actualHookForComparison,
|
|
620
|
+
expectedConfig: expectedHookForComparison,
|
|
621
|
+
ccipContractCache: this.ccipContractCache,
|
|
622
|
+
contractVerifier: this.contractVerifier,
|
|
623
|
+
evmChainName: this.chainName,
|
|
624
|
+
hookAndIsmFactories: extractIsmAndHookFactoryAddresses(this.args.addresses),
|
|
625
|
+
setHookFunctionCallEncoder: (addr) => MailboxClient__factory.createInterface().encodeFunctionData('setHook', [addr]),
|
|
626
|
+
logger: this.logger,
|
|
627
|
+
mailbox: actualConfig.mailbox,
|
|
628
|
+
multiProvider: this.multiProvider,
|
|
629
|
+
proxyAdminAddress,
|
|
630
|
+
});
|
|
631
|
+
hookTransactions = result.transactions;
|
|
632
|
+
newHookAddress = result.newHookAddress;
|
|
633
|
+
}
|
|
634
|
+
// Predicate removal when no new hook was deployed: clear the custom hook entirely.
|
|
635
|
+
// This fires whether or not expectedConfig.hook was provided — it handles both the
|
|
636
|
+
// "no hook field" case and the round-trip hazard where the operator removed
|
|
637
|
+
// predicateWrapper but left an unchanged hook field (still containing the aggregation).
|
|
638
|
+
if (needsPredicateRemoval && !newHookAddress) {
|
|
639
|
+
const currentAddress = typeof actualHook === 'string' ? actualHook : actualHook.address;
|
|
640
|
+
if (!isZeroishAddress(currentAddress)) {
|
|
641
|
+
this.logger.debug({ chain: this.chainName }, 'Removing predicate wrapper: generating setHook(zero) to clear custom hook');
|
|
642
|
+
hookTransactions.push({
|
|
643
|
+
annotation: 'Remove predicate wrapper: clear custom hook (router will use mailbox default)',
|
|
644
|
+
chainId: this.chainId,
|
|
645
|
+
to: this.args.addresses.deployedTokenRoute,
|
|
646
|
+
data: MailboxClient__factory.createInterface().encodeFunctionData('setHook', [constants.AddressZero]),
|
|
647
|
+
});
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
const { transactions: predicateTransactions, deploysNewWrapper } = await this.createPredicateWrapperUpdateTxs(actualConfig, expectedConfig, newHookAddress);
|
|
651
|
+
// When predicate wrapper is being deployed, its setHook(aggregation) sets the final
|
|
652
|
+
// router hook and already incorporates newHookAddress inside the aggregation.
|
|
653
|
+
// Drop the intermediate setHook(newHookAddress) from hookTransactions to avoid a
|
|
654
|
+
// redundant write that would be immediately overwritten.
|
|
655
|
+
//
|
|
656
|
+
// IMPORTANT: only drop when a NEW wrapper is being deployed. The ownership-only
|
|
657
|
+
// path (deploysNewWrapper=false) must not suppress the hook update even though
|
|
658
|
+
// predicateTransactions is non-empty.
|
|
659
|
+
const effectiveHookTransactions = hookTransactions.length > 0 && deploysNewWrapper
|
|
660
|
+
? hookTransactions.filter((tx) => !(tx.to &&
|
|
661
|
+
eqAddress(tx.to, this.args.addresses.deployedTokenRoute) &&
|
|
662
|
+
tx.data?.startsWith(MailboxClient__factory.createInterface().getSighash('setHook'))))
|
|
663
|
+
: hookTransactions;
|
|
664
|
+
return [...effectiveHookTransactions, ...predicateTransactions];
|
|
665
|
+
}
|
|
666
|
+
/**
|
|
667
|
+
* Searches the current on-chain hook tree for a PredicateRouterWrapper that
|
|
668
|
+
* matches by registry and policyId. Returns the wrapper address and its current
|
|
669
|
+
* on-chain owner when found, undefined otherwise.
|
|
670
|
+
*
|
|
671
|
+
* Uses unbounded recursion into aggregation hooks (consistent with
|
|
672
|
+
* EvmTokenAdapter.findPredicateWrapperInHook and EvmWarpRouteReader.findPredicateAddressInHook).
|
|
673
|
+
*/
|
|
674
|
+
async findDeployedPredicateWrapper(actualConfig, expectedPredicateConfig) {
|
|
675
|
+
const hookAddress = derivedHookAddress(actualConfig);
|
|
676
|
+
if (!hookAddress || isZeroishAddress(hookAddress))
|
|
677
|
+
return undefined;
|
|
678
|
+
try {
|
|
679
|
+
const provider = this.multiProvider.getProvider(this.domainId);
|
|
680
|
+
return await this.searchPredicateInHook(hookAddress, provider, expectedPredicateConfig);
|
|
681
|
+
}
|
|
682
|
+
catch (error) {
|
|
683
|
+
this.logger.debug({ chain: this.chainName, error }, 'Error checking predicate wrapper deployment');
|
|
684
|
+
}
|
|
685
|
+
return undefined;
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* Recursively searches a hook tree for a matching PredicateRouterWrapper.
|
|
689
|
+
* Descends into StaticAggregationHook sub-hooks without depth limit.
|
|
690
|
+
*/
|
|
691
|
+
async searchPredicateInHook(hookAddr, provider, expectedPredicateConfig) {
|
|
692
|
+
const match = await this.matchPredicateWrapper(hookAddr, provider, expectedPredicateConfig);
|
|
693
|
+
if (match)
|
|
694
|
+
return match;
|
|
695
|
+
let subHooks;
|
|
696
|
+
try {
|
|
697
|
+
subHooks = await StaticAggregationHook__factory.connect(hookAddr, provider).hooks('0x');
|
|
698
|
+
}
|
|
699
|
+
catch {
|
|
700
|
+
// Any call failure means hookAddr is not a StaticAggregationHook.
|
|
701
|
+
// HyperlaneSmartProvider wraps CALL_EXCEPTION as "Invalid response from provider"
|
|
702
|
+
// with code: undefined, so checking error.code is insufficient.
|
|
703
|
+
return undefined;
|
|
704
|
+
}
|
|
705
|
+
for (const subHook of subHooks) {
|
|
706
|
+
const found = await this.searchPredicateInHook(subHook, provider, expectedPredicateConfig);
|
|
707
|
+
if (found)
|
|
708
|
+
return found;
|
|
709
|
+
}
|
|
710
|
+
return undefined;
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* Checks whether a single hook address is a PredicateRouterWrapper matching
|
|
714
|
+
* the warp route and expected config. Returns the match or undefined.
|
|
715
|
+
*/
|
|
716
|
+
async matchPredicateWrapper(hookAddr, provider, expectedPredicateConfig) {
|
|
717
|
+
try {
|
|
718
|
+
const predicateWrapper = PredicateRouterWrapper__factory.connect(hookAddr, provider);
|
|
719
|
+
// Verify identity: warpRoute + hookType confirm it's a PredicateRouterWrapper
|
|
720
|
+
// for this route. Then compare registry + policyId so config rotations
|
|
721
|
+
// (e.g. changing compliance policy) trigger a redeploy rather than silently no-op.
|
|
722
|
+
const [warpRoute, hookType, onchainRegistry, onchainPolicyId, onchainOwner,] = await Promise.all([
|
|
723
|
+
predicateWrapper.warpRoute(),
|
|
724
|
+
predicateWrapper.hookType(),
|
|
725
|
+
predicateWrapper.getRegistry(),
|
|
726
|
+
predicateWrapper.getPolicyID(),
|
|
727
|
+
predicateWrapper.owner(),
|
|
728
|
+
]);
|
|
729
|
+
if (eqAddress(warpRoute, this.args.addresses.deployedTokenRoute) &&
|
|
730
|
+
hookType === OnchainHookType.PREDICATE_ROUTER_WRAPPER &&
|
|
731
|
+
eqAddress(onchainRegistry, expectedPredicateConfig.predicateRegistry) &&
|
|
732
|
+
onchainPolicyId === expectedPredicateConfig.policyId) {
|
|
733
|
+
return { address: hookAddr, onchainOwner };
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
catch {
|
|
737
|
+
// Any call failure means hookAddr is not a PredicateRouterWrapper.
|
|
738
|
+
// HyperlaneSmartProvider wraps CALL_EXCEPTION as "Invalid response from provider"
|
|
739
|
+
// with code: undefined, so checking error.code === 'CALL_EXCEPTION' is insufficient.
|
|
740
|
+
return undefined;
|
|
741
|
+
}
|
|
742
|
+
return undefined;
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* Check if predicate wrapper is already deployed with fully matching config
|
|
746
|
+
* (registry, policyId, and owner).
|
|
747
|
+
*
|
|
748
|
+
* @param actualConfig - The on-chain router configuration.
|
|
749
|
+
* @param expectedPredicateConfig - The expected predicate wrapper configuration.
|
|
750
|
+
* @returns True if wrapper is deployed with all fields matching, false otherwise.
|
|
751
|
+
*/
|
|
752
|
+
async isPredicateWrapperDeployed(actualConfig, expectedPredicateConfig) {
|
|
753
|
+
const found = await this.findDeployedPredicateWrapper(actualConfig, expectedPredicateConfig);
|
|
754
|
+
return (found !== undefined &&
|
|
755
|
+
eqAddress(found.onchainOwner, expectedPredicateConfig.owner));
|
|
756
|
+
}
|
|
757
|
+
/**
|
|
758
|
+
* Create transactions to deploy predicate wrapper and update hook.
|
|
759
|
+
*
|
|
760
|
+
* @param actualConfig - The on-chain router configuration.
|
|
761
|
+
* @param expectedConfig - The expected token router configuration.
|
|
762
|
+
* @returns transactions to execute and whether a new wrapper is being deployed.
|
|
763
|
+
* deploysNewWrapper=true means the predicate emits its own setHook(aggregation)
|
|
764
|
+
* that supersedes any hook update in the same batch.
|
|
765
|
+
*/
|
|
766
|
+
async createPredicateWrapperUpdateTxs(actualConfig, expectedConfig, pendingHookAddress) {
|
|
767
|
+
// Only proceed if expectedConfig has predicateWrapper
|
|
768
|
+
if (!('predicateWrapper' in expectedConfig) ||
|
|
769
|
+
!expectedConfig.predicateWrapper) {
|
|
770
|
+
return { transactions: [], deploysNewWrapper: false };
|
|
771
|
+
}
|
|
772
|
+
const predicateWrapperConfig = PredicateWrapperConfigSchema.parse(expectedConfig.predicateWrapper);
|
|
773
|
+
// Check if a wrapper matching by registry+policyId already exists on-chain.
|
|
774
|
+
// If so, only a transferOwnership tx is needed (not a full redeploy).
|
|
775
|
+
const existingWrapper = await this.findDeployedPredicateWrapper(actualConfig, predicateWrapperConfig);
|
|
776
|
+
if (existingWrapper) {
|
|
777
|
+
if (eqAddress(existingWrapper.onchainOwner, predicateWrapperConfig.owner)) {
|
|
778
|
+
this.logger.debug({ chain: this.chainName }, 'Predicate wrapper already deployed with matching config, skipping');
|
|
779
|
+
return { transactions: [], deploysNewWrapper: false };
|
|
780
|
+
}
|
|
781
|
+
// Owner changed — generate a transferOwnership tx without redeploying.
|
|
782
|
+
this.logger.debug({ chain: this.chainName, wrapper: existingWrapper.address }, 'Predicate wrapper owner changed, generating transferOwnership transaction');
|
|
783
|
+
const transferOwnershipTx = await PredicateRouterWrapper__factory.connect(existingWrapper.address, this.multiProvider.getProvider(this.chainName)).populateTransaction.transferOwnership(predicateWrapperConfig.owner);
|
|
784
|
+
return {
|
|
785
|
+
transactions: [
|
|
786
|
+
{
|
|
787
|
+
...transferOwnershipTx,
|
|
788
|
+
chainId: this.chainId,
|
|
789
|
+
annotation: `Transferring predicate wrapper ownership to ${predicateWrapperConfig.owner}`,
|
|
790
|
+
},
|
|
791
|
+
],
|
|
792
|
+
deploysNewWrapper: false,
|
|
793
|
+
};
|
|
794
|
+
}
|
|
795
|
+
const staticAggregationHookFactory = this.args.addresses.staticAggregationHookFactory;
|
|
796
|
+
if (!staticAggregationHookFactory) {
|
|
797
|
+
throw new Error(`staticAggregationHookFactory not found for ${this.chainName}. Ensure proxy factories are deployed.`);
|
|
798
|
+
}
|
|
799
|
+
const signer = this.multiProvider.getSigner(this.chainName);
|
|
800
|
+
const factory = StaticAggregationHookFactory__factory.connect(staticAggregationHookFactory, signer);
|
|
801
|
+
const predicateDeployer = new PredicateWrapperDeployer(this.multiProvider, factory, this.logger);
|
|
802
|
+
// Deploy predicate wrapper and get addresses.
|
|
803
|
+
// Pass token type to deploy the appropriate wrapper.
|
|
804
|
+
// Pass pendingHookAddress (if any) so deployAndConfigure uses the post-update hook
|
|
805
|
+
// instead of reading the stale on-chain value when hook and predicate wrapper are
|
|
806
|
+
// both being changed in the same update() call.
|
|
807
|
+
const result = await predicateDeployer.deployAndConfigure(this.chainName, this.args.addresses.deployedTokenRoute, predicateWrapperConfig, expectedConfig.type, pendingHookAddress);
|
|
808
|
+
this.logger.info({
|
|
809
|
+
chain: this.chainName,
|
|
810
|
+
wrapper: result.wrapperAddress,
|
|
811
|
+
aggregationHook: result.aggregationHookAddress,
|
|
812
|
+
}, 'Predicate wrapper deployed, returning setHook transaction');
|
|
813
|
+
return {
|
|
814
|
+
transactions: [
|
|
815
|
+
{
|
|
816
|
+
annotation: 'Set aggregation hook wrapping PredicateRouterWrapper on warp route',
|
|
817
|
+
chainId: this.chainId,
|
|
818
|
+
...result.setHookTx,
|
|
819
|
+
},
|
|
820
|
+
],
|
|
821
|
+
deploysNewWrapper: true,
|
|
822
|
+
};
|
|
580
823
|
}
|
|
581
824
|
/**
|
|
582
825
|
* Create transactions to update token fee configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EvmWarpModule.js","sourceRoot":"","sources":["../../src/token/EvmWarpModule.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EvmWarpModule.js","sourceRoot":"","sources":["../../src/token/EvmWarpModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,12 @@ export declare class EvmWarpRouteReader extends EvmRouterReader {
|
|
|
33
33
|
*
|
|
34
34
|
*/
|
|
35
35
|
deriveWarpRouteConfig(warpRouteAddress: Address): Promise<DerivedTokenRouterConfig>;
|
|
36
|
+
/**
|
|
37
|
+
* Searches the derived hook tree for a PredicateRouterWrapper and, if found,
|
|
38
|
+
* reads its on-chain config (registry, policyId, owner).
|
|
39
|
+
*/
|
|
40
|
+
private derivePredicateWrapperConfig;
|
|
41
|
+
private findPredicateAddressInHook;
|
|
36
42
|
fetchTokenFee(routerAddress: Address, destinations?: number[], crossCollateralRouters?: Record<string, string[]>): Promise<DerivedTokenFeeConfig | undefined>;
|
|
37
43
|
getContractVerificationStatus(chain: ChainName, address: Address): Promise<Record<string, ContractVerificationStatus>>;
|
|
38
44
|
getOwnerStatus(chain: ChainName, address: Address): Promise<Record<string, OwnerStatus>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EvmWarpRouteReader.d.ts","sourceRoot":"","sources":["../../src/token/EvmWarpRouteReader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EvmWarpRouteReader.d.ts","sourceRoot":"","sources":["../../src/token/EvmWarpRouteReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { compareVersions } from 'compare-versions';
|
|
2
2
|
import { BigNumber, Contract, constants } from 'ethers';
|
|
3
|
-
import { CrossCollateralRouter__factory, EverclearTokenBridge__factory, HypERC20Collateral__factory, HypERC20__factory, HypERC4626Collateral__factory, HypERC4626OwnerCollateral__factory, HypERC4626__factory, HypXERC20Lockbox__factory, HypXERC20__factory, IFiatToken__factory, IMessageTransmitter__factory, ISafe__factory, IWETH__factory, IXERC20__factory, MovableCollateralRouter__factory, OpL1NativeTokenBridge__factory, OpL2NativeTokenBridge__factory, Ownable__factory, PackageVersioned__factory, ProxyAdmin__factory, TokenBridgeOft__factory, TokenBridgeCctpBase__factory, TokenBridgeCctpV2__factory, TokenBridgeDepositAddress__factory, TokenRouter__factory, } from '@hyperlane-xyz/core';
|
|
3
|
+
import { CrossCollateralRouter__factory, EverclearTokenBridge__factory, PredicateRouterWrapper__factory, HypERC20Collateral__factory, HypERC20__factory, HypERC4626Collateral__factory, HypERC4626OwnerCollateral__factory, HypERC4626__factory, HypXERC20Lockbox__factory, HypXERC20__factory, IFiatToken__factory, IMessageTransmitter__factory, ISafe__factory, IWETH__factory, IXERC20__factory, MovableCollateralRouter__factory, OpL1NativeTokenBridge__factory, OpL2NativeTokenBridge__factory, Ownable__factory, PackageVersioned__factory, ProxyAdmin__factory, TokenBridgeOft__factory, TokenBridgeCctpBase__factory, TokenBridgeCctpV2__factory, TokenBridgeDepositAddress__factory, TokenRouter__factory, } from '@hyperlane-xyz/core';
|
|
4
4
|
import { buildArtifact as coreBuildArtifact } from '@hyperlane-xyz/core/buildArtifact.js';
|
|
5
5
|
import { arrayToObject, assert, eqAddress, getLogLevel, isZeroish, isZeroishAddress, objFilter, objMap, promiseObjAll, rootLogger, } from '@hyperlane-xyz/utils';
|
|
6
6
|
import { ExplorerLicenseType } from '../block-explorer/etherscan.js';
|
|
@@ -10,6 +10,7 @@ import { ContractVerifier } from '../deploy/verify/ContractVerifier.js';
|
|
|
10
10
|
import { VerifyContractTypes } from '../deploy/verify/types.js';
|
|
11
11
|
import { EvmTokenFeeReader, } from '../fee/EvmTokenFeeReader.js';
|
|
12
12
|
import { EvmHookReader } from '../hook/EvmHookReader.js';
|
|
13
|
+
import { HookType, } from '../hook/types.js';
|
|
13
14
|
import { EvmIsmReader } from '../ism/EvmIsmReader.js';
|
|
14
15
|
import { EvmRouterReader } from '../router/EvmRouterReader.js';
|
|
15
16
|
import { isProxy, proxyAdmin, proxyImplementation } from './../deploy/proxy.js';
|
|
@@ -166,6 +167,7 @@ export class EvmWarpRouteReader extends EvmRouterReader {
|
|
|
166
167
|
'interchainSecurityModule' in routerConfig) {
|
|
167
168
|
routerConfig.interchainSecurityModule = constants.AddressZero;
|
|
168
169
|
}
|
|
170
|
+
const predicateWrapper = await this.derivePredicateWrapperConfig(routerConfig.hook);
|
|
169
171
|
const derivedConfig = {
|
|
170
172
|
...routerConfig,
|
|
171
173
|
...tokenConfig,
|
|
@@ -174,9 +176,40 @@ export class EvmWarpRouteReader extends EvmRouterReader {
|
|
|
174
176
|
proxyAdmin,
|
|
175
177
|
destinationGas,
|
|
176
178
|
tokenFee,
|
|
179
|
+
...(predicateWrapper && { predicateWrapper }),
|
|
177
180
|
};
|
|
178
181
|
return derivedConfig;
|
|
179
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Searches the derived hook tree for a PredicateRouterWrapper and, if found,
|
|
185
|
+
* reads its on-chain config (registry, policyId, owner).
|
|
186
|
+
*/
|
|
187
|
+
async derivePredicateWrapperConfig(hook) {
|
|
188
|
+
const predicateAddress = this.findPredicateAddressInHook(hook);
|
|
189
|
+
if (!predicateAddress)
|
|
190
|
+
return undefined;
|
|
191
|
+
const wrapper = PredicateRouterWrapper__factory.connect(predicateAddress, this.provider);
|
|
192
|
+
const [predicateRegistry, policyId, owner] = await Promise.all([
|
|
193
|
+
wrapper.getRegistry(),
|
|
194
|
+
wrapper.getPolicyID(),
|
|
195
|
+
wrapper.owner(),
|
|
196
|
+
]);
|
|
197
|
+
return { predicateRegistry, policyId, owner };
|
|
198
|
+
}
|
|
199
|
+
findPredicateAddressInHook(hook) {
|
|
200
|
+
if (!hook || typeof hook === 'string')
|
|
201
|
+
return undefined;
|
|
202
|
+
if (hook.type === HookType.PREDICATE)
|
|
203
|
+
return hook.address;
|
|
204
|
+
if (hook.type === HookType.AGGREGATION) {
|
|
205
|
+
for (const sub of hook.hooks) {
|
|
206
|
+
const found = this.findPredicateAddressInHook(sub);
|
|
207
|
+
if (found)
|
|
208
|
+
return found;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
180
213
|
async fetchTokenFee(routerAddress, destinations, crossCollateralRouters) {
|
|
181
214
|
const TokenRouter = TokenRouter__factory.connect(routerAddress, this.provider);
|
|
182
215
|
const [packageVersion, tokenFee] = await Promise.all([
|