ETH Price: $1,795.68 (+10.47%)

Contract

0xB79A4F5828eb55c10D7abF4bFe9a9f5d11aA84e0

Overview

ETH Balance

0.0123 ETH

ETH Value

$22.09 (@ $1,795.68/ETH)

Token Holdings

Transaction Hash
Method
Block
From
To
Onswap217031442025-04-22 16:17:5616 hrs ago1745338676IN
0xB79A4F58...d11aA84e0
0.0022547 ETH0.0000310.0632
Onswap216516552025-04-20 17:34:352 days ago1745170475IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000015040.01
Onswap216516302025-04-20 17:33:112 days ago1745170391IN
0xB79A4F58...d11aA84e0
0.004 ETH0.000006160.01
Onswap216317682025-04-19 23:20:313 days ago1745104831IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000005460.01
Onswap216257752025-04-19 17:49:543 days ago1745084994IN
0xB79A4F58...d11aA84e0
0.05 ETH0.000011180.02
Onswap216257022025-04-19 17:45:513 days ago1745084751IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000012930.01
Onswap216255142025-04-19 17:34:583 days ago1745084098IN
0xB79A4F58...d11aA84e0
0.05 ETH0.00000810.01
Onswap215937522025-04-18 12:29:164 days ago1744979356IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000206850.25949953
Onswap215737112025-04-17 18:05:575 days ago1744913157IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000010220.0101
Onswap215736082025-04-17 18:00:175 days ago1744912817IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000009040.0101
Onswap215637682025-04-17 8:54:426 days ago1744880082IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000011720.01
Onswap215637292025-04-17 8:52:306 days ago1744879950IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000004360.01
Onswap215616972025-04-17 7:01:116 days ago1744873271IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000022480.01
Onswap215607832025-04-17 6:11:136 days ago1744870273IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000010270.01
Onswap215469902025-04-16 17:34:146 days ago1744824854IN
0xB79A4F58...d11aA84e0
0.002 ETH0.000004330.01
Onswap215026812025-04-15 0:55:028 days ago1744678502IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.00001980.015
Onswap214874772025-04-14 11:01:218 days ago1744628481IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000016910.013
Onswap214832192025-04-14 7:06:039 days ago1744614363IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000005980.01
Onswap214832012025-04-14 7:05:019 days ago1744614301IN
0xB79A4F58...d11aA84e0
0.002 ETH0.000005810.01
Onswap214690602025-04-13 18:04:589 days ago1744567498IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000006780.01
Onswap214690322025-04-13 18:03:279 days ago1744567407IN
0xB79A4F58...d11aA84e0
0.0033 ETH0.000010960.01
Onswap214565632025-04-13 6:39:1710 days ago1744526357IN
0xB79A4F58...d11aA84e0
0.02 ETH0.000004180.01
Onswap214398482025-04-12 15:25:5210 days ago1744471552IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000054770.0279
Onswap214398372025-04-12 15:25:1610 days ago1744471516IN
0xB79A4F58...d11aA84e0
0.004 ETH0.000011070.026
Onswap214393642025-04-12 14:59:0910 days ago1744469949IN
0xB79A4F58...d11aA84e0
0.0003 ETH0.000051590.0359
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
217031442025-04-22 16:17:5616 hrs ago1745338676
0xB79A4F58...d11aA84e0
0.0019547 ETH
216516302025-04-20 17:33:112 days ago1745170391
0xB79A4F58...d11aA84e0
0.0037 ETH
216257752025-04-19 17:49:543 days ago1745084994
0xB79A4F58...d11aA84e0
0.0497 ETH
216255142025-04-19 17:34:583 days ago1745084098
0xB79A4F58...d11aA84e0
0.0497 ETH
215469902025-04-16 17:34:146 days ago1744824854
0xB79A4F58...d11aA84e0
0.0017 ETH
214832012025-04-14 7:05:019 days ago1744614301
0xB79A4F58...d11aA84e0
0.0017 ETH
214690322025-04-13 18:03:279 days ago1744567407
0xB79A4F58...d11aA84e0
0.003 ETH
214565632025-04-13 6:39:1710 days ago1744526357
0xB79A4F58...d11aA84e0
0.0197 ETH
214398372025-04-12 15:25:1610 days ago1744471516
0xB79A4F58...d11aA84e0
0.0037 ETH
214393512025-04-12 14:58:2610 days ago1744469906
0xB79A4F58...d11aA84e0
0.0019 ETH
214340242025-04-12 10:04:0410 days ago1744452244
0xB79A4F58...d11aA84e0
0.0017 ETH
214323602025-04-12 8:33:3711 days ago1744446817
0xB79A4F58...d11aA84e0
0.0047 ETH
213822742025-04-10 10:51:3212 days ago1744282292
0xB79A4F58...d11aA84e0
0.025341 ETH
211207622025-03-31 12:11:2622 days ago1743423086
0xB79A4F58...d11aA84e0
0.0111 ETH
211135532025-03-31 5:39:0923 days ago1743399549
0xB79A4F58...d11aA84e0
0.0017 ETH
210937912025-03-30 11:46:1023 days ago1743335170
0xB79A4F58...d11aA84e0
0.0097 ETH
204369892025-03-05 9:52:2648 days ago1741168346
0xB79A4F58...d11aA84e0
0.0157 ETH
204173832025-03-04 15:29:2549 days ago1741102165
0xB79A4F58...d11aA84e0
0.0002 ETH
203877132025-03-03 11:22:1450 days ago1741000934
0xB79A4F58...d11aA84e0
0.0213 ETH
202950122025-02-27 20:47:5054 days ago1740689270
0xB79A4F58...d11aA84e0
0.0001 ETH
202889502025-02-27 15:08:4754 days ago1740668927
0xB79A4F58...d11aA84e0
0.0057 ETH
202687252025-02-26 20:04:0755 days ago1740600247
0xB79A4F58...d11aA84e0
0.0077 ETH
201534232025-02-22 8:41:2860 days ago1740213688
0xB79A4F58...d11aA84e0
0.0197 ETH
200866142025-02-19 19:13:1062 days ago1739992390
0xB79A4F58...d11aA84e0
0.01211 ETH
200191332025-02-17 4:33:1565 days ago1739766795
0xB79A4F58...d11aA84e0
0.000365 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OnchainSwapV3

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion
File 1 of 5 : OnchainSwapV3.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./OnchainGateway.sol";
import '@openzeppelin/contracts/access/Ownable.sol';



contract OnchainSwapV3  is Context, Ownable{

    uint256 public fee = 0.05 ether;

    event ClaimedTokens(address to, uint256 balance);
    event OnchainSwap(address token, uint256 amount, uint256 fee);

    OnchainGateway public onchainGateway;

    constructor() {
        onchainGateway = new OnchainGateway(address(this));
    }

    modifier hasFee() {
        require(msg.value >= fee);
        _;
    }

    function onswap(
        address token,
        uint256 amount,
        address dex,
        address dexgateway,
        bytes memory calldata_
    ) external payable hasFee {

        if(token!=address(0)) {
            onchainGateway.claimTokens(
                token,
                _msgSender(),
                amount
            );

            if (dexgateway == address(0)) {
                forceApprove(token, dex, amount);
            } else {
                forceApprove(token, dexgateway, amount);
            }
        }

        require(dex != address(onchainGateway), "OnchainSwap: call to onchain gateway");

        {
            uint256 size;
            address toCheck = dex;

            assembly {
                size := extcodesize(toCheck)
            }

            require(size != 0, "OnchainSwap: call for a non-contract account");
        }


        (bool swapPassed, ) = dex.call{value: msg.value - fee}(
            calldata_
        );

        require(swapPassed, "OnchainSwap: Fail to call");
        emit OnchainSwap(token, amount, fee);
    }

    function changeFee(uint256 _newFee) public onlyOwner {
        fee = _newFee;
    }

    function claimTokens(address _to) public onlyOwner {
        uint256 balance = address(this).balance;
        (bool sent, ) = _to.call{value: balance}("");
        require(sent, "Failed to send Ether");
        emit ClaimedTokens(_to, balance);
    }

    function forceApprove(address _token, address _recipient, uint256 _value) internal {
        IERC20 erc20token = IERC20(_token);
        if (erc20token.allowance(address(this), _recipient) < _value) {
            erc20token.approve(_recipient, 0);
            erc20token.approve(_recipient, type(uint256).max);
        }
    }
}

File 2 of 5 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 4 of 5 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 5 of 5 : OnchainGateway.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";


contract OnchainGateway {
    address public immutable onchainSwap;

    modifier onlyOnchainSwap() {
        require(onchainSwap == msg.sender, "Symb: caller is not the onchainSwap");
        _;
    }

    constructor(address _onchainSwap) {
        onchainSwap = _onchainSwap;
    }

    function claimTokens(
        address _token,
        address _from,
        uint256 _amount
    ) external onlyOnchainSwap {
        IERC20(_token).transferFrom(_from, onchainSwap, _amount );
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 2000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"OnchainSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onchainGateway","outputs":[{"internalType":"contract OnchainGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"dex","type":"address"},{"internalType":"address","name":"dexgateway","type":"address"},{"internalType":"bytes","name":"calldata_","type":"bytes"}],"name":"onswap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405266b1a2bc2ec5000060015534801561001b57600080fd5b5061002533610084565b30604051610032906100d4565b6001600160a01b039091168152602001604051809103906000f08015801561005e573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b03929092169190911790556100e1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103a180610d2b83390190565b610c3b806100f06000396000f3fe60806040526004361061007b5760003560e01c8063c20bb33c1161004e578063c20bb33c14610101578063ddca3f4314610121578063df8de3e714610145578063f2fde38b1461016557600080fd5b806321c69a19146100805780636a1db1bf14610095578063715018a6146100b55780638da5cb5b146100ca575b600080fd5b61009361008e3660046109fe565b610185565b005b3480156100a157600080fd5b506100936100b0366004610b2b565b61046d565b3480156100c157600080fd5b506100936104cc565b3480156100d657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010d57600080fd5b506002546100e4906001600160a01b031681565b34801561012d57600080fd5b5061013760015481565b6040519081526020016100f8565b34801561015157600080fd5b506100936101603660046109dc565b610532565b34801561017157600080fd5b506100936101803660046109dc565b610676565b60015434101561019457600080fd5b6001600160a01b0385161561025e576002546001600160a01b0316639fc314c886336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0392831660048201529116602482015260448101879052606401600060405180830381600087803b15801561021d57600080fd5b505af1158015610231573d6000803e3d6000fd5b505050506001600160a01b0382166102535761024e858486610758565b61025e565b61025e858386610758565b6002546001600160a01b03848116911614156102e65760405162461bcd60e51b8152602060048201526024808201527f4f6e636861696e537761703a2063616c6c20746f206f6e636861696e2067617460448201527f657761790000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b823b838161035c5760405162461bcd60e51b815260206004820152602c60248201527f4f6e636861696e537761703a2063616c6c20666f722061206e6f6e2d636f6e7460448201527f72616374206163636f756e74000000000000000000000000000000000000000060648201526084016102dd565b50506000836001600160a01b0316600154346103789190610b98565b836040516103869190610b5d565b60006040518083038185875af1925050503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601960248201527f4f6e636861696e537761703a204661696c20746f2063616c6c0000000000000060448201526064016102dd565b600154604080516001600160a01b03891681526020810188905280820192909252517f61a4ff3bb8bbf861e1aa28d574e4b88959510ac2ae1b845521bb8c13c33d566b9181900360600190a1505050505050565b6000546001600160a01b031633146104c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102dd565b600155565b6000546001600160a01b031633146105265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102dd565b6105306000610958565b565b6000546001600160a01b0316331461058c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102dd565b60405147906000906001600160a01b0384169083908381818185875af1925050503d80600081146105d9576040519150601f19603f3d011682016040523d82523d6000602084013e6105de565b606091505b505090508061062f5760405162461bcd60e51b815260206004820152601460248201527f4661696c656420746f2073656e6420457468657200000000000000000000000060448201526064016102dd565b604080516001600160a01b0385168152602081018490527fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d7907910160405180910390a1505050565b6000546001600160a01b031633146106d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102dd565b6001600160a01b03811661074c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102dd565b61075581610958565b50565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0383811660248301528491839183169063dd62ed3e9060440160206040518083038186803b1580156107bc57600080fd5b505afa1580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190610b44565b1015610952576040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526000602483015282169063095ea7b390604401602060405180830381600087803b15801561085d57600080fd5b505af1158015610871573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108959190610b09565b506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602483015282169063095ea7b390604401602060405180830381600087803b15801561091857600080fd5b505af115801561092c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109509190610b09565b505b50505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146109d757600080fd5b919050565b6000602082840312156109ee57600080fd5b6109f7826109c0565b9392505050565b600080600080600060a08688031215610a1657600080fd5b610a1f866109c0565b945060208601359350610a34604087016109c0565b9250610a42606087016109c0565b9150608086013567ffffffffffffffff80821115610a5f57600080fd5b818801915088601f830112610a7357600080fd5b813581811115610a8557610a85610bd6565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610acb57610acb610bd6565b816040528281528b6020848701011115610ae457600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b600060208284031215610b1b57600080fd5b815180151581146109f757600080fd5b600060208284031215610b3d57600080fd5b5035919050565b600060208284031215610b5657600080fd5b5051919050565b6000825160005b81811015610b7e5760208186018101518583015201610b64565b81811115610b8d576000828501525b509190910192915050565b600082821015610bd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220f64887f09e0ad9ca1e07772942887db6c5ffb0fd1d140d1b7da95383f6b8b2ff64736f6c6343000807003360a060405234801561001057600080fd5b506040516103a13803806103a183398101604081905261002f91610044565b60601b6001600160601b031916608052610074565b60006020828403121561005657600080fd5b81516001600160a01b038116811461006d57600080fd5b9392505050565b60805160601c61030361009e6000396000818160400152818160a201526101ae01526103036000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632ec609031461003b5780639fc314c81461008b575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009e610099366004610268565b6100a0565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f53796d623a2063616c6c6572206973206e6f7420746865206f6e636861696e5360448201527f7761700000000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390528416906323b872dd90606401602060405180830381600087803b15801561020157600080fd5b505af1158015610215573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023991906102a4565b50505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461026357600080fd5b919050565b60008060006060848603121561027d57600080fd5b6102868461023f565b92506102946020850161023f565b9150604084013590509250925092565b6000602082840312156102b657600080fd5b815180151581146102c657600080fd5b939250505056fea2646970667358221220489f9ae0e5ff4d708afb664245d895032f4ff127fcb2102de46b4363065f699e64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061007b5760003560e01c8063c20bb33c1161004e578063c20bb33c14610101578063ddca3f4314610121578063df8de3e714610145578063f2fde38b1461016557600080fd5b806321c69a19146100805780636a1db1bf14610095578063715018a6146100b55780638da5cb5b146100ca575b600080fd5b61009361008e3660046109fe565b610185565b005b3480156100a157600080fd5b506100936100b0366004610b2b565b61046d565b3480156100c157600080fd5b506100936104cc565b3480156100d657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010d57600080fd5b506002546100e4906001600160a01b031681565b34801561012d57600080fd5b5061013760015481565b6040519081526020016100f8565b34801561015157600080fd5b506100936101603660046109dc565b610532565b34801561017157600080fd5b506100936101803660046109dc565b610676565b60015434101561019457600080fd5b6001600160a01b0385161561025e576002546001600160a01b0316639fc314c886336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0392831660048201529116602482015260448101879052606401600060405180830381600087803b15801561021d57600080fd5b505af1158015610231573d6000803e3d6000fd5b505050506001600160a01b0382166102535761024e858486610758565b61025e565b61025e858386610758565b6002546001600160a01b03848116911614156102e65760405162461bcd60e51b8152602060048201526024808201527f4f6e636861696e537761703a2063616c6c20746f206f6e636861696e2067617460448201527f657761790000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b823b838161035c5760405162461bcd60e51b815260206004820152602c60248201527f4f6e636861696e537761703a2063616c6c20666f722061206e6f6e2d636f6e7460448201527f72616374206163636f756e74000000000000000000000000000000000000000060648201526084016102dd565b50506000836001600160a01b0316600154346103789190610b98565b836040516103869190610b5d565b60006040518083038185875af1925050503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601960248201527f4f6e636861696e537761703a204661696c20746f2063616c6c0000000000000060448201526064016102dd565b600154604080516001600160a01b03891681526020810188905280820192909252517f61a4ff3bb8bbf861e1aa28d574e4b88959510ac2ae1b845521bb8c13c33d566b9181900360600190a1505050505050565b6000546001600160a01b031633146104c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102dd565b600155565b6000546001600160a01b031633146105265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102dd565b6105306000610958565b565b6000546001600160a01b0316331461058c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102dd565b60405147906000906001600160a01b0384169083908381818185875af1925050503d80600081146105d9576040519150601f19603f3d011682016040523d82523d6000602084013e6105de565b606091505b505090508061062f5760405162461bcd60e51b815260206004820152601460248201527f4661696c656420746f2073656e6420457468657200000000000000000000000060448201526064016102dd565b604080516001600160a01b0385168152602081018490527fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d7907910160405180910390a1505050565b6000546001600160a01b031633146106d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102dd565b6001600160a01b03811661074c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102dd565b61075581610958565b50565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0383811660248301528491839183169063dd62ed3e9060440160206040518083038186803b1580156107bc57600080fd5b505afa1580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190610b44565b1015610952576040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526000602483015282169063095ea7b390604401602060405180830381600087803b15801561085d57600080fd5b505af1158015610871573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108959190610b09565b506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602483015282169063095ea7b390604401602060405180830381600087803b15801561091857600080fd5b505af115801561092c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109509190610b09565b505b50505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146109d757600080fd5b919050565b6000602082840312156109ee57600080fd5b6109f7826109c0565b9392505050565b600080600080600060a08688031215610a1657600080fd5b610a1f866109c0565b945060208601359350610a34604087016109c0565b9250610a42606087016109c0565b9150608086013567ffffffffffffffff80821115610a5f57600080fd5b818801915088601f830112610a7357600080fd5b813581811115610a8557610a85610bd6565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610acb57610acb610bd6565b816040528281528b6020848701011115610ae457600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b600060208284031215610b1b57600080fd5b815180151581146109f757600080fd5b600060208284031215610b3d57600080fd5b5035919050565b600060208284031215610b5657600080fd5b5051919050565b6000825160005b81811015610b7e5760208186018101518583015201610b64565b81811115610b8d576000828501525b509190910192915050565b600082821015610bd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220f64887f09e0ad9ca1e07772942887db6c5ffb0fd1d140d1b7da95383f6b8b2ff64736f6c63430008070033

Block Transaction Gas Used Reward
view all blocks sequenced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.