28 lines
906 B
Solidity
28 lines
906 B
Solidity
// SPDX-License-Identifier: BUSL-1.1
|
|
pragma solidity ^0.8.26;
|
|
|
|
/**
|
|
* @title Curve Router Interface
|
|
* @notice Interface for interacting with Curve's router contract for token swaps across various Curve pools
|
|
* @dev This interface allows for executing swaps through Curve's router, which can handle different pool types
|
|
*/
|
|
interface ICurveRouter {
|
|
/**
|
|
* @notice Executes a token swap through Curve pools
|
|
* @dev This function handles the routing of tokens through one or more Curve pools
|
|
* @dev The parameters are encoded in the `CurveRouterParams` struct
|
|
* @return Amount of output tokens received from the swap
|
|
*/
|
|
function exchange(
|
|
address[11] memory route,
|
|
uint256[5][5] memory swapParams,
|
|
uint256 amountIn,
|
|
uint256 minAmountOut,
|
|
address[5] memory pools,
|
|
address receiver
|
|
) external payable returns (uint256);
|
|
}
|
|
|
|
|
|
|