ETH Price: $1,628.05 (-0.88%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer220794212025-03-19 7:27:1134 days ago1742369231IN
0x50F90bd2...2bbB96B2E
0 ETH0.000022840.4806381
Transfer214509822024-12-21 12:47:59121 days ago1734785279IN
0x50F90bd2...2bbB96B2E
0 ETH0.000459268.7741845
Transfer154211552022-08-27 10:53:54968 days ago1661597634IN
0x50F90bd2...2bbB96B2E
0 ETH0.000142593
Transfer152474102022-07-31 1:50:41996 days ago1659232241IN
0x50F90bd2...2bbB96B2E
0 ETH0.000156953
Transfer113398012020-11-27 9:31:531607 days ago1606469513IN
0x50F90bd2...2bbB96B2E
0 ETH0.0015392641
Transfer107124362020-08-22 21:13:481703 days ago1598130828IN
0x50F90bd2...2bbB96B2E
0 ETH0.0035195766.99999237
Approve105431492020-07-27 18:32:411729 days ago1595874761IN
0x50F90bd2...2bbB96B2E
0 ETH0.00482859109
Transfer100218612020-05-07 22:34:201810 days ago1588890860IN
0x50F90bd2...2bbB96B2E
0 ETH0.0005629615
Transfer99176502020-04-21 19:13:101826 days ago1587496390IN
0x50F90bd2...2bbB96B2E
0 ETH0.000045062
Transfer97531832020-03-27 11:25:211851 days ago1585308321IN
0x50F90bd2...2bbB96B2E
0 ETH0.000037531
Transfer94096872020-02-03 12:53:071904 days ago1580734387IN
0x50F90bd2...2bbB96B2E
0 ETH0.000037531
Transfer93475692020-01-24 23:51:171914 days ago1579909877IN
0x50F90bd2...2bbB96B2E
0 ETH0.0023644563
Transfer93449792020-01-24 14:16:431914 days ago1579875403IN
0x50F90bd2...2bbB96B2E
0 ETH0.000056331.5
Reclaim Token93446662020-01-24 13:14:071914 days ago1579871647IN
0x50F90bd2...2bbB96B2E
0 ETH0.000088843
Approve92248232020-01-06 4:55:481933 days ago1578286548IN
0x50F90bd2...2bbB96B2E
0 ETH0.0010996725
Transfer90795342019-12-09 21:23:071960 days ago1575926587IN
0x50F90bd2...2bbB96B2E
0 ETH0.000225116
Transfer90337502019-12-01 18:16:131968 days ago1575224173IN
0x50F90bd2...2bbB96B2E
0 ETH0.00003741
Transfer88784952019-11-05 16:00:221994 days ago1572969622IN
0x50F90bd2...2bbB96B2E
0 ETH0.000168044.5
Approve88537532019-11-01 16:42:051998 days ago1572626525IN
0x50F90bd2...2bbB96B2E
0 ETH0.0005473312
Transfer85934582019-09-21 15:40:312039 days ago1569080431IN
0x50F90bd2...2bbB96B2E
0 ETH0.0007389314.1
Approve83116662019-08-08 18:42:112083 days ago1565289731IN
0x50F90bd2...2bbB96B2E
0 ETH0.000182184
Transfer82840742019-08-04 12:00:432087 days ago1564920043IN
0x50F90bd2...2bbB96B2E
0 ETH0.00003741
Transfer81939522019-07-21 12:13:312101 days ago1563711211IN
0x50F90bd2...2bbB96B2E
0 ETH0.000089132.38681738
Transfer81240362019-07-10 14:30:162112 days ago1562769016IN
0x50F90bd2...2bbB96B2E
0 ETH0.000179453.42
Transfer81115062019-07-08 15:53:582114 days ago1562601238IN
0x50F90bd2...2bbB96B2E
0 ETH0.000149374
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:
NTOKTokenContract

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-08-01
*/

pragma solidity ^0.4.24;

library SafeMath {

    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
}

contract Ownable {
    address public owner;

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

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipRenounced(owner);
        owner = address(0);
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        _transferOwnership(_newOwner);
    }

    function _transferOwnership(address _newOwner) internal {
        require(_newOwner != address(0));
        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

contract Claimable is Ownable {
    address public pendingOwner;

    modifier onlyPendingOwner() {
        require(msg.sender == pendingOwner);
        _;
    }

    function transferOwnership(address newOwner) onlyOwner public {
        pendingOwner = newOwner;
    }

    function claimOwnership() onlyPendingOwner public {
        emit OwnershipTransferred(owner, pendingOwner);
        owner = pendingOwner;
        pendingOwner = address(0);
    }
}

contract ERC20Basic {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract BasicToken is ERC20Basic {
    using SafeMath for uint256;
    mapping(address => uint256) balances;
    uint256 totalSupply_;

    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_value <= balances[msg.sender]);
        require(_to != address(0));
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner];
    }
}

contract StandardToken is ERC20, BasicToken {
    mapping (address => mapping (address => uint256)) internal allowed;

    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    )
    public
    returns (bool)
    {
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);
        require(_to != address(0));
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(
        address _owner,
        address _spender
    )
    public
    view
    returns (uint256)
    {
        return allowed[_owner][_spender];
    }

    function increaseApproval(
        address _spender,
        uint256 _addedValue
    )
    public
    returns (bool)
    {
        allowed[msg.sender][_spender] = (
        allowed[msg.sender][_spender].add(_addedValue));
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval(
        address _spender,
        uint256 _subtractedValue
    )
    public
    returns (bool)
    {
        uint256 oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue >= oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
}

library SafeERC20 {
    function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
        require(token.transfer(to, value));
    }
    function safeTransferFrom(
        ERC20 token,
        address from,
        address to,
        uint256 value
    )
    internal
    {
        require(token.transferFrom(from, to, value));
    }
    function safeApprove(ERC20 token, address spender, uint256 value) internal {
        require(token.approve(spender, value));
    }
}

contract CanReclaimToken is Ownable {
    using SafeERC20 for ERC20Basic;

    function reclaimToken(ERC20Basic token) external onlyOwner {
        uint256 balance = token.balanceOf(this);
        token.safeTransfer(owner, balance);
    }
}

contract BurnableToken is BasicToken {
    event Burn(address indexed burner, uint256 value);

    function burn(uint256 _value) public {
        _burn(msg.sender, _value);
    }
    function _burn(address _who, uint256 _value) internal {
        require(_value <= balances[_who]);


        balances[_who] = balances[_who].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit Burn(_who, _value);
        emit Transfer(_who, address(0), _value);
    }
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    function add(Role storage role, address addr)
    internal
    {
        role.bearer[addr] = true;
    }

    function remove(Role storage role, address addr)
    internal
    {
        role.bearer[addr] = false;
    }

    function check(Role storage role, address addr)
    view
    internal
    {
        require(has(role, addr));
    }

    function has(Role storage role, address addr)
    view
    internal
    returns (bool)
    {
        return role.bearer[addr];
    }
}

contract RBAC {
    using Roles for Roles.Role;
    mapping (string => Roles.Role) private roles;
    event RoleAdded(address indexed operator, string role);
    event RoleRemoved(address indexed operator, string role);

    function checkRole(address _operator, string _role)
    view
    public
    {
        roles[_role].check(_operator);
    }

    function hasRole(address _operator, string _role)
    view
    public
    returns (bool)
    {
        return roles[_role].has(_operator);
    }

    function addRole(address _operator, string _role)
    internal
    {
        roles[_role].add(_operator);
        emit RoleAdded(_operator, _role);
    }

    function removeRole(address _operator, string _role)
    internal
    {
        roles[_role].remove(_operator);
        emit RoleRemoved(_operator, _role);
    }

    modifier onlyRole(string _role)
    {
        checkRole(msg.sender, _role);
        _;
    }
}

contract Whitelist is Ownable, RBAC {
    string public constant ROLE_WHITELISTED = "whitelist";

    modifier onlyIfWhitelisted(address _operator) {
        checkRole(_operator, ROLE_WHITELISTED);
        _;
    }

    function addAddressToWhitelist(address _operator)
    onlyOwner
    public
    {
        addRole(_operator, ROLE_WHITELISTED);
    }

    function whitelist(address _operator)
    public
    view
    returns (bool)
    {
        return hasRole(_operator, ROLE_WHITELISTED);
    }

    function addAddressesToWhitelist(address[] _operators)
    onlyOwner
    public
    {
        for (uint256 i = 0; i < _operators.length; i++) {
            addAddressToWhitelist(_operators[i]);
        }
    }

    function removeAddressFromWhitelist(address _operator)
    onlyOwner
    public
    {
        removeRole(_operator, ROLE_WHITELISTED);
    }

    function removeAddressesFromWhitelist(address[] _operators)
    onlyOwner
    public
    {
        for (uint256 i = 0; i < _operators.length; i++) {
            removeAddressFromWhitelist(_operators[i]);
        }
    }
}

contract DateKernel
{
    uint256 public unlockTime;
    constructor(uint256 _time) public {
        unlockTime = _time;
    }

    function determineDate() internal view
    returns (uint256 v)
    {
        uint256 n = now;
        uint256 ut = unlockTime;
        uint256 mo = 30 * 1 days;
        uint8 p = 10;
        assembly {
            if sgt(n, ut) {
                if or(slt(sub(n, ut), mo), eq(sub(n, ut), mo)) {
                    v := 1
                }
                if sgt(sub(n, ut), mo) {
                    v := add(div(sub(n, ut), mo), 1)
                }
                if or(eq(v, p), sgt(v, p)) {
                    v := p
                }
            }
        }
    }
}

contract Distributable is StandardToken, Ownable, Whitelist, DateKernel {
    using SafeMath for uint;
    event Distributed(uint256 amount);
    event MemberUpdated(address member, uint256 balance);
    struct member {
        uint256 lastWithdrawal;
        uint256 tokensTotal;
        uint256 tokensLeft;
    }

    mapping (address => member) public teams;

    function _transfer(address _from, address _to, uint256 _value) private returns (bool) {
        require(_value <= balances[_from]);
        require(_to != address(0));
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    function updateMember(address _who, uint256 _last, uint256 _total, uint256 _left) internal returns (bool) {
        teams[_who] = member(_last, _total, _left);
        emit MemberUpdated(_who, _left);
        return true;
    }

    function airdrop(address[] dests, uint256[] values) public onlyOwner {
        require(dests.length == values.length);
        for (uint256 i = 0; i < dests.length; i++) {
            transfer(dests[i], values[i]);
        }
    }

    function distributeTokens(address[] _member, uint256[] _amount)
    onlyOwner
    public
    returns (bool)
    {
        require(_member.length == _amount.length);
        for (uint256 i = 0; i < _member.length; i++) {
            updateMember(_member[i], 0, _amount[i], _amount[i]);
            addAddressToWhitelist(_member[i]);
        }
        emit Distributed(_member.length);
        return true;
    }

    function rewardController(address _member)
    internal
    returns (uint256)
    {
        member storage mbr = teams[_member];
        require(mbr.tokensLeft > 0, "You've spent your share");
        uint256 multiplier;
        uint256 callback;
        uint256 curDate = determineDate();
        uint256 lastDate = mbr.lastWithdrawal;
        if(curDate > lastDate) {
            multiplier = curDate.sub(lastDate);
        } else if(curDate == lastDate) {
            revert("Its no time");
        }
        if(mbr.tokensTotal >= mbr.tokensLeft && mbr.tokensTotal > 0) {
            if(curDate == 10) {
                callback = mbr.tokensLeft;
            } else {
                callback = multiplier.mul((mbr.tokensTotal).div(10));
            }
        }
        updateMember(
            _member,
            curDate,
            mbr.tokensTotal,
            mbr.tokensLeft.sub(callback)
        );
        return callback;
    }

    function getDistributedToken()
    public
    onlyIfWhitelisted(msg.sender)
    returns(bool)
    {
        require(unlockTime > now);
        uint256 amount = rewardController(msg.sender);
        _transfer(this, msg.sender, amount);
        return true;
    }
}

contract NTOKTokenContract is Distributable, BurnableToken, CanReclaimToken, Claimable {
    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public INITIAL_SUPPLY;
    
    constructor()
    public
    DateKernel(1541030400)
    {
        name = "NTOK Token Contract";
        symbol = "NTOK";
        decimals = 18; 
        INITIAL_SUPPLY = 33000000 * 10 ** uint256(decimals);
        totalSupply_ = INITIAL_SUPPLY;
        balances[msg.sender] = INITIAL_SUPPLY;
        emit Transfer(address(0), msg.sender, INITIAL_SUPPLY);
    }

    function() external {
        revert("Does not accept ether");
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"checkRole","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ROLE_WHITELISTED","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"hasRole","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operators","type":"address[]"}],"name":"removeAddressesFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"unlockTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getDistributedToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"removeAddressFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_member","type":"address[]"},{"name":"_amount","type":"uint256[]"}],"name":"distributeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dests","type":"address[]"},{"name":"values","type":"uint256[]"}],"name":"airdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"addAddressToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"teams","outputs":[{"name":"lastWithdrawal","type":"uint256"},{"name":"tokensTotal","type":"uint256"},{"name":"tokensLeft","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operators","type":"address[]"}],"name":"addAddressesToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"member","type":"address"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"MemberUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040523480156200001157600080fd5b5060038054600160a060020a03191633179055635bda42006005556040805180820190915260138082527f4e544f4b20546f6b656e20436f6e747261637400000000000000000000000000602090920191825262000072916008916200012c565b506040805180820190915260048082527f4e544f4b000000000000000000000000000000000000000000000000000000006020909201918252620000b9916009916200012c565b50600a8054601260ff199091161780825560ff16900a6301f78a4002600b819055600181905533600081815260208181526040808320859055805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016f57805160ff19168380011785556200019f565b828001600101855582156200019f579182015b828111156200019f57825182559160200191906001019062000182565b50620001ad929150620001b1565b5090565b620001ce91905b80821115620001ad5760008155600101620001b8565b90565b611c8780620001e16000396000f3006080604052600436106101955763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610209578063095ea7b3146102935780630988ca8c146102cb57806317ffc3201461033457806318160ddd1461035557806318b919e91461037c578063217fe6c61461039157806323b872dd146103f857806324953eaa14610422578063251c1aa31461047757806327d6ba211461048c578063286dd3f5146104a15780632ff2e9dc146104c2578063313ce567146104d757806342966c68146105025780634bd09c2a1461051a5780634e71e0c8146105a857806366188463146105bd57806367243482146105e157806370a082311461066f578063715018a6146106905780637b9417c8146106a55780638da5cb5b146106c657806395d89b41146106f75780639b19251a1461070c578063a9059cbb1461072d578063c458324014610751578063d73dd62314610790578063dd62ed3e146107b4578063e2ec6ec3146107db578063e30c397814610830578063f2fde38b14610845575b3480156101a157600080fd5b50604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f446f6573206e6f74206163636570742065746865720000000000000000000000604482015290519081900360640190fd5b34801561021557600080fd5b5061021e610866565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610258578181015183820152602001610240565b50505050905090810190601f1680156102855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029f57600080fd5b506102b7600160a060020a03600435166024356108f4565b604080519115158252519081900360200190f35b3480156102d757600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610332958335600160a060020a031695369560449491939091019190819084018382808284375094975061095b9650505050505050565b005b34801561034057600080fd5b50610332600160a060020a03600435166109c9565b34801561036157600080fd5b5061036a610a93565b60408051918252519081900360200190f35b34801561038857600080fd5b5061021e610a99565b34801561039d57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102b7958335600160a060020a0316953695604494919390910191908190840183828082843750949750610abe9650505050505050565b34801561040457600080fd5b506102b7600160a060020a0360043581169060243516604435610b31565b34801561042e57600080fd5b506040805160206004803580820135838102808601850190965280855261033295369593946024949385019291829185019084908082843750949750610c949650505050505050565b34801561048357600080fd5b5061036a610ce3565b34801561049857600080fd5b506102b7610ce9565b3480156104ad57600080fd5b50610332600160a060020a0360043516610d48565b3480156104ce57600080fd5b5061036a610d8f565b3480156104e357600080fd5b506104ec610d95565b6040805160ff9092168252519081900360200190f35b34801561050e57600080fd5b50610332600435610d9e565b34801561052657600080fd5b50604080516020600480358082013583810280860185019096528085526102b795369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610da89650505050505050565b3480156105b457600080fd5b50610332610e98565b3480156105c957600080fd5b506102b7600160a060020a0360043516602435610f22565b3480156105ed57600080fd5b506040805160206004803580820135838102808601850190965280855261033295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506110119650505050505050565b34801561067b57600080fd5b5061036a600160a060020a036004351661108c565b34801561069c57600080fd5b506103326110a7565b3480156106b157600080fd5b50610332600160a060020a0360043516611115565b3480156106d257600080fd5b506106db611159565b60408051600160a060020a039092168252519081900360200190f35b34801561070357600080fd5b5061021e611168565b34801561071857600080fd5b506102b7600160a060020a03600435166111c3565b34801561073957600080fd5b506102b7600160a060020a03600435166024356111f2565b34801561075d57600080fd5b50610772600160a060020a03600435166112bf565b60408051938452602084019290925282820152519081900360600190f35b34801561079c57600080fd5b506102b7600160a060020a03600435166024356112e0565b3480156107c057600080fd5b5061036a600160a060020a0360043581169060243516611379565b3480156107e757600080fd5b5060408051602060048035808201358381028086018501909652808552610332953695939460249493850192918291850190849080828437509497506113a49650505050505050565b34801561083c57600080fd5b506106db6113e4565b34801561085157600080fd5b50610332600160a060020a03600435166113f3565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b505050505081565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6109c5826004836040518082805190602001908083835b602083106109915780518252601f199092019160209182019101610972565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611439565b5050565b600354600090600160a060020a031633146109e357600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610a4457600080fd5b505af1158015610a58573d6000803e3d6000fd5b505050506040513d6020811015610a6e57600080fd5b50516003549091506109c590600160a060020a0384811691168363ffffffff61144e16565b60015490565b6040805180820190915260098152600080516020611c1c833981519152602082015281565b6000610b2a836004846040518082805190602001908083835b60208310610af65780518252601f199092019160209182019101610ad7565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611501565b9392505050565b600160a060020a038316600090815260208190526040812054821115610b5657600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610b8657600080fd5b600160a060020a0383161515610b9b57600080fd5b600160a060020a038416600090815260208190526040902054610bc4908363ffffffff61152016565b600160a060020a038086166000908152602081905260408082209390935590851681522054610bf9908363ffffffff61153216565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610c3b908363ffffffff61152016565b600160a060020a0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020611c3c833981519152929181900390910190a35060019392505050565b600354600090600160a060020a03163314610cae57600080fd5b5060005b81518110156109c557610cdb8282815181101515610ccc57fe5b90602001906020020151610d48565b600101610cb2565b60055481565b60008033610d1a81604080519081016040528060098152602001600080516020611c1c83398151915281525061095b565b6005544210610d2857600080fd5b610d313361153f565b9150610d3e303384611700565b5060019250505090565b600354600160a060020a03163314610d5f57600080fd5b610d8c81604080519081016040528060098152602001600080516020611c1c8339815191528152506117e5565b50565b600b5481565b600a5460ff1681565b610d8c33826118f6565b6003546000908190600160a060020a03163314610dc457600080fd5b8251845114610dd257600080fd5b5060005b8351811015610e5a57610e318482815181101515610df057fe5b9060200190602002015160008584815181101515610e0a57fe5b906020019060200201518685815181101515610e2257fe5b906020019060200201516119e5565b50610e528482815181101515610e4357fe5b90602001906020020151611115565b600101610dd6565b835160408051918252517fddc9c30275a04c48091f24199f9c405765de34d979d6847f5b9798a57232d2e59181900360200190a15060019392505050565b600754600160a060020a03163314610eaf57600080fd5b600754600354604051600160a060020a0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546003805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b336000908152600260209081526040808320600160a060020a0386168452909152812054808310610f7657336000908152600260209081526040808320600160a060020a0388168452909152812055610fab565b610f86818463ffffffff61152016565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600354600090600160a060020a0316331461102b57600080fd5b815183511461103957600080fd5b5060005b82518110156110875761107e838281518110151561105757fe5b90602001906020020151838381518110151561106f57fe5b906020019060200201516111f2565b5060010161103d565b505050565b600160a060020a031660009081526020819052604090205490565b600354600160a060020a031633146110be57600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600354600160a060020a0316331461112c57600080fd5b610d8c81604080519081016040528060098152602001600080516020611c1c833981519152815250611a6e565b600354600160a060020a031681565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108ec5780601f106108c1576101008083540402835291602001916108ec565b600061095582604080519081016040528060098152602001600080516020611c1c833981519152815250610abe565b3360009081526020819052604081205482111561120e57600080fd5b600160a060020a038316151561122357600080fd5b33600090815260208190526040902054611243908363ffffffff61152016565b3360009081526020819052604080822092909255600160a060020a03851681522054611275908363ffffffff61153216565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611c3c8339815191529281900390910190a350600192915050565b60066020526000908152604090208054600182015460029092015490919083565b336000908152600260209081526040808320600160a060020a0386168452909152812054611314908363ffffffff61153216565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600090600160a060020a031633146113be57600080fd5b5060005b81518110156109c5576113dc8282815181101515610e4357fe5b6001016113c2565b600754600160a060020a031681565b600354600160a060020a0316331461140a57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6114438282611501565b15156109c557600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ca57600080fd5b505af11580156114de573d6000803e3d6000fd5b505050506040513d60208110156114f457600080fd5b5051151561108757600080fd5b600160a060020a03166000908152602091909152604090205460ff1690565b60008282111561152c57fe5b50900390565b8181018281101561095557fe5b600160a060020a03811660009081526006602052604081206002810154829081908190819081106115d157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f596f75277665207370656e7420796f7572207368617265000000000000000000604482015290519081900360640190fd5b6115d9611b40565b85549092509050808211156115ff576115f8828263ffffffff61152016565b935061166e565b8082141561166e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f497473206e6f2074696d65000000000000000000000000000000000000000000604482015290519081900360640190fd5b846002015485600101541015801561168a575060008560010154115b156116ce5781600a14156116a457846002015492506116ce565b60018501546116cb906116be90600a63ffffffff611b9616565b859063ffffffff611bab16565b92505b6116f4878387600101546116ef878a6002015461152090919063ffffffff16565b6119e5565b50919695505050505050565b600160a060020a03831660009081526020819052604081205482111561172557600080fd5b600160a060020a038316151561173a57600080fd5b600160a060020a038416600090815260208190526040902054611763908363ffffffff61152016565b600160a060020a038086166000908152602081905260408082209390935590851681522054611798908363ffffffff61153216565b600160a060020a03808516600081815260208181526040918290209490945580518681529051919392881692600080516020611c3c83398151915292918290030190a35060019392505050565b61184f826004836040518082805190602001908083835b6020831061181b5780518252601f1990920191602091820191016117fc565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611bd4565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118b85781810151838201526020016118a0565b50505050905090810190601f1680156118e55780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03821660009081526020819052604090205481111561191b57600080fd5b600160a060020a038216600090815260208190526040902054611944908263ffffffff61152016565b600160a060020a038316600090815260208190526040902055600154611970908263ffffffff61152016565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611c3c8339815191529181900360200190a35050565b604080516060810182528481526020808201858152828401858152600160a060020a038916600081815260068552868120955186559251600186015590516002909401939093558351928352908201849052825190927f721b01fe9b63fefb91c981e165c04d96058511dc990901f8d80c37dd2f6f695e928290030190a1506001949350505050565b611ad8826004836040518082805190602001908083835b60208310611aa45780518252601f199092019160209182019101611a85565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611bf6565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b70048982604051808060200182810382528381815181526020019150805190602001908083836000838110156118b85781810151838201526020016118a0565b600554600090429062278d00600a82841315611b8f578284038281129083141715611b6a57600194505b818385031315611b7f57600182848603040194505b8085138186141715611b8f578094505b5050505090565b60008183811515611ba357fe5b049392505050565b6000821515611bbc57506000610955565b50818102818382811515611bcc57fe5b041461095557fe5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0316600090815260209190915260409020805460ff19166001179055560077686974656c6973740000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058202d1ab0b4db07b4b323daf78367917d789e8f1b2ae3c45f194bf783badb7883650029

Deployed Bytecode

0x6080604052600436106101955763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610209578063095ea7b3146102935780630988ca8c146102cb57806317ffc3201461033457806318160ddd1461035557806318b919e91461037c578063217fe6c61461039157806323b872dd146103f857806324953eaa14610422578063251c1aa31461047757806327d6ba211461048c578063286dd3f5146104a15780632ff2e9dc146104c2578063313ce567146104d757806342966c68146105025780634bd09c2a1461051a5780634e71e0c8146105a857806366188463146105bd57806367243482146105e157806370a082311461066f578063715018a6146106905780637b9417c8146106a55780638da5cb5b146106c657806395d89b41146106f75780639b19251a1461070c578063a9059cbb1461072d578063c458324014610751578063d73dd62314610790578063dd62ed3e146107b4578063e2ec6ec3146107db578063e30c397814610830578063f2fde38b14610845575b3480156101a157600080fd5b50604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f446f6573206e6f74206163636570742065746865720000000000000000000000604482015290519081900360640190fd5b34801561021557600080fd5b5061021e610866565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610258578181015183820152602001610240565b50505050905090810190601f1680156102855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029f57600080fd5b506102b7600160a060020a03600435166024356108f4565b604080519115158252519081900360200190f35b3480156102d757600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610332958335600160a060020a031695369560449491939091019190819084018382808284375094975061095b9650505050505050565b005b34801561034057600080fd5b50610332600160a060020a03600435166109c9565b34801561036157600080fd5b5061036a610a93565b60408051918252519081900360200190f35b34801561038857600080fd5b5061021e610a99565b34801561039d57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102b7958335600160a060020a0316953695604494919390910191908190840183828082843750949750610abe9650505050505050565b34801561040457600080fd5b506102b7600160a060020a0360043581169060243516604435610b31565b34801561042e57600080fd5b506040805160206004803580820135838102808601850190965280855261033295369593946024949385019291829185019084908082843750949750610c949650505050505050565b34801561048357600080fd5b5061036a610ce3565b34801561049857600080fd5b506102b7610ce9565b3480156104ad57600080fd5b50610332600160a060020a0360043516610d48565b3480156104ce57600080fd5b5061036a610d8f565b3480156104e357600080fd5b506104ec610d95565b6040805160ff9092168252519081900360200190f35b34801561050e57600080fd5b50610332600435610d9e565b34801561052657600080fd5b50604080516020600480358082013583810280860185019096528085526102b795369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610da89650505050505050565b3480156105b457600080fd5b50610332610e98565b3480156105c957600080fd5b506102b7600160a060020a0360043516602435610f22565b3480156105ed57600080fd5b506040805160206004803580820135838102808601850190965280855261033295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506110119650505050505050565b34801561067b57600080fd5b5061036a600160a060020a036004351661108c565b34801561069c57600080fd5b506103326110a7565b3480156106b157600080fd5b50610332600160a060020a0360043516611115565b3480156106d257600080fd5b506106db611159565b60408051600160a060020a039092168252519081900360200190f35b34801561070357600080fd5b5061021e611168565b34801561071857600080fd5b506102b7600160a060020a03600435166111c3565b34801561073957600080fd5b506102b7600160a060020a03600435166024356111f2565b34801561075d57600080fd5b50610772600160a060020a03600435166112bf565b60408051938452602084019290925282820152519081900360600190f35b34801561079c57600080fd5b506102b7600160a060020a03600435166024356112e0565b3480156107c057600080fd5b5061036a600160a060020a0360043581169060243516611379565b3480156107e757600080fd5b5060408051602060048035808201358381028086018501909652808552610332953695939460249493850192918291850190849080828437509497506113a49650505050505050565b34801561083c57600080fd5b506106db6113e4565b34801561085157600080fd5b50610332600160a060020a03600435166113f3565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b505050505081565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6109c5826004836040518082805190602001908083835b602083106109915780518252601f199092019160209182019101610972565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611439565b5050565b600354600090600160a060020a031633146109e357600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610a4457600080fd5b505af1158015610a58573d6000803e3d6000fd5b505050506040513d6020811015610a6e57600080fd5b50516003549091506109c590600160a060020a0384811691168363ffffffff61144e16565b60015490565b6040805180820190915260098152600080516020611c1c833981519152602082015281565b6000610b2a836004846040518082805190602001908083835b60208310610af65780518252601f199092019160209182019101610ad7565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611501565b9392505050565b600160a060020a038316600090815260208190526040812054821115610b5657600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610b8657600080fd5b600160a060020a0383161515610b9b57600080fd5b600160a060020a038416600090815260208190526040902054610bc4908363ffffffff61152016565b600160a060020a038086166000908152602081905260408082209390935590851681522054610bf9908363ffffffff61153216565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610c3b908363ffffffff61152016565b600160a060020a0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020611c3c833981519152929181900390910190a35060019392505050565b600354600090600160a060020a03163314610cae57600080fd5b5060005b81518110156109c557610cdb8282815181101515610ccc57fe5b90602001906020020151610d48565b600101610cb2565b60055481565b60008033610d1a81604080519081016040528060098152602001600080516020611c1c83398151915281525061095b565b6005544210610d2857600080fd5b610d313361153f565b9150610d3e303384611700565b5060019250505090565b600354600160a060020a03163314610d5f57600080fd5b610d8c81604080519081016040528060098152602001600080516020611c1c8339815191528152506117e5565b50565b600b5481565b600a5460ff1681565b610d8c33826118f6565b6003546000908190600160a060020a03163314610dc457600080fd5b8251845114610dd257600080fd5b5060005b8351811015610e5a57610e318482815181101515610df057fe5b9060200190602002015160008584815181101515610e0a57fe5b906020019060200201518685815181101515610e2257fe5b906020019060200201516119e5565b50610e528482815181101515610e4357fe5b90602001906020020151611115565b600101610dd6565b835160408051918252517fddc9c30275a04c48091f24199f9c405765de34d979d6847f5b9798a57232d2e59181900360200190a15060019392505050565b600754600160a060020a03163314610eaf57600080fd5b600754600354604051600160a060020a0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546003805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b336000908152600260209081526040808320600160a060020a0386168452909152812054808310610f7657336000908152600260209081526040808320600160a060020a0388168452909152812055610fab565b610f86818463ffffffff61152016565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600354600090600160a060020a0316331461102b57600080fd5b815183511461103957600080fd5b5060005b82518110156110875761107e838281518110151561105757fe5b90602001906020020151838381518110151561106f57fe5b906020019060200201516111f2565b5060010161103d565b505050565b600160a060020a031660009081526020819052604090205490565b600354600160a060020a031633146110be57600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600354600160a060020a0316331461112c57600080fd5b610d8c81604080519081016040528060098152602001600080516020611c1c833981519152815250611a6e565b600354600160a060020a031681565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108ec5780601f106108c1576101008083540402835291602001916108ec565b600061095582604080519081016040528060098152602001600080516020611c1c833981519152815250610abe565b3360009081526020819052604081205482111561120e57600080fd5b600160a060020a038316151561122357600080fd5b33600090815260208190526040902054611243908363ffffffff61152016565b3360009081526020819052604080822092909255600160a060020a03851681522054611275908363ffffffff61153216565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611c3c8339815191529281900390910190a350600192915050565b60066020526000908152604090208054600182015460029092015490919083565b336000908152600260209081526040808320600160a060020a0386168452909152812054611314908363ffffffff61153216565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600090600160a060020a031633146113be57600080fd5b5060005b81518110156109c5576113dc8282815181101515610e4357fe5b6001016113c2565b600754600160a060020a031681565b600354600160a060020a0316331461140a57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6114438282611501565b15156109c557600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ca57600080fd5b505af11580156114de573d6000803e3d6000fd5b505050506040513d60208110156114f457600080fd5b5051151561108757600080fd5b600160a060020a03166000908152602091909152604090205460ff1690565b60008282111561152c57fe5b50900390565b8181018281101561095557fe5b600160a060020a03811660009081526006602052604081206002810154829081908190819081106115d157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f596f75277665207370656e7420796f7572207368617265000000000000000000604482015290519081900360640190fd5b6115d9611b40565b85549092509050808211156115ff576115f8828263ffffffff61152016565b935061166e565b8082141561166e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f497473206e6f2074696d65000000000000000000000000000000000000000000604482015290519081900360640190fd5b846002015485600101541015801561168a575060008560010154115b156116ce5781600a14156116a457846002015492506116ce565b60018501546116cb906116be90600a63ffffffff611b9616565b859063ffffffff611bab16565b92505b6116f4878387600101546116ef878a6002015461152090919063ffffffff16565b6119e5565b50919695505050505050565b600160a060020a03831660009081526020819052604081205482111561172557600080fd5b600160a060020a038316151561173a57600080fd5b600160a060020a038416600090815260208190526040902054611763908363ffffffff61152016565b600160a060020a038086166000908152602081905260408082209390935590851681522054611798908363ffffffff61153216565b600160a060020a03808516600081815260208181526040918290209490945580518681529051919392881692600080516020611c3c83398151915292918290030190a35060019392505050565b61184f826004836040518082805190602001908083835b6020831061181b5780518252601f1990920191602091820191016117fc565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611bd4565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118b85781810151838201526020016118a0565b50505050905090810190601f1680156118e55780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03821660009081526020819052604090205481111561191b57600080fd5b600160a060020a038216600090815260208190526040902054611944908263ffffffff61152016565b600160a060020a038316600090815260208190526040902055600154611970908263ffffffff61152016565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611c3c8339815191529181900360200190a35050565b604080516060810182528481526020808201858152828401858152600160a060020a038916600081815260068552868120955186559251600186015590516002909401939093558351928352908201849052825190927f721b01fe9b63fefb91c981e165c04d96058511dc990901f8d80c37dd2f6f695e928290030190a1506001949350505050565b611ad8826004836040518082805190602001908083835b60208310611aa45780518252601f199092019160209182019101611a85565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611bf6565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b70048982604051808060200182810382528381815181526020019150805190602001908083836000838110156118b85781810151838201526020016118a0565b600554600090429062278d00600a82841315611b8f578284038281129083141715611b6a57600194505b818385031315611b7f57600182848603040194505b8085138186141715611b8f578094505b5050505090565b60008183811515611ba357fe5b049392505050565b6000821515611bbc57506000610955565b50818102818382811515611bcc57fe5b041461095557fe5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0316600090815260209190915260409020805460ff19166001179055560077686974656c6973740000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058202d1ab0b4db07b4b323daf78367917d789e8f1b2ae3c45f194bf783badb7883650029

Swarm Source

bzzr://2d1ab0b4db07b4b323daf78367917d789e8f1b2ae3c45f194bf783badb788365

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.