@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
52 lines • 1.9 kB
TypeScript
import type { Address, Hex } from 'viem';
import { type Quote } from './codec.js';
import type { Permit2Data, SubmitQuoteCommand } from './types.js';
import { TokenPullMode } from './types.js';
/** Common params for both quoting and executing */
export interface QuotedTransferParams {
/** QuotedCalls contract address */
quotedCallsAddress: Address;
/** Warp route (TokenRouter) address */
warpRoute: Address;
/** Destination domain ID */
destination: number;
/** Recipient address as bytes32 */
recipient: Hex;
/** Transfer amount in token wei */
amount: bigint;
/** ERC20 token address (zeroAddress for native token routes) */
token: Address;
/** Signed quotes from fee-quoting service */
quotes: SubmitQuoteCommand[];
/** Client salt (pre-scope) */
clientSalt: Hex;
/** Target router bytes32 for cross-collateral TRANSFER_REMOTE_TO */
targetRouter?: Hex;
}
export interface QuotedCallsTransaction {
to: Address;
data: Hex;
value: bigint;
}
/**
* Build calldata for QuotedCalls.quoteExecute() — used via eth_call
* to discover fee amounts before building the real execute tx.
*
* Commands: [SUBMIT_QUOTE×N, TRANSFER_REMOTE/TRANSFER_REMOTE_TO]
*/
export declare function buildQuoteCalldata(params: QuotedTransferParams): QuotedCallsTransaction;
/**
* Build calldata for QuotedCalls.execute() using fee amounts
* from a prior quoteExecute call.
*
* Commands: [SUBMIT_QUOTE×N, TRANSFER_FROM/PERMIT2, TRANSFER_REMOTE, SWEEP]
*/
export declare function buildExecuteCalldata(params: QuotedTransferParams & {
/** Fee quotes from quoteExecute (parsed Quote[][]) */
feeQuotes: Quote[][];
/** Token pull strategy */
tokenPullMode: TokenPullMode;
/** Required when tokenPullMode === Permit2 */
permit2Data?: Permit2Data;
}): QuotedCallsTransaction;
//# sourceMappingURL=builder.d.ts.map