UniSell

Description:

Decentralized Finance (DeFi) protocol contract providing Swap, Factory functionality.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "EPICswap/sell.sol": {
      "content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.20;\r
\r
interface IV4Router {\r
    struct PoolKey {\r
        address currency0;\r
        address currency1;\r
        uint24 fee;\r
        int24 tickSpacing;\r
        address hooks;\r
    }\r
\r
    struct SwapParams {\r
        PoolKey poolKey;\r
        bool zeroForOne;\r
        uint128 exactAmount;\r
        uint160 sqrtPriceLimitX96;\r
        bytes hookData;\r
    }\r
\r
    function swap(SwapParams calldata params)\r
        external\r
        payable\r
        returns (uint256 amountOut);\r
}\r
\r
interface IV3Router {\r
    function exactInputSingle(\r
        address tokenIn,\r
        address tokenOut,\r
        uint24 fee,\r
        address recipient,\r
        uint256 deadline,\r
        uint256 amountIn,\r
        uint256 amountOutMinimum,\r
        uint160 sqrtPriceLimitX96\r
    ) external payable returns (uint256 amountOut);\r
}\r
\r
interface IWETH {\r
    function deposit() external payable;\r
    function approve(address spender, uint256 value) external returns (bool);\r
}\r
\r
interface IERC20 {\r
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\r
    function approve(address spender, uint256 amount) external returns (bool);\r
}\r
\r
contract UniSell {\r
    address public constant TOKEN_SELL = 0x94314a14Df63779c99C0764a30e0CD22fA78fC0E;\r
    address public constant WETH       = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\r
    address public constant USDT       = 0xdAC17F958D2ee523a2206206994597C13D831ec7;\r
    address public constant ETH        = address(0);\r
\r
    address public constant V4_ROUTER  = 0x52F0E24D1c21C8A0cB1e5a5dD6198556BD9E1203;\r
    address public constant V3_ROUTER  = 0xE592427A0AEce92De3Edee1F18E0157C05861564;\r
\r
    event Sold(uint256 ethOut, uint256 wethOut, uint256 usdtOut);\r
\r
    function sell(uint256 sellAmount, uint256 minUsdtOut) external returns (uint256 usdtOut) {\r
        // Step 1️⃣: 用户转入 TOKEN_SELL\r
        IERC20(TOKEN_SELL).transferFrom(msg.sender, address(this), sellAmount);\r
\r
        // Step 2️⃣: 批准给 V4 Router\r
        IERC20(TOKEN_SELL).approve(V4_ROUTER, sellAmount);\r
\r
        // Step 3️⃣: TOKEN_SELL → ETH (Uniswap V4)\r
        IV4Router.SwapParams memory params = IV4Router.SwapParams({\r
            poolKey: IV4Router.PoolKey({\r
                currency0: ETH,          // pool 是 ETH 与 TOKEN_SELL 组成的\r
                currency1: TOKEN_SELL,\r
                fee: 3000,               // 0.3%\r
                tickSpacing: 60,\r
                hooks: address(0)\r
            }),\r
            zeroForOne: false,           // TOKEN_SELL → ETH\r
            exactAmount: uint128(sellAmount),\r
            sqrtPriceLimitX96: type(uint160).max,\r
            hookData: ""\r
        });\r
\r
        uint256 ethOut = IV4Router(V4_ROUTER).swap(params);\r
\r
        // Step 4️⃣: ETH → WETH\r
        IWETH(WETH).deposit{value: ethOut}();\r
\r
        // Step 5️⃣: 批准 V3 Router 使用 WETH\r
        IWETH(WETH).approve(V3_ROUTER, ethOut);\r
\r
        // Step 6️⃣: WETH → USDT (Uniswap V3)\r
        usdtOut = IV3Router(V3_ROUTER).exactInputSingle(\r
            WETH,\r
            USDT,\r
            100,               // 0.01%\r
            msg.sender,        // 接收者\r
            block.timestamp,\r
            ethOut,\r
            minUsdtOut,\r
            0\r
        );\r
\r
        emit Sold(ethOut, ethOut, usdtOut);\r
    }\r
\r
    // 允许接收 ETH\r
    receive() external payable {}\r
}\r
"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": true,
      "runs": 100
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
DeFi, Swap, Factory|addr:0x12de990c91aa7fb64567b34d7877aa4a0ecbc166|verified:true|block:23670610|tx:0x6d2ec54386227a6680aff8dcee209310f03863b7224c58ab4bb6d4dc55f4ef10|first_check:1761590255

Submitted on: 2025-10-27 19:37:36

Comments

Log in to comment.

No comments yet.