CrossChainAggregator
Contract Interface
interface ICrossChainAggregator {
// Quote functions
function getOptimalQuote(
address tokenIn,
address tokenOut,
uint256 amountIn,
uint256[] memory routerTypes
) external view returns (uint256 bestAmount, uint256 bestRouter);
function getAllQuotes(
address tokenIn,
address tokenOut,
uint256 amountIn
) external view returns (QuoteResult[] memory);
// Swap execution
function executeSwap(
address tokenIn,
address tokenOut,
uint256 amountIn,
uint256 minAmountOut,
uint256 routerType,
bytes calldata swapData
) external payable returns (uint256 amountOut);
// Cross-chain operations
function crossChainSwap(
SwapData calldata swapData,
string calldata destinationChain,
address destinationToken,
bytes calldata destinationSwapData,
address destinationRouter,
uint256 amountOutMin
) external;
// Batch operations
function multiSwap(
SwapParams[] memory swaps
) external payable returns (uint256[] memory amountsOut);
}Data Structures
SwapData
SwapParams
QuoteResult
CrossChainSwapRequest
Core Functions
getOptimalQuote
getAllQuotes
executeSwap
crossChainSwap
multiSwap
View Functions
getSupportedTokens
getRouterAddress
isRouterSupported
getSwapFee
Events
SwapExecuted
CrossChainSwapInitiated
CrossChainSwapCompleted
SwapFailed
Error Codes
SwapErrors
Usage Examples
Gas Optimization
Batch Operations
Calldata Optimization
Security Best Practices
Input Validation
Slippage Protection
Deadline Management
Integration Patterns
Basic Integration
Advanced Integration with MEV Protection
Next Steps
Last updated