Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x6dCa6D5cbe704Ea54537CC63EA4fd893e1dfE26e
Balance 0 ETH
Nonce 1
Code Size 6592 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6592 bytes
0x6080604052600436106100745760003560e01c8063920f5c841161004e578063920f5c84146100fd578063ab03f2b91461013a578063d56da7f114610163578063de3a04ad1461018c5761007b565b80633da04c291461008057806378172b18146100a95780638da5cb5b146100d25761007b565b3661007b57005b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190610ee3565b6101b5565b005b3480156100b557600080fd5b506100d060048036038101906100cb9190610ee3565b6102e9565b005b3480156100de57600080fd5b506100e7610409565b6040516100f49190610f32565b60405180910390f35b34801561010957600080fd5b50610124600480360381019061011f919061105e565b61042d565b6040516101319190611175565b60405180910390f35b34801561014657600080fd5b50610161600480360381019061015c9190611190565b61084b565b005b34801561016f57600080fd5b5061018a60048036038101906101859190611190565b610992565b005b34801561019857600080fd5b506101b360048036038101906101ae91906111bd565b610ac5565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023a90611281565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d836040518363ffffffff1660e01b81526004016102929291906112b0565b602060405180830381600087803b1580156102ac57600080fd5b505af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611305565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611281565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b330836040518363ffffffff1660e01b81526004016103b29291906112b0565b602060405180830381600087803b1580156103cc57600080fd5b505af11580156103e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104049190611305565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000737d2768de32b0b80b7a3454c06bdac94a69ddc7a973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a89061137e565b60405180910390fd5b600080600085858101906104c591906113dc565b92509250925073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d836040518363ffffffff1660e01b815260040161052e9291906112b0565b602060405180830381600087803b15801561054857600080fd5b505af115801561055c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190611305565b508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d846040518363ffffffff1660e01b81526004016105d09291906112b0565b602060405180830381600087803b1580156105ea57600080fd5b505af11580156105fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106229190611305565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663e8e337008473a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48858560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104b04261069d919061145e565b6040518963ffffffff1660e01b81526004016106c09897969594939291906114f9565b606060405180830381600087803b1580156106da57600080fd5b505af11580156106ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610712919061158c565b50505060008989600081811061072b5761072a6115df565b5b905060200201358c8c6000818110610746576107456115df565b5b90506020020135610757919061145e565b905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107a89291906112b0565b602060405180830381600087803b1580156107c257600080fd5b505af11580156107d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fa9190611305565b507fac1d76749e5447b7b16f5ab61447e1bd502f3bb4807af3b28e620d1700a6ee4584848460405161082e9392919061160e565b60405180910390a160019450505050509998505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d090611281565b60405180910390fd5b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d836040518363ffffffff1660e01b815260040161093c9291906112b0565b602060405180830381600087803b15801561095657600080fd5b505af115801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e9190611305565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1790611281565b60405180910390fd5b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff1663095ea7b330836040518363ffffffff1660e01b8152600401610a6f9291906112b0565b602060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611305565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4a90611281565b60405180910390fd5b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610ba493929190611645565b602060405180830381600087803b158015610bbe57600080fd5b505af1158015610bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf69190611305565b506000600167ffffffffffffffff811115610c1457610c1361167c565b5b604051908082528060200260200182016040528015610c425781602001602082028036833780820191505090505b50905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881600081518110610c6e57610c6d6115df565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600167ffffffffffffffff811115610cc557610cc461167c565b5b604051908082528060200260200182016040528015610cf35781602001602082028036833780820191505090505b5090508381600081518110610d0b57610d0a6115df565b5b6020026020010181815250506000600167ffffffffffffffff811115610d3457610d3361167c565b5b604051908082528060200260200182016040528015610d625781602001602082028036833780820191505090505b509050600081600081518110610d7b57610d7a6115df565b5b6020026020010181815250506000878787604051602001610d9e9392919061160e565b6040516020818303038152906040529050737d2768de32b0b80b7a3454c06bdac94a69ddc7a973ffffffffffffffffffffffffffffffffffffffff1663ab9c4b5d30868686308760006040518863ffffffff1660e01b8152600401610e0997969594939291906118ff565b600060405180830381600087803b158015610e2357600080fd5b505af1158015610e37573d6000803e3d6000fd5b505050505050505050505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e7a82610e4f565b9050919050565b610e8a81610e6f565b8114610e9557600080fd5b50565b600081359050610ea781610e81565b92915050565b6000819050919050565b610ec081610ead565b8114610ecb57600080fd5b50565b600081359050610edd81610eb7565b92915050565b60008060408385031215610efa57610ef9610e45565b5b6000610f0885828601610e98565b9250506020610f1985828601610ece565b9150509250929050565b610f2c81610e6f565b82525050565b6000602082019050610f476000830184610f23565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610f7257610f71610f4d565b5b8235905067ffffffffffffffff811115610f8f57610f8e610f52565b5b602083019150836020820283011115610fab57610faa610f57565b5b9250929050565b60008083601f840112610fc857610fc7610f4d565b5b8235905067ffffffffffffffff811115610fe557610fe4610f52565b5b60208301915083602082028301111561100157611000610f57565b5b9250929050565b60008083601f84011261101e5761101d610f4d565b5b8235905067ffffffffffffffff81111561103b5761103a610f52565b5b60208301915083600182028301111561105757611056610f57565b5b9250929050565b600080600080600080600080600060a08a8c0312156110805761107f610e45565b5b60008a013567ffffffffffffffff81111561109e5761109d610e4a565b5b6110aa8c828d01610f5c565b995099505060208a013567ffffffffffffffff8111156110cd576110cc610e4a565b5b6110d98c828d01610fb2565b975097505060408a013567ffffffffffffffff8111156110fc576110fb610e4a565b5b6111088c828d01610fb2565b9550955050606061111b8c828d01610e98565b93505060808a013567ffffffffffffffff81111561113c5761113b610e4a565b5b6111488c828d01611008565b92509250509295985092959850929598565b60008115159050919050565b61116f8161115a565b82525050565b600060208201905061118a6000830184611166565b92915050565b6000602082840312156111a6576111a5610e45565b5b60006111b484828501610ece565b91505092915050565b600080600080608085870312156111d7576111d6610e45565b5b60006111e587828801610e98565b94505060206111f687828801610ece565b935050604061120787828801610ece565b925050606061121887828801610ece565b91505092959194509250565b600082825260208201905092915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b600061126b600683611224565b915061127682611235565b602082019050919050565b6000602082019050818103600083015261129a8161125e565b9050919050565b6112aa81610ead565b82525050565b60006040820190506112c56000830185610f23565b6112d260208301846112a1565b9392505050565b6112e28161115a565b81146112ed57600080fd5b50565b6000815190506112ff816112d9565b92915050565b60006020828403121561131b5761131a610e45565b5b6000611329848285016112f0565b91505092915050565b7f2161617665000000000000000000000000000000000000000000000000000000600082015250565b6000611368600583611224565b915061137382611332565b602082019050919050565b600060208201905081810360008301526113978161135b565b9050919050565b60006113a982610e4f565b9050919050565b6113b98161139e565b81146113c457600080fd5b50565b6000813590506113d6816113b0565b92915050565b6000806000606084860312156113f5576113f4610e45565b5b6000611403868287016113c7565b935050602061141486828701610ece565b925050604061142586828701610ece565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061146982610ead565b915061147483610ead565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114a9576114a861142f565b5b828201905092915050565b6000819050919050565b6000819050919050565b60006114e36114de6114d9846114b4565b6114be565b610ead565b9050919050565b6114f3816114c8565b82525050565b60006101008201905061150f600083018b610f23565b61151c602083018a610f23565b61152960408301896112a1565b61153660608301886112a1565b61154360808301876114ea565b61155060a08301866114ea565b61155d60c0830185610f23565b61156a60e08301846112a1565b9998505050505050505050565b60008151905061158681610eb7565b92915050565b6000806000606084860312156115a5576115a4610e45565b5b60006115b386828701611577565b93505060206115c486828701611577565b92505060406115d586828701611577565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006060820190506116236000830186610f23565b61163060208301856112a1565b61163d60408301846112a1565b949350505050565b600060608201905061165a6000830186610f23565b6116676020830185610f23565b61167460408301846112a1565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6116e081610e6f565b82525050565b60006116f283836116d7565b60208301905092915050565b6000602082019050919050565b6000611716826116ab565b61172081856116b6565b935061172b836116c7565b8060005b8381101561175c57815161174388826116e6565b975061174e836116fe565b92505060018101905061172f565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61179e81610ead565b82525050565b60006117b08383611795565b60208301905092915050565b6000602082019050919050565b60006117d482611769565b6117de8185611774565b93506117e983611785565b8060005b8381101561181a57815161180188826117a4565b975061180c836117bc565b9250506001810190506117ed565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611861578082015181840152602081019050611846565b83811115611870576000848401525b50505050565b6000601f19601f8301169050919050565b600061189282611827565b61189c8185611832565b93506118ac818560208601611843565b6118b581611876565b840191505092915050565b600061ffff82169050919050565b60006118e96118e46118df846114b4565b6114be565b6118c0565b9050919050565b6118f9816118ce565b82525050565b600060e082019050611914600083018a610f23565b8181036020830152611926818961170b565b9050818103604083015261193a81886117c9565b9050818103606083015261194e81876117c9565b905061195d6080830186610f23565b81810360a083015261196f8185611887565b905061197e60c08301846118f0565b9897505050505050505056fea2646970667358221220bf4f188d6eb1eae31daf90301583654dc87b95820f30764bc4bfbc33f28bf0fc64736f6c63430008090033

Verified Source Code Full Match

Compiler: v0.8.9+commit.e5eed63a EVM: berlin Optimization: No
FlashLoanAddLiquidity.sol 105 lines
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

interface IERC20 {
    function transferFrom(address,address,uint256) external returns(bool);
    function approve(address,uint256) external returns(bool);
    function transfer(address,uint256) external returns(bool);
}

interface ILendingPool {
    function flashLoan(address,address[] calldata,uint256[] calldata,uint256[] calldata,address,bytes calldata,uint16) external;
}

interface IUniswapV2Router {
    function addLiquidity(address,address,uint,uint,uint,uint,address,uint) external returns(uint,uint,uint);
}

contract FlashLoanSimple {
    address constant AAVE_POOL = 0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9;
    address constant USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
    address constant ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    address public owner;
    constructor() { owner = msg.sender; }
    modifier onlyOwner() { require(msg.sender == owner, "!owner"); _; }

    event LiquidityAdded(address token, uint amountToken, uint amountUSDC);

    // --- APPROVAL HELPERS ---
    function approveTokenToContract(address _token, uint256 _amount) external onlyOwner {
        IERC20(_token).approve(address(this), _amount);
    }

    function approveUSDCToContract(uint256 _amount) external onlyOwner {
        IERC20(USDC).approve(address(this), _amount);
    }

    function approveTokenToRouter(address _token, uint256 _amount) external onlyOwner {
        IERC20(_token).approve(ROUTER, _amount);
    }

    function approveUSDCToRouter(uint256 _amount) external onlyOwner {
        IERC20(USDC).approve(ROUTER, _amount);
    }

    // --- FLASHLOAN EXECUTION ---
    function execute(
        address _token,
        uint256 _tokenAmount,
        uint256 _usdcBorrow,
        uint256 _usdcFee
    ) external onlyOwner {
        // Take USDC fee from caller
        IERC20(USDC).transferFrom(msg.sender, address(this), _usdcFee);

        address[] memory assets = new address[](1);
        assets[0] = USDC;
        uint256[] memory amounts = new uint256[](1);
        amounts[0] = _usdcBorrow;
        uint256[] memory modes = new uint256[](1);
        modes[0] = 0;

        bytes memory params = abi.encode(_token, _tokenAmount, _usdcBorrow);
        ILendingPool(AAVE_POOL).flashLoan(address(this), assets, amounts, modes, address(this), params, 0);
    }

    // --- FLASHLOAN CALLBACK ---
    function executeOperation(
        address[] calldata,
        uint256[] calldata amounts,
        uint256[] calldata premiums,
        address,
        bytes calldata params
    ) external returns (bool) {
        require(msg.sender == AAVE_POOL, "!aave");

        (address token, uint256 tokenAmount, uint256 usdcBorrowed) = 
            abi.decode(params, (address, uint256, uint256));

        // Approve router (must have been approved already via approveTokenToRouter and approveUSDCToRouter)
        IERC20(USDC).approve(ROUTER, usdcBorrowed);
        IERC20(token).approve(ROUTER, tokenAmount);

        // Add liquidity
        IUniswapV2Router(ROUTER).addLiquidity(
            token,
            USDC,
            tokenAmount,
            usdcBorrowed,
            0,
            0,
            owner,
            block.timestamp + 1200
        );

        // Repay flashloan
        uint256 repay = amounts[0] + premiums[0];
        IERC20(USDC).transfer(msg.sender, repay);

        emit LiquidityAdded(token, tokenAmount, usdcBorrowed);
        return true;
    }

    receive() external payable {}
}

Read Contract

owner 0x8da5cb5b → address

Write Contract 6 functions

These functions modify contract state and require a wallet transaction to execute.

approveTokenToContract 0x78172b18
address _token
uint256 _amount
approveTokenToRouter 0x3da04c29
address _token
uint256 _amount
approveUSDCToContract 0xd56da7f1
uint256 _amount
approveUSDCToRouter 0xab03f2b9
uint256 _amount
execute 0xde3a04ad
address _token
uint256 _tokenAmount
uint256 _usdcBorrow
uint256 _usdcFee
executeOperation 0x920f5c84
address[]
uint256[] amounts
uint256[] premiums
address
bytes params
returns: bool

Recent Transactions

No transactions found for this address