// SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; interface ISwapAdapter { /** * @dev Swaps an `amountToSwap` of an asset to another, approving a `fundsDestination` to pull the funds * @param assetToSwapFrom Origin asset * @param assetToSwapTo Destination asset * @param amountToSwap How much `assetToSwapFrom` needs to be swapped * @param fundsDestination Address that will be pulling the swapped funds * @param params Additional variadic field to include extra params */ function executeOperation( address assetToSwapFrom, address assetToSwapTo, uint256 amountToSwap, address fundsDestination, bytes calldata params ) external; }