@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.
Files changed (116) hide show
  1. package/dist/consts/testChains.d.ts +2 -2
  2. package/dist/consts/testChains.d.ts.map +1 -1
  3. package/dist/consts/testChains.js +21 -21
  4. package/dist/consts/testChains.js.map +1 -1
  5. package/dist/core/EvmCoreModule.d.ts.map +1 -1
  6. package/dist/core/EvmCoreModule.js +2 -1
  7. package/dist/core/EvmCoreModule.js.map +1 -1
  8. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  9. package/dist/core/HyperlaneCoreDeployer.js +1 -0
  10. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  11. package/dist/core/types.d.ts +124 -22
  12. package/dist/core/types.d.ts.map +1 -1
  13. package/dist/deploy/warp.d.ts.map +1 -1
  14. package/dist/deploy/warp.js +3 -1
  15. package/dist/deploy/warp.js.map +1 -1
  16. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  17. package/dist/hook/EvmHookReader.js +4 -0
  18. package/dist/hook/EvmHookReader.js.map +1 -1
  19. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  20. package/dist/hook/HyperlaneHookDeployer.js +19 -10
  21. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  22. package/dist/hook/types.d.ts +118 -17
  23. package/dist/hook/types.d.ts.map +1 -1
  24. package/dist/hook/types.js +14 -0
  25. package/dist/hook/types.js.map +1 -1
  26. package/dist/hook/updates.d.ts +4 -1
  27. package/dist/hook/updates.d.ts.map +1 -1
  28. package/dist/hook/updates.js +1 -1
  29. package/dist/hook/updates.js.map +1 -1
  30. package/dist/hook/utils.d.ts +7 -1
  31. package/dist/hook/utils.d.ts.map +1 -1
  32. package/dist/hook/utils.js +18 -0
  33. package/dist/hook/utils.js.map +1 -1
  34. package/dist/ica/types.d.ts +36 -6
  35. package/dist/ica/types.d.ts.map +1 -1
  36. package/dist/index.d.ts +5 -3
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +5 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -1
  41. package/dist/metadata/ChainMetadataResolver.js +1 -13
  42. package/dist/metadata/ChainMetadataResolver.js.map +1 -1
  43. package/dist/metadata/chainIdUtils.d.ts +8 -0
  44. package/dist/metadata/chainIdUtils.d.ts.map +1 -0
  45. package/dist/metadata/chainIdUtils.js +33 -0
  46. package/dist/metadata/chainIdUtils.js.map +1 -0
  47. package/dist/metadata/chainIdUtils.test.d.ts +2 -0
  48. package/dist/metadata/chainIdUtils.test.d.ts.map +1 -0
  49. package/dist/metadata/chainIdUtils.test.js +45 -0
  50. package/dist/metadata/chainIdUtils.test.js.map +1 -0
  51. package/dist/predicate/PredicateApiClient.d.ts +45 -0
  52. package/dist/predicate/PredicateApiClient.d.ts.map +1 -0
  53. package/dist/predicate/PredicateApiClient.js +66 -0
  54. package/dist/predicate/PredicateApiClient.js.map +1 -0
  55. package/dist/predicate/PredicateApiClient.test.d.ts +2 -0
  56. package/dist/predicate/PredicateApiClient.test.d.ts.map +1 -0
  57. package/dist/predicate/PredicateApiClient.test.js +108 -0
  58. package/dist/predicate/PredicateApiClient.test.js.map +1 -0
  59. package/dist/predicate/PredicateDeployer.d.ts +56 -0
  60. package/dist/predicate/PredicateDeployer.d.ts.map +1 -0
  61. package/dist/predicate/PredicateDeployer.hardhat-test.d.ts +2 -0
  62. package/dist/predicate/PredicateDeployer.hardhat-test.d.ts.map +1 -0
  63. package/dist/predicate/PredicateDeployer.hardhat-test.js +209 -0
  64. package/dist/predicate/PredicateDeployer.hardhat-test.js.map +1 -0
  65. package/dist/predicate/PredicateDeployer.js +218 -0
  66. package/dist/predicate/PredicateDeployer.js.map +1 -0
  67. package/dist/router/types.d.ts +54 -9
  68. package/dist/router/types.d.ts.map +1 -1
  69. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +6 -6
  70. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -1
  71. package/dist/test/testUtils.d.ts +1 -1
  72. package/dist/test/testUtils.d.ts.map +1 -1
  73. package/dist/test/testUtils.js +1 -0
  74. package/dist/test/testUtils.js.map +1 -1
  75. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js +4 -4
  76. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js.map +1 -1
  77. package/dist/token/EvmWarpModule.d.ts +55 -0
  78. package/dist/token/EvmWarpModule.d.ts.map +1 -1
  79. package/dist/token/EvmWarpModule.hardhat-test.js +29 -0
  80. package/dist/token/EvmWarpModule.hardhat-test.js.map +1 -1
  81. package/dist/token/EvmWarpModule.js +264 -21
  82. package/dist/token/EvmWarpModule.js.map +1 -1
  83. package/dist/token/EvmWarpRouteReader.d.ts +6 -0
  84. package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
  85. package/dist/token/EvmWarpRouteReader.js +34 -1
  86. package/dist/token/EvmWarpRouteReader.js.map +1 -1
  87. package/dist/token/TokenMetadata.d.ts.map +1 -1
  88. package/dist/token/TokenMetadata.js +2 -3
  89. package/dist/token/TokenMetadata.js.map +1 -1
  90. package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts +2 -8
  91. package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts.map +1 -1
  92. package/dist/token/adapters/EvmCrossCollateralAdapter.js +23 -4
  93. package/dist/token/adapters/EvmCrossCollateralAdapter.js.map +1 -1
  94. package/dist/token/adapters/EvmTokenAdapter.d.ts +21 -4
  95. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
  96. package/dist/token/adapters/EvmTokenAdapter.js +191 -22
  97. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
  98. package/dist/token/adapters/ITokenAdapter.d.ts +10 -0
  99. package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
  100. package/dist/token/adapters/ITokenAdapter.js +8 -0
  101. package/dist/token/adapters/ITokenAdapter.js.map +1 -1
  102. package/dist/token/deploy.d.ts +4 -1
  103. package/dist/token/deploy.d.ts.map +1 -1
  104. package/dist/token/deploy.js +30 -1
  105. package/dist/token/deploy.js.map +1 -1
  106. package/dist/token/types.d.ts +4427 -27
  107. package/dist/token/types.d.ts.map +1 -1
  108. package/dist/token/types.js +19 -0
  109. package/dist/token/types.js.map +1 -1
  110. package/dist/warp/WarpCore.d.ts +39 -19
  111. package/dist/warp/WarpCore.d.ts.map +1 -1
  112. package/dist/warp/WarpCore.js +149 -82
  113. package/dist/warp/WarpCore.js.map +1 -1
  114. package/dist/warp/WarpCore.test.js +58 -0
  115. package/dist/warp/WarpCore.test.js.map +1 -1
  116. package/package.json +10 -10
@@ -1,8 +1,9 @@
1
1
  import { BigNumber, constants as ethersConstants, } from 'ethers';
2
- import { ERC20__factory, ERC4626__factory, HypERC20Collateral__factory, HypERC20__factory, HypERC4626Collateral__factory, HypERC4626__factory, HypXERC20Lockbox__factory, HypXERC20__factory, IFiatToken__factory, ITokenBridge__factory, IXERC20VS__factory, IXERC20__factory, MovableCollateralRouter__factory, TokenRouter__factory, } from '@hyperlane-xyz/core';
2
+ import { ERC20__factory, ERC4626__factory, HypERC20Collateral__factory, HypERC20__factory, HypERC4626Collateral__factory, HypERC4626__factory, HypXERC20Lockbox__factory, HypXERC20__factory, IFiatToken__factory, IPostDispatchHook__factory, ITokenBridge__factory, IXERC20VS__factory, IXERC20__factory, MovableCollateralRouter__factory, PredicateRouterWrapper__factory, StaticAggregationHook__factory, TokenRouter__factory, } from '@hyperlane-xyz/core';
3
3
  import { LazyAsync, ProtocolType, ZERO_ADDRESS_HEX_32, addressToByteHexString, addressToBytes32, assert, bytes32ToAddress, convertToProtocolAddress, eqAddress, isNullish, isZeroishAddress, normalizeAddress, strip0x, } from '@hyperlane-xyz/utils';
4
4
  import { BaseEvmAdapter } from '../../app/MultiProtocolApp.js';
5
5
  import { UIN256_MAX_VALUE } from '../../consts/numbers.js';
6
+ import { OnchainHookType } from '../../hook/types.js';
6
7
  import { isValidContractVersion } from '../../utils/contract.js';
7
8
  import { buildBlockTagOverrides } from './utils.js';
8
9
  // Ensures an address is in EVM hex format (e.g. converts Tron bs58 addresses)
@@ -99,6 +100,10 @@ export class EvmHypSyntheticAdapter extends EvmTokenAdapter {
99
100
  multiProvider;
100
101
  addresses;
101
102
  contractFactory;
103
+ predicateWrapperAddress;
104
+ clearPredicateCache() {
105
+ this.predicateWrapperAddress = undefined;
106
+ }
102
107
  constructor(chainName, multiProvider, addresses, contractFactory = HypERC20__factory) {
103
108
  super(chainName, multiProvider, addresses, contractFactory);
104
109
  this.chainName = chainName;
@@ -107,17 +112,100 @@ export class EvmHypSyntheticAdapter extends EvmTokenAdapter {
107
112
  this.contractFactory = contractFactory;
108
113
  }
109
114
  async isApproveRequired(owner, spender, weiAmountOrId) {
110
- // transferRemote burns directly from msg.sender — no approval needed.
111
- // External spenders (e.g. QuotedCalls) need standard ERC20 approval.
112
- if (eqAddress(spender, this.addresses.token))
113
- return false;
115
+ if (eqAddress(spender, this.addresses.token)) {
116
+ // Synthetics with PredicateWrapper need approval to the wrapper instead.
117
+ // Without a wrapper, transferRemote burns directly from msg.sender — no approval needed.
118
+ const predicateWrapper = await this.getPredicateWrapperAddress();
119
+ if (!predicateWrapper)
120
+ return false;
121
+ const allowance = await this.contract.allowance(toEvmAddress(owner), predicateWrapper);
122
+ return allowance.lt(weiAmountOrId);
123
+ }
124
+ // External spenders (e.g. QuotedCalls) get the standard ERC20 allowance check.
114
125
  return super.isApproveRequired(owner, spender, weiAmountOrId);
115
126
  }
116
127
  async isRevokeApprovalRequired(owner, spender) {
117
- if (eqAddress(spender, this.addresses.token))
118
- return false;
128
+ if (eqAddress(spender, this.addresses.token)) {
129
+ // When a predicate wrapper is present, allowance was granted to the wrapper.
130
+ // Check whether the wrapper has a non-zero allowance that must be revoked first
131
+ // (relevant for USDT-like tokens that require zeroing before re-approval).
132
+ const predicateWrapper = await this.getPredicateWrapperAddress();
133
+ if (!predicateWrapper)
134
+ return false;
135
+ return super.isRevokeApprovalRequired(owner, predicateWrapper);
136
+ }
119
137
  return super.isRevokeApprovalRequired(owner, spender);
120
138
  }
139
+ async populateApproveTx(params) {
140
+ if (eqAddress(params.recipient, this.addresses.token)) {
141
+ // Synthetics with PredicateWrapper approve the wrapper, not the route contract
142
+ const predicateWrapper = await this.getPredicateWrapperAddress();
143
+ if (predicateWrapper) {
144
+ return this.contract.populateTransaction.approve(predicateWrapper, params.weiAmountOrId.toString());
145
+ }
146
+ }
147
+ // External spender or no predicate wrapper — standard ERC20 approve
148
+ return super.populateApproveTx(params);
149
+ }
150
+ async getPredicateWrapperAddress() {
151
+ if (this.predicateWrapperAddress !== undefined) {
152
+ return this.predicateWrapperAddress;
153
+ }
154
+ const hookAddress = await this.contract.hook();
155
+ if (hookAddress === ethersConstants.AddressZero) {
156
+ this.predicateWrapperAddress = null;
157
+ return null;
158
+ }
159
+ const provider = this.getProvider();
160
+ const warpRouteAddress = this.addresses.token.toLowerCase();
161
+ // findPredicateWrapperInHook returns null when the hook structure contains no
162
+ // matching wrapper (a confirmed structural absence). Any exception here is an
163
+ // unexpected RPC/network failure — don't cache null so the next call can retry.
164
+ const foundWrapper = await this.findPredicateWrapperInHook(hookAddress, warpRouteAddress, provider);
165
+ this.predicateWrapperAddress = foundWrapper;
166
+ return this.predicateWrapperAddress;
167
+ }
168
+ async findPredicateWrapperInHook(hookAddress, warpRouteAddress, provider) {
169
+ const hook = IPostDispatchHook__factory.connect(hookAddress, provider);
170
+ let hookType;
171
+ try {
172
+ hookType = await hook.hookType();
173
+ }
174
+ catch (error) {
175
+ // CALL_EXCEPTION means the contract at hookAddress doesn't implement hookType()
176
+ // (e.g. an old or incompatible hook). Treat as "no wrapper here".
177
+ // Any other error (network timeout, RPC failure) is unexpected — rethrow.
178
+ if (error instanceof Error &&
179
+ 'code' in error &&
180
+ error.code === 'CALL_EXCEPTION')
181
+ return null;
182
+ throw error;
183
+ }
184
+ if (hookType === OnchainHookType.PREDICATE_ROUTER_WRAPPER) {
185
+ const wrapper = PredicateRouterWrapper__factory.connect(hookAddress, provider);
186
+ const warpRouteFromWrapper = await wrapper.warpRoute();
187
+ const matches = warpRouteFromWrapper.toLowerCase() === warpRouteAddress;
188
+ if (matches) {
189
+ return hookAddress;
190
+ }
191
+ }
192
+ if (hookType === OnchainHookType.AGGREGATION) {
193
+ const aggregationHook = StaticAggregationHook__factory.connect(hookAddress, provider);
194
+ const subHooks = await aggregationHook.hooks('0x');
195
+ for (const subHook of subHooks) {
196
+ const found = await this.findPredicateWrapperInHook(subHook, warpRouteAddress, provider);
197
+ if (found) {
198
+ return found;
199
+ }
200
+ }
201
+ }
202
+ // Known constraint: recursion only descends into AGGREGATION hooks.
203
+ // FALLBACK_ROUTING, DOMAIN_ROUTING, and AMOUNT_ROUTING hooks are not traversed.
204
+ // In practice this is fine because PredicateWrapperDeployer always places the
205
+ // wrapper inside a StaticAggregationHook. A wrapper nested inside a routing hook
206
+ // would not be detected and predicate support would silently degrade to disabled.
207
+ return null;
208
+ }
121
209
  getDomains() {
122
210
  return this.contract.domains();
123
211
  }
@@ -183,7 +271,51 @@ export class EvmHypSyntheticAdapter extends EvmTokenAdapter {
183
271
  tokenFeeQuote,
184
272
  };
185
273
  }
186
- async populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }, nativeValue = 0n) {
274
+ /**
275
+ * Check if this warp route supports Predicate attestations
276
+ * @returns True if a PredicateRouterWrapper is configured on the hook
277
+ */
278
+ async supportsAttestation() {
279
+ const wrapperAddress = await this.getPredicateWrapperAddress();
280
+ return wrapperAddress !== null;
281
+ }
282
+ async populatePredicateTransferRemoteTx(params, nativeValue) {
283
+ const { weiAmountOrId, destination, recipient, attestation } = params;
284
+ assert(attestation, 'attestation is required');
285
+ const predicateWrapperAddress = await this.getPredicateWrapperAddress();
286
+ if (!predicateWrapperAddress) {
287
+ throw new Error('Attestation provided but no PredicateRouterWrapper detected on warp route hook. ' +
288
+ 'Attestations can only be used with routes that have a PredicateRouterWrapper configured.');
289
+ }
290
+ let { interchainGas } = params;
291
+ if (!interchainGas) {
292
+ interchainGas = await this.quoteTransferRemoteGas({
293
+ destination,
294
+ recipient,
295
+ amount: BigInt(weiAmountOrId),
296
+ });
297
+ }
298
+ nativeValue += interchainGas.igpQuote.amount;
299
+ if (!interchainGas.tokenFeeQuote?.addressOrDenom ||
300
+ isZeroishAddress(interchainGas.tokenFeeQuote?.addressOrDenom)) {
301
+ nativeValue += interchainGas.tokenFeeQuote?.amount ?? 0n;
302
+ }
303
+ const recipBytes32 = addressToBytes32(addressToByteHexString(recipient));
304
+ const predicateWrapper = PredicateRouterWrapper__factory.connect(predicateWrapperAddress, this.getProvider());
305
+ const contractAttestation = {
306
+ uuid: attestation.uuid,
307
+ expiration: attestation.expiration,
308
+ attester: attestation.attester,
309
+ signature: attestation.signature,
310
+ };
311
+ return predicateWrapper.populateTransaction.transferRemoteWithAttestation(contractAttestation, destination, recipBytes32, weiAmountOrId, { value: nativeValue.toString() });
312
+ }
313
+ async populateTransferRemoteTx(params, nativeValue = 0n) {
314
+ const { weiAmountOrId, destination, recipient, attestation } = params;
315
+ if (attestation) {
316
+ return this.populatePredicateTransferRemoteTx(params, nativeValue);
317
+ }
318
+ let { interchainGas } = params;
187
319
  if (!interchainGas)
188
320
  interchainGas = await this.quoteTransferRemoteGas({
189
321
  destination,
@@ -241,15 +373,52 @@ class BaseEvmHypCollateralAdapter extends EvmHypSyntheticAdapter {
241
373
  getMetadata(isNft) {
242
374
  return this.getWrappedTokenAdapter().then((t) => t.getMetadata(isNft));
243
375
  }
244
- isApproveRequired(owner, spender, weiAmountOrId) {
245
- return this.getWrappedTokenAdapter().then((t) => t.isApproveRequired(owner, spender, weiAmountOrId));
376
+ async isApproveRequired(owner, spender, weiAmountOrId) {
377
+ const wrappedTokenAdapter = await this.getWrappedTokenAdapter();
378
+ let effectiveSpender = spender;
379
+ if (eqAddress(spender, this.addresses.token)) {
380
+ const predicateWrapper = await this.getPredicateWrapperAddress();
381
+ if (predicateWrapper)
382
+ effectiveSpender = predicateWrapper;
383
+ }
384
+ return wrappedTokenAdapter.isApproveRequired(owner, effectiveSpender, weiAmountOrId);
246
385
  }
247
386
  async isRevokeApprovalRequired(owner, spender) {
248
387
  const collateral = await this.getWrappedTokenAdapter();
249
- return collateral.isRevokeApprovalRequired(owner, spender);
388
+ let effectiveSpender = spender;
389
+ if (eqAddress(spender, this.addresses.token)) {
390
+ const predicateWrapper = await this.getPredicateWrapperAddress();
391
+ if (predicateWrapper)
392
+ effectiveSpender = predicateWrapper;
393
+ }
394
+ return collateral.isRevokeApprovalRequired(owner, effectiveSpender);
395
+ }
396
+ async populateApproveTx(params) {
397
+ const wrappedTokenAdapter = await this.getWrappedTokenAdapter();
398
+ let effectiveRecipient = params.recipient;
399
+ if (eqAddress(params.recipient, this.addresses.token)) {
400
+ const predicateWrapper = await this.getPredicateWrapperAddress();
401
+ if (predicateWrapper)
402
+ effectiveRecipient = predicateWrapper;
403
+ }
404
+ return wrappedTokenAdapter.populateApproveTx({
405
+ ...params,
406
+ recipient: effectiveRecipient,
407
+ });
408
+ }
409
+ /**
410
+ * Check if this warp route supports Predicate attestations
411
+ * @returns True if a PredicateRouterWrapper is configured on the hook
412
+ */
413
+ async supportsAttestation() {
414
+ const wrapperAddress = await this.getPredicateWrapperAddress();
415
+ return wrapperAddress !== null;
250
416
  }
251
- populateApproveTx(params) {
252
- return this.getWrappedTokenAdapter().then((t) => t.populateApproveTx(params));
417
+ async populateTransferRemoteTx(params, nativeValue = 0n) {
418
+ if (params.attestation) {
419
+ return this.populatePredicateTransferRemoteTx(params, nativeValue);
420
+ }
421
+ return super.populateTransferRemoteTx(params, nativeValue);
253
422
  }
254
423
  populateTransferTx(params) {
255
424
  return this.getWrappedTokenAdapter().then((t) => t.populateTransferTx(params));
@@ -588,15 +757,15 @@ export class EvmHypNativeAdapter extends EvmMovableCollateralAdapter {
588
757
  value,
589
758
  });
590
759
  }
591
- async populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }) {
592
- return super.populateTransferRemoteTx({
593
- weiAmountOrId,
594
- destination,
595
- recipient,
596
- interchainGas,
597
- },
598
- // Pass the amount as initial native value to the parent class
599
- BigInt(weiAmountOrId));
760
+ async populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, attestation, }) {
761
+ // For native tokens the token amount is itself msg.value, so pass it as the
762
+ // initial nativeValue. populatePredicateTransferRemoteTx / super both add
763
+ // IGP fees on top of this base value.
764
+ const nativeValue = BigInt(weiAmountOrId);
765
+ if (attestation) {
766
+ return this.populatePredicateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, attestation }, nativeValue);
767
+ }
768
+ return super.populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas }, nativeValue);
600
769
  }
601
770
  async getBridgedSupply(options) {
602
771
  const balance = await this.getProvider().getBalance(this.addresses.token, options?.blockTag);
@@ -1 +1 @@
1
- {"version":3,"file":"EvmTokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmTokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Keypair } from '@solana/web3.js';
2
2
  import { Address, Domain, Numberish } from '@hyperlane-xyz/utils';
3
3
  import { EthJsonRpcBlockParameterTag } from '../../metadata/chainMetadataTypes.js';
4
+ import type { PredicateAttestation } from '../../predicate/PredicateApiClient.js';
4
5
  import { TokenMetadata } from '../types.js';
5
6
  export interface TransferParams {
6
7
  weiAmountOrId: Numberish;
@@ -12,6 +13,8 @@ export interface TransferParams {
12
13
  export interface TransferRemoteParams extends TransferParams {
13
14
  destination: Domain;
14
15
  customHook?: Address;
16
+ /** Optional Predicate attestation for compliance-gated warp routes */
17
+ attestation?: PredicateAttestation;
15
18
  /** Optional extra signers for Sealevel transactions (e.g., randomWallet Keypair for dispatch PDA) */
16
19
  extraSigners?: Keypair[];
17
20
  }
@@ -23,6 +26,8 @@ export interface TransferRemoteToParams {
23
26
  interchainGas?: InterchainGasQuote;
24
27
  fromAccountOwner?: Address;
25
28
  extraSigners?: Keypair[];
29
+ /** Optional Predicate attestation for compliance-gated warp routes */
30
+ attestation?: PredicateAttestation;
26
31
  }
27
32
  export interface QuoteTransferRemoteParams {
28
33
  destination: Domain;
@@ -112,6 +117,11 @@ export interface IHypCrossCollateralAdapter<Tx> extends IHypTokenAdapter<Tx> {
112
117
  }): Promise<InterchainGasQuote>;
113
118
  populateTransferRemoteToTx(params: TransferRemoteToParams): Promise<Tx>;
114
119
  }
120
+ export interface IPredicateAwareAdapter {
121
+ getPredicateWrapperAddress(): Promise<Address | null>;
122
+ supportsAttestation(): Promise<boolean>;
123
+ }
124
+ export declare function isPredicateCapableAdapter(adapter: IHypTokenAdapter<unknown>): adapter is IHypTokenAdapter<unknown> & IPredicateAwareAdapter;
115
125
  export declare function isHypCrossCollateralAdapter(adapter: IHypTokenAdapter<unknown>): adapter is IHypCrossCollateralAdapter<unknown>;
116
126
  export interface IHypCollateralFiatAdapter<Tx> extends IHypTokenAdapter<Tx> {
117
127
  getMintLimit(): Promise<bigint>;
@@ -1 +1 @@
1
- {"version":3,"file":"ITokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/ITokenAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ITokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/ITokenAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
+ export function isPredicateCapableAdapter(adapter) {
2
+ return ('getPredicateWrapperAddress' in adapter &&
3
+ typeof adapter
4
+ .getPredicateWrapperAddress === 'function' &&
5
+ 'supportsAttestation' in adapter &&
6
+ typeof adapter
7
+ .supportsAttestation === 'function');
8
+ }
1
9
  export function isHypCrossCollateralAdapter(adapter) {
2
10
  return ('populateTransferRemoteToTx' in adapter &&
3
11
  typeof adapter.populateTransferRemoteToTx === 'function' &&
@@ -1 +1 @@
1
- {"version":3,"file":"ITokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/ITokenAdapter.ts"],"names":[],"mappings":"AAsKA,MAAM,UAAU,2BAA2B,CACzC,OAAkC;IAElC,OAAO,CACL,4BAA4B,IAAI,OAAO;QACvC,OAAO,OAAO,CAAC,0BAA0B,KAAK,UAAU;QACxD,0BAA0B,IAAI,OAAO;QACrC,OAAO,OAAO,CAAC,wBAAwB,KAAK,UAAU,CACvD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ITokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/ITokenAdapter.ts"],"names":[],"mappings":"AAgLA,MAAM,UAAU,yBAAyB,CACvC,OAAkC;IAElC,OAAO,CACL,4BAA4B,IAAI,OAAO;QACvC,OAAQ,OAAoD;aACzD,0BAA0B,KAAK,UAAU;QAC5C,qBAAqB,IAAI,OAAO;QAChC,OAAQ,OAA6C;aAClD,mBAAmB,KAAK,UAAU,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAkC;IAElC,OAAO,CACL,4BAA4B,IAAI,OAAO;QACvC,OAAO,OAAO,CAAC,0BAA0B,KAAK,UAAU;QACxD,0BAA0B,IAAI,OAAO;QACrC,OAAO,OAAO,CAAC,wBAAwB,KAAK,UAAU,CACvD,CAAC;AACJ,CAAC"}
@@ -9,7 +9,7 @@ import { ChainMap, ChainName } from '../types.js';
9
9
  import { TokenMetadataMap } from './TokenMetadataMap.js';
10
10
  import { DeployableTokenType } from './config.js';
11
11
  import { HypERC20Factories, HypERC20contracts, HypERC721Factories, TokenFactories } from './contracts.js';
12
- import { HypTokenConfig, HypTokenRouterConfig, WarpRouteDeployConfig } from './types.js';
12
+ import { HypTokenConfig, HypTokenRouterConfig, PredicateWrapperConfig, WarpRouteDeployConfig } from './types.js';
13
13
  export declare const TOKEN_INITIALIZE_SIGNATURE: (contractName: HypERC20contracts[DeployableTokenType]) => "initialize" | "initialize(address,address)" | "initialize(address,address,string[])" | "initialize(address,string[])";
14
14
  declare abstract class TokenDeployer<Factories extends TokenFactories> extends GasRouterDeployer<HypTokenRouterConfig, Factories> {
15
15
  constructor(multiProvider: MultiProvider, factories: Factories, loggerName: string, ismFactory?: HyperlaneIsmFactory, contractVerifier?: ContractVerifier, concurrentDeploy?: boolean);
@@ -26,6 +26,9 @@ declare abstract class TokenDeployer<Factories extends TokenFactories> extends G
26
26
  protected setBridgesTokenApprovals(configMap: ChainMap<HypTokenConfig>, deployedContractsMap: HyperlaneContractsMap<Factories>): Promise<void>;
27
27
  protected setEverclearFeeParams(configMap: ChainMap<HypTokenConfig>, deployedContractsMap: HyperlaneContractsMap<Factories>): Promise<void>;
28
28
  protected setEverclearOutputAssets(configMap: ChainMap<HypTokenConfig>, deployedContractsMap: HyperlaneContractsMap<Factories>): Promise<void>;
29
+ protected deployPredicateWrappers(configMap: ChainMap<HypTokenConfig & {
30
+ predicateWrapper?: PredicateWrapperConfig;
31
+ }>, deployedContractsMap: HyperlaneContractsMap<Factories>): Promise<void>;
29
32
  protected enrollCrossCollateralRouters(configMap: ChainMap<HypTokenConfig>, deployedContractsMap: HyperlaneContractsMap<Factories>): Promise<void>;
30
33
  deploy(configMap: ChainMap<HypTokenRouterConfig>): Promise<HyperlaneContractsMap<Factories & ProxiedFactories>>;
31
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { compareVersions } from 'compare-versions';
2
2
  import { BigNumber, constants } from 'ethers';
3
- import { CrossCollateralRouter__factory, ERC20__factory, EverclearTokenBridge__factory, IMessageTransmitter__factory, MovableCollateralRouter__factory, OpL1V1NativeTokenBridge__factory, OpL2NativeTokenBridge__factory, PackageVersioned__factory, TokenBridgeOft__factory, TokenBridgeCctpBase__factory, TokenBridgeCctpV2__factory, TokenBridgeDepositAddress__factory, } from '@hyperlane-xyz/core';
3
+ import { CrossCollateralRouter__factory, ERC20__factory, EverclearTokenBridge__factory, IMessageTransmitter__factory, MovableCollateralRouter__factory, OpL1V1NativeTokenBridge__factory, OpL2NativeTokenBridge__factory, PackageVersioned__factory, TokenBridgeOft__factory, TokenBridgeCctpBase__factory, TokenBridgeCctpV2__factory, TokenBridgeDepositAddress__factory, TokenRouter__factory, } from '@hyperlane-xyz/core';
4
4
  import { addressToBytes32, isEVMLike, assert, objFilter, objKeys, objMap, promiseObjAll, rootLogger, } from '@hyperlane-xyz/utils';
5
5
  import { EvmTokenFeeModule } from '../fee/EvmTokenFeeModule.js';
6
+ import { PredicateWrapperDeployer } from '../predicate/PredicateDeployer.js';
6
7
  import { GasRouterDeployer } from '../router/GasRouterDeployer.js';
7
8
  import { resolveRouterMapConfig } from '../router/types.js';
8
9
  import { normalizeScale } from '../utils/decimals.js';
@@ -402,6 +403,25 @@ class TokenDeployer extends GasRouterDeployer {
402
403
  await this.multiProvider.handleTx(chain, everclearTokenBridge.setOutputAssetsBatch(assets, overrides));
403
404
  }));
404
405
  }
406
+ async deployPredicateWrappers(configMap, deployedContractsMap) {
407
+ await promiseObjAll(objMap(configMap, async (chain, config) => {
408
+ if (!config.predicateWrapper) {
409
+ return;
410
+ }
411
+ const router = this.router(deployedContractsMap[chain]);
412
+ const factoryContracts = this.options.ismFactory?.getContracts(chain);
413
+ assert(factoryContracts?.staticAggregationHookFactory, `staticAggregationHookFactory not found for ${chain}. Ensure proxy factories are deployed.`);
414
+ const predicateDeployer = new PredicateWrapperDeployer(this.multiProvider, factoryContracts.staticAggregationHookFactory, this.logger);
415
+ // Token address is fetched from router.token() in PredicateRouterWrapper constructor.
416
+ // config.predicateWrapper.owner (from the original configMap) is used for wrapper
417
+ // ownership — it's explicit in the schema rather than read from on-chain, so it
418
+ // correctly points to the intended final owner even before transferOwnership runs.
419
+ const result = await predicateDeployer.deployAndConfigure(chain, router.address, config.predicateWrapper, config.type);
420
+ const signerRouter = TokenRouter__factory.connect(router.address, this.multiProvider.getSigner(chain));
421
+ const txOverrides = this.multiProvider.getTransactionOverrides(chain);
422
+ await this.multiProvider.handleTx(chain, signerRouter.setHook(result.aggregationHookAddress, txOverrides));
423
+ }));
424
+ }
405
425
  async enrollCrossCollateralRouters(configMap, deployedContractsMap) {
406
426
  await promiseObjAll(objMap(configMap, async (chain, config) => {
407
427
  if (!isCrossCollateralTokenConfig(config)) {
@@ -430,6 +450,14 @@ class TokenDeployer extends GasRouterDeployer {
430
450
  }));
431
451
  }
432
452
  async deploy(configMap) {
453
+ // Fail fast if any chain requires a predicate wrapper but lacks the factory.
454
+ // Checked before any on-chain work to avoid partial deployments.
455
+ for (const [chain, config] of Object.entries(configMap)) {
456
+ if (!('predicateWrapper' in config) || !config.predicateWrapper)
457
+ continue;
458
+ const factoryContracts = this.options.ismFactory?.getContracts(chain);
459
+ assert(factoryContracts?.staticAggregationHookFactory, `staticAggregationHookFactory not found for ${chain}. Ensure proxy factories are deployed.`);
460
+ }
433
461
  let tokenMetadataMap;
434
462
  try {
435
463
  tokenMetadataMap = await TokenDeployer.deriveTokenMetadata(this.multiProvider, configMap);
@@ -500,6 +528,7 @@ class TokenDeployer extends GasRouterDeployer {
500
528
  await this.setBridgesTokenApprovals(configMap, deployedContractsMap);
501
529
  await this.setEverclearFeeParams(configMap, deployedContractsMap);
502
530
  await this.setEverclearOutputAssets(configMap, deployedContractsMap);
531
+ await this.deployPredicateWrappers(configMap, deployedContractsMap);
503
532
  await this.enrollCrossCollateralRouters(configMap, deployedContractsMap);
504
533
  await super.transferOwnership(deployedContractsMap, configMap);
505
534
  return deployedContractsMap;