Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x9003e00a94EbC072580d5ade12e5a5372355604C
Balance 0 ETH
Nonce 1
Code Size 6232 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6232 bytes
0x608060405260043610610058575f3560e01c8063814c8d7b14610063578063848008121461008b5780638609e751146100b35780638da5cb5b146100dd5780639e281a9814610107578063e08836dd1461012f5761005f565b3661005f57005b5f80fd5b34801561006e575f80fd5b5061008960048036038101906100849190610be3565b610159565b005b348015610096575f80fd5b506100b160048036038101906100ac9190610cbc565b610305565b005b3480156100be575f80fd5b506100c7610965565b6040516100d49190610d4f565b60405180910390f35b3480156100e8575f80fd5b506100f161097d565b6040516100fe9190610d4f565b60405180910390f35b348015610112575f80fd5b5061012d60048036038101906101289190610d68565b6109a0565b005b34801561013a575f80fd5b50610143610acc565b6040516101509190610d4f565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dd90610e00565b60405180910390fd5b600285859050101561022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022490610e68565b60405180910390fd5b5f858585856040516020016102459493929190610f42565b6040516020818303038152906040529050731b81d678ffb9c0263b24a97847620c99d213eb1473ffffffffffffffffffffffffffffffffffffffff16635cffe9de3088885f81811061029a57610299610f80565b5b90506020020160208101906102af9190610fad565b85856040518563ffffffff1660e01b81526004016102d09493929190611071565b5f604051808303815f87803b1580156102e7575f80fd5b505af11580156102f9573d5f803e3d5ffd5b50505050505050505050565b731b81d678ffb9c0263b24a97847620c99d213eb1473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037e90611105565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec9061116d565b60405180910390fd5b5f805f848481019061040791906112fe565b9250925092505f80881161041b578661041d565b875b90505f845f8151811061043357610432610f80565b5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b385846040518363ffffffff1660e01b815260040161047892919061136a565b6020604051808303815f875af1158015610494573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b891906113c6565b505f8473ffffffffffffffffffffffffffffffffffffffff166338ed1739845f893061012c426104e8919061141e565b6040518663ffffffff1660e01b8152600401610508959493929190611514565b5f604051808303815f875af1158015610523573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061054b9190611640565b90505f816001835161055d9190611687565b8151811061056e5761056d610f80565b5b602002602001015190505f875167ffffffffffffffff8111156105945761059361118b565b5b6040519080825280602002602001820160405280156105c25781602001602082028036833780820191505090505b5090505f5b885181101561066357888160018b516105e09190611687565b6105ea9190611687565b815181106105fb576105fa610f80565b5b602002602001015182828151811061061657610615610f80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061065b906116ba565b9150506105c7565b50805f8151811061067757610676610f80565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663095ea7b387846040518363ffffffff1660e01b81526004016106b992919061136a565b6020604051808303815f875af11580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f991906113c6565b508573ffffffffffffffffffffffffffffffffffffffff166338ed17398387843061012c42610728919061141e565b6040518663ffffffff1660e01b8152600401610748959493929190611701565b5f604051808303815f875af1158015610763573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061078b9190611640565b505f61271060198761079d9190611759565b6107a791906117c7565b90505f81876107b6919061141e565b90508573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107f392919061136a565b6020604051808303815f875af115801561080f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083391906113c6565b505f8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161086e9190610d4f565b602060405180830381865afa158015610889573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ad91906117f7565b90505f811115610953578673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161091192919061136a565b6020604051808303815f875af115801561092d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095191906113c6565b505b50505050505050505050505050505050565b731b81d678ffb9c0263b24a97847620c99d213eb1481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490610e00565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a8792919061136a565b6020604051808303815f875af1158015610aa3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac791906113c6565b505050565b7310ed43c718714eb63d5aa57b78b54704e256024e81565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610b1657610b15610af5565b5b8235905067ffffffffffffffff811115610b3357610b32610af9565b5b602083019150836020820283011115610b4f57610b4e610afd565b5b9250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b7f82610b56565b9050919050565b610b8f81610b75565b8114610b99575f80fd5b50565b5f81359050610baa81610b86565b92915050565b5f819050919050565b610bc281610bb0565b8114610bcc575f80fd5b50565b5f81359050610bdd81610bb9565b92915050565b5f805f805f60808688031215610bfc57610bfb610aed565b5b5f86013567ffffffffffffffff811115610c1957610c18610af1565b5b610c2588828901610b01565b95509550506020610c3888828901610b9c565b9350506040610c4988828901610b9c565b9250506060610c5a88828901610bcf565b9150509295509295909350565b5f8083601f840112610c7c57610c7b610af5565b5b8235905067ffffffffffffffff811115610c9957610c98610af9565b5b602083019150836001820283011115610cb557610cb4610afd565b5b9250929050565b5f805f805f60808688031215610cd557610cd4610aed565b5b5f610ce288828901610b9c565b9550506020610cf388828901610bcf565b9450506040610d0488828901610bcf565b935050606086013567ffffffffffffffff811115610d2557610d24610af1565b5b610d3188828901610c67565b92509250509295509295909350565b610d4981610b75565b82525050565b5f602082019050610d625f830184610d40565b92915050565b5f8060408385031215610d7e57610d7d610aed565b5b5f610d8b85828601610b9c565b9250506020610d9c85828601610bcf565b9150509250929050565b5f82825260208201905092915050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f610dea600983610da6565b9150610df582610db6565b602082019050919050565b5f6020820190508181035f830152610e1781610dde565b9050919050565b7f496e76616c6964207061746800000000000000000000000000000000000000005f82015250565b5f610e52600c83610da6565b9150610e5d82610e1e565b602082019050919050565b5f6020820190508181035f830152610e7f81610e46565b9050919050565b5f82825260208201905092915050565b5f819050919050565b610ea881610b75565b82525050565b5f610eb98383610e9f565b60208301905092915050565b5f610ed36020840184610b9c565b905092915050565b5f602082019050919050565b5f610ef28385610e86565b9350610efd82610e96565b805f5b85811015610f3557610f128284610ec5565b610f1c8882610eae565b9750610f2783610edb565b925050600181019050610f00565b5085925050509392505050565b5f6060820190508181035f830152610f5b818688610ee7565b9050610f6a6020830185610d40565b610f776040830184610d40565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610fc257610fc1610aed565b5b5f610fcf84828501610b9c565b91505092915050565b610fe181610bb0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561101e578082015181840152602081019050611003565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61104382610fe7565b61104d8185610ff1565b935061105d818560208601611001565b61106681611029565b840191505092915050565b5f6080820190506110845f830187610d40565b6110916020830186610d40565b61109e6040830185610fd8565b81810360608301526110b08184611039565b905095945050505050565b7f4e6f7420666c6173686c6f616e20706f6f6c00000000000000000000000000005f82015250565b5f6110ef601283610da6565b91506110fa826110bb565b602082019050919050565b5f6020820190508181035f83015261111c816110e3565b9050919050565b7f4e6f74207468697320636f6e74726163740000000000000000000000000000005f82015250565b5f611157601183610da6565b915061116282611123565b602082019050919050565b5f6020820190508181035f8301526111848161114b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111c182611029565b810181811067ffffffffffffffff821117156111e0576111df61118b565b5b80604052505050565b5f6111f2610ae4565b90506111fe82826111b8565b919050565b5f67ffffffffffffffff82111561121d5761121c61118b565b5b602082029050602081019050919050565b5f61124061123b84611203565b6111e9565b9050808382526020820190506020840283018581111561126357611262610afd565b5b835b8181101561128c57806112788882610b9c565b845260208401935050602081019050611265565b5050509392505050565b5f82601f8301126112aa576112a9610af5565b5b81356112ba84826020860161122e565b91505092915050565b5f6112cd82610b56565b9050919050565b6112dd816112c3565b81146112e7575f80fd5b50565b5f813590506112f8816112d4565b92915050565b5f805f6060848603121561131557611314610aed565b5b5f84013567ffffffffffffffff81111561133257611331610af1565b5b61133e86828701611296565b935050602061134f868287016112ea565b9250506040611360868287016112ea565b9150509250925092565b5f60408201905061137d5f830185610d40565b61138a6020830184610fd8565b9392505050565b5f8115159050919050565b6113a581611391565b81146113af575f80fd5b50565b5f815190506113c08161139c565b92915050565b5f602082840312156113db576113da610aed565b5b5f6113e8848285016113b2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61142882610bb0565b915061143383610bb0565b925082820190508082111561144b5761144a6113f1565b5b92915050565b5f819050919050565b5f819050919050565b5f61147d61147861147384611451565b61145a565b610bb0565b9050919050565b61148d81611463565b82525050565b5f81519050919050565b5f819050602082019050919050565b5f602082019050919050565b5f6114c282611493565b6114cc8185610e86565b93506114d78361149d565b805f5b838110156115075781516114ee8882610eae565b97506114f9836114ac565b9250506001810190506114da565b5085935050505092915050565b5f60a0820190506115275f830188610fd8565b6115346020830187611484565b818103604083015261154681866114b8565b90506115556060830185610d40565b6115626080830184610fd8565b9695505050505050565b5f67ffffffffffffffff8211156115865761158561118b565b5b602082029050602081019050919050565b5f815190506115a581610bb9565b92915050565b5f6115bd6115b88461156c565b6111e9565b905080838252602082019050602084028301858111156115e0576115df610afd565b5b835b8181101561160957806115f58882611597565b8452602084019350506020810190506115e2565b5050509392505050565b5f82601f83011261162757611626610af5565b5b81516116378482602086016115ab565b91505092915050565b5f6020828403121561165557611654610aed565b5b5f82015167ffffffffffffffff81111561167257611671610af1565b5b61167e84828501611613565b91505092915050565b5f61169182610bb0565b915061169c83610bb0565b92508282039050818111156116b4576116b36113f1565b5b92915050565b5f6116c482610bb0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036116f6576116f56113f1565b5b600182019050919050565b5f60a0820190506117145f830188610fd8565b6117216020830187610fd8565b818103604083015261173381866114b8565b90506117426060830185610d40565b61174f6080830184610fd8565b9695505050505050565b5f61176382610bb0565b915061176e83610bb0565b925082820261177c81610bb0565b91508282048414831517611793576117926113f1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6117d182610bb0565b91506117dc83610bb0565b9250826117ec576117eb61179a565b5b828204905092915050565b5f6020828403121561180c5761180b610aed565b5b5f61181984828501611597565b9150509291505056fea264697066735822122078af0d4c9ac518324e7d24bfa7c8c6a68c9ff1e86f0d0a93743232b82cc0f64b64736f6c63430008140033

Verified Source Code Full Match

Compiler: v0.8.20+commit.a1b79de6 EVM: shanghai Optimization: No
FlashloanArbitrage.sol 133 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IPancakeRouter {
    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 IERC20 {
    function approve(address spender, uint256 amount) external returns (bool);
    function transfer(address to, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
}

interface IPancakeFlashLoan {
    function flashLoan(
        address receiver,
        address token,
        uint256 amount,
        bytes calldata data
    ) external;
}

contract FlashloanArbitrage {
    address public owner;
    address public constant PANCAKE_ROUTER = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
    address public constant PANCAKE_FLASHLOAN = 0x1b81D678ffb9C0263b24A97847620C99d213eB14;
    
    constructor() {
        owner = msg.sender;
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner");
        _;
    }
    
    // Main entry point - called by your bot
    function executeArbitrage(
        address[] calldata path,
        address buyRouter,
        address sellRouter,
        uint256 loanAmount
    ) external onlyOwner {
        require(path.length >= 2, "Invalid path");
        
        // Encode arbitrage data
        bytes memory data = abi.encode(path, buyRouter, sellRouter);
        
        // Request flashloan
        IPancakeFlashLoan(PANCAKE_FLASHLOAN).flashLoan(
            address(this),
            path[0], // Borrow first token in path
            loanAmount,
            data
        );
    }
    
    // Callback from PancakeSwap flashloan
    function pancakeCall(
        address sender,
        uint amount0,
        uint amount1,
        bytes calldata data
    ) external {
        require(msg.sender == PANCAKE_FLASHLOAN, "Not flashloan pool");
        require(sender == address(this), "Not this contract");
        
        // Decode arbitrage parameters
        (address[] memory path, address buyRouter, address sellRouter) = 
            abi.decode(data, (address[], address, address));
        
        uint loanAmount = amount0 > 0 ? amount0 : amount1;
        address loanToken = path[0];
        
        // Step 1: Buy on cheap DEX
        IERC20(loanToken).approve(buyRouter, loanAmount);
        
        uint[] memory amounts = IPancakeRouter(buyRouter).swapExactTokensForTokens(
            loanAmount,
            0, // Accept any amount (risky but needed for testing)
            path,
            address(this),
            block.timestamp + 300
        );
        
        uint tokensReceived = amounts[amounts.length - 1];
        
        // Step 2: Sell on expensive DEX
        address[] memory reversePath = new address[](path.length);
        for (uint i = 0; i < path.length; i++) {
            reversePath[i] = path[path.length - 1 - i];
        }
        
        IERC20(reversePath[0]).approve(sellRouter, tokensReceived);
        
        IPancakeRouter(sellRouter).swapExactTokensForTokens(
            tokensReceived,
            loanAmount, // Must get back at least loan amount
            reversePath,
            address(this),
            block.timestamp + 300
        );
        
        // Step 3: Repay flashloan (0.25% fee)
        uint fee = (loanAmount * 25) / 10000;
        uint repayAmount = loanAmount + fee;
        
        IERC20(loanToken).transfer(msg.sender, repayAmount);
        
        // Keep profit
        uint profit = IERC20(loanToken).balanceOf(address(this));
        if (profit > 0) {
            IERC20(loanToken).transfer(owner, profit);
        }
    }
    
    // Emergency withdrawal
    function withdrawToken(address token, uint amount) external onlyOwner {
        IERC20(token).transfer(owner, amount);
    }
    
    // Receive ETH
    receive() external payable {}
}

Read Contract

PANCAKE_FLASHLOAN 0x8609e751 → address
PANCAKE_ROUTER 0xe08836dd → address
owner 0x8da5cb5b → address

Write Contract 3 functions

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

executeArbitrage 0x814c8d7b
address[] path
address buyRouter
address sellRouter
uint256 loanAmount
pancakeCall 0x84800812
address sender
uint256 amount0
uint256 amount1
bytes data
withdrawToken 0x9e281a98
address token
uint256 amount

Recent Transactions

No transactions found for this address