MEV_God_Mode_Fixed_v2

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": {
    "MEV_God_Mode_Fixed_v2.sol": {
      "content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

// ========== SECURITY ==========
abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }
}

// ========== INTERFACES ==========
interface IERC20 {
    function approve(address spender, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
}

interface IUniswapV2Router {
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    
    function getAmountsOut(
        uint amountIn, 
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

interface IFlashLoanSimpleReceiver {
    function executeOperation(
        address asset,
        uint256 amount,
        uint256 premium,
        address initiator,
        bytes calldata params
    ) external returns (bool);
}

interface IPool {
    function flashLoanSimple(
        address receiverAddress,
        address asset,
        uint256 amount,
        bytes calldata params,
        uint16 referralCode
    ) external;
}

// ========== MAIN CONTRACT ==========
contract MEV_God_Mode_Fixed_v2 is ReentrancyGuard, IFlashLoanSimpleReceiver {
    
    // ========== STATE VARIABLES ==========
    address public immutable owner;
    address public immutable WETH;
    address public immutable flashLoanPool;
    
    uint256 public constant MAX_DEADLINE = 300;
    
    // ========== EVENTS ==========
    event MEVExecuted(address indexed asset, uint256 profit);
    event TokensWithdrawn(address indexed token, uint256 amount);
    
    // ========== CONSTRUCTOR ==========
    constructor(address _weth, address _flashLoanPool) {
        require(_weth != address(0), "Invalid WETH");
        require(_flashLoanPool != address(0), "Invalid pool");
        
        owner = msg.sender;
        WETH = _weth;
        flashLoanPool = _flashLoanPool;
    }
    
    // ========== MODIFIERS ==========
    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner");
        _;
    }
    
    // ========== MAIN MEV FUNCTION ==========
    function executeMEV(
        address pool,
        address asset,
        uint256 amount,
        address[] calldata routers,
        uint256 minProfit,
        uint16 maxSlippage
    ) external onlyOwner nonReentrant {
        require(pool == flashLoanPool, "Invalid pool");
        require(routers.length == 2, "Need 2 routers");
        require(amount > 0, "Amount = 0");
        require(maxSlippage <= 1000, "Slippage too high");
        
        bytes memory params = abi.encode(routers, minProfit, maxSlippage);
        
        IPool(pool).flashLoanSimple(
            address(this),
            asset,
            amount,
            params,
            0
        );
    }
    
    // ========== FLASH LOAN CALLBACK - ULTRA OPTIMIZED ==========
    function executeOperation(
        address asset,
        uint256 amount,
        uint256 premium,
        address initiator,
        bytes calldata params
    ) external override returns (bool) {
        require(msg.sender == flashLoanPool, "Not pool");
        require(initiator == address(this), "Not self");
        
        (address[] memory routers, uint256 minProfit, uint16 maxSlippage) = 
            abi.decode(params, (address[], uint256, uint16));
        
        // Reuse array
        address[] memory path = new address[](2);
        
        // ===== SWAP 1: asset -> WETH =====
        path[0] = asset;
        path[1] = WETH;
        
        {
            uint256 expectedOut = IUniswapV2Router(routers[0]).getAmountsOut(amount, path)[1];
            IERC20(asset).approve(routers[0], amount);
            IUniswapV2Router(routers[0]).swapExactTokensForTokens(
                amount,
                (expectedOut * (10000 - maxSlippage)) / 10000,
                path,
                address(this),
                block.timestamp + MAX_DEADLINE
            );
        }
        
        // ===== SWAP 2: WETH -> asset =====
        path[0] = WETH;
        path[1] = asset;
        
        {
            uint256 wethBal = IERC20(WETH).balanceOf(address(this));
            uint256 expectedOut = IUniswapV2Router(routers[1]).getAmountsOut(wethBal, path)[1];
            IERC20(WETH).approve(routers[1], wethBal);
            IUniswapV2Router(routers[1]).swapExactTokensForTokens(
                wethBal,
                (expectedOut * (10000 - maxSlippage)) / 10000,
                path,
                address(this),
                block.timestamp + MAX_DEADLINE
            );
        }
        
        // ===== PROFIT CHECK & REPAYMENT =====
        {
            uint256 bal = IERC20(asset).balanceOf(address(this));
            uint256 owed = amount + premium;
            
            require(bal >= owed, "Can't repay");
            require(bal - owed >= minProfit, "Low profit");
            
            IERC20(asset).approve(flashLoanPool, owed);
            
            emit MEVExecuted(asset, bal - owed);
        }
        
        return true;
    }
    
    // ========== EMERGENCY FUNCTIONS ==========
    function withdrawETH() external onlyOwner {
        (bool ok, ) = owner.call{value: address(this).balance}("");
        require(ok, "Transfer failed");
    }
    
    function withdrawStuckTokens(address token) external onlyOwner {
        uint256 bal = IERC20(token).balanceOf(address(this));
        require(bal > 0, "No tokens");
        require(IERC20(token).transfer(owner, bal), "Transfer failed");
        emit TokensWithdrawn(token, bal);
    }
    
    receive() external payable {}
    fallback() external payable {}
}"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": false,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
DeFi, Swap, Factory|addr:0x7b6b939865c72a6d08deca1c0603086dd4a320a1|verified:true|block:23705561|tx:0x516d676902b38d056b34bf70d656cbb10a5842c9b0fc719b061af8590744fa0e|first_check:1762018837

Submitted on: 2025-11-01 18:40:38

Comments

Log in to comment.

No comments yet.