import { ProtocolType } from '@hyperlane-xyz/provider-sdk'; import { IToken } from '../token/IToken.js'; import { TokenAmount } from '../token/TokenAmount.js'; import { ChainNameOrId } from '../types.js'; import type { WarpCore } from '../warp/WarpCore.js'; import { WarpTypedTransaction } from '../warp/types.js'; import type { QuotedTransferProvider } from './QuotedTransferProvider.js'; import { QuotedCallsParams } from './types.js'; /** * EVM implementation of `QuotedTransferProvider`. Wraps the on-chain * `QuotedCalls` contract: signed quotes + token pull + transferRemote + sweep * are encoded into a single atomic `execute()` calldata. * * The body of this class is the EVM-specific logic previously inlined in * `WarpCore.getQuotedCallsTransferTxs` + `WarpCore.resolveQuotedCallsParams` + * `WarpCore.getQuotedTransferFee`. WarpCore now dispatches through the * `QuotedTransferProvider` interface, with this class handling all EVM * concerns. */ export declare class EvmQuotedTransferProvider implements QuotedTransferProvider { private readonly params; readonly protocol = ProtocolType.Ethereum; constructor(params: QuotedCallsParams); /** * Runs the `QuotedCalls.quoteExecute` eth_call and returns the raw decoded * per-command `Quote[][]` plus the resolved transfer params. Shared between * the public display-time and submit-time paths so both hit the same * code; eth_call is read-only and deterministic for a given * `(quotes, clientSalt, block)`, so display and submit will compute the * same priced fees. */ private runQuoteExecute; /** * Fee-quoting eth_call. Returns the priced display tuple matching * `getInterchainTransferFee` shape. */ getQuotedTransferFee({ warpCore, originTokenAmount, destination, sender, recipient, destinationToken, }: { warpCore: WarpCore; originTokenAmount: TokenAmount; destination: ChainNameOrId; sender: string; recipient: string; destinationToken?: IToken; }): Promise<{ igpQuote: TokenAmount; tokenFeeQuote?: TokenAmount; }>; buildQuotedTransferTxs({ warpCore, originTokenAmount, destination, sender, recipient, destinationToken, }: { warpCore: WarpCore; originTokenAmount: TokenAmount; destination: ChainNameOrId; sender: string; recipient: string; destinationToken?: IToken; }): Promise>; /** * Build the params struct shared by `buildQuoteCalldata` / * `buildExecuteCalldata`. Performs EVM/non-NFT preconditions and resolves * the on-chain token address + (optional) cross-collateral target router. */ private resolveExecuteParams; } //# sourceMappingURL=EvmQuotedTransferProvider.d.ts.map