import { AccountMeta, PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js'; import { IgpPaymentKeys } from '../../gas/adapters/SealevelIgpAdapter.js'; import type { IHypCrossCollateralAdapter, InterchainGasQuote, QuoteTransferRemoteParams, TransferRemoteToParams } from './ITokenAdapter.js'; import { SealevelHypCollateralAdapter, type SealevelTransferBundle } from './SealevelTokenAdapter.js'; export declare class SealevelHypCrossCollateralAdapter extends SealevelHypCollateralAdapter implements IHypCrossCollateralAdapter { deriveCrossCollateralStatePda(): PublicKey; deriveCrossCollateralDispatchAuthorityPda(): PublicKey; quoteTransferRemoteToGas(params: Parameters['quoteTransferRemoteToGas']>[0]): Promise; /** * Quote a same-domain (local) CrossCollateral transfer. Local transfers make * no IGP payment, but `transfer_remote_to_local` still debits the warp fee * on-chain when fee_config is set (quoted against the destination router), so * surface it as `tokenFeeQuote` to keep cost display and balance validation * consistent with what the transaction actually charges. */ private quoteLocalTransferGas; quoteTransferRemoteGas(params: QuoteTransferRemoteParams): Promise; getTransferRemoteToRemoteKeyList({ sender, mailbox, randomWallet, igp, feeSection, igpQuotedSection, }: { sender: PublicKey; mailbox: PublicKey; randomWallet: PublicKey; igp?: IgpPaymentKeys; /** Spliced after slot 9 (dispatched message PDA) when token.fee_config is Some. */ feeSection?: AccountMeta[]; /** Spliced between the gas-payment PDA and the configured IGP account when inner Igp.fee_config is Some. */ igpQuotedSection?: AccountMeta[]; }): Promise>; simulateHandleLocalAccountMetas({ targetProgram, senderProgram, amount, recipient, payer, }: { targetProgram: PublicKey; senderProgram: PublicKey; amount: bigint; recipient: Uint8Array; payer: PublicKey; }): Promise>; getTransferRemoteToLocalKeyList({ sender, targetProgram, senderProgram, amount, recipient, feeSection, }: { sender: PublicKey; targetProgram: PublicKey; senderProgram: PublicKey; amount: bigint; recipient: Uint8Array; /** Spliced after the target program when token.fee_config is Some. */ feeSection?: AccountMeta[]; }): Promise>; /** * Sealevel-only — returns the building blocks of a `transfer_remote_to` tx * (compute-budget ixs separated from the warp ix, ALTs, fee payer, signers) * without compiling them into a `Transaction` / `VersionedTransaction`. The * composing layer (typically the offchain-quoted-transfer provider) * prepends `SubmitFeeQuote` / `SubmitIgpQuote` ixs between the compute- * budget head and the transfer ix. * * `scopedSalt` (optional) is the 32-byte `keccak256(payer || clientSalt)` * for a same-tx offchain transient quote — threaded through to the fee + * IGP cascade simulations so their PDA enumeration includes the transient * quote PDA. Matches the on-chain `scoped_salt` field. Standing-only * callers omit it. */ getTransferRemoteToIxBundle({ amount, destination, recipient, fromAccountOwner, targetRouter, extraSigners, scopedSalt, }: TransferRemoteToParams & { /** Sealevel-only — see method docs. */ scopedSalt?: Uint8Array; }): Promise; populateTransferRemoteToTx(params: TransferRemoteToParams): Promise; } //# sourceMappingURL=SealevelCrossCollateralAdapter.d.ts.map