fluid-contracts-public/contracts/mocks/mockSwap.sol

24 lines
882 B
Solidity
Raw Permalink Normal View History

// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.21;
import { IERC20 } from "@openzeppelin/contracts/interfaces/IERC20.sol";
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import { Address } from "@openzeppelin/contracts/utils/Address.sol";
contract MockSwap {
using SafeERC20 for IERC20;
function swap(address buy_, address sell_, uint256 buyAmount_, uint256 sellAmount_) external payable {
if (sell_ == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) {
// nothing
} else {
IERC20(sell_).safeTransferFrom(msg.sender, address(this), sellAmount_);
}
if (buy_ == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) {
Address.sendValue(payable(msg.sender), buyAmount_);
} else {
IERC20(buy_).safeTransfer(msg.sender, buyAmount_);
}
}
}