ETH Price: $2,564.06 (+0.71%)

Contract

0x78750ec32b4e46FD9512336abD3cb2E4127C29f3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Tokens107094232020-08-22 10:12:001491 days ago1598091120IN
0x78750ec3...4127C29f3
0 ETH0.004845767
Hodl Tokens106233272020-08-09 3:44:091504 days ago1596944649IN
0x78750ec3...4127C29f3
0 ETH0.0111851452
Claim Tokens106156182020-08-07 23:10:141505 days ago1596841814IN
0x78750ec3...4127C29f3
0 ETH0.0023239534.27004797
Claim Tokens106156062020-08-07 23:07:521505 days ago1596841672IN
0x78750ec3...4127C29f3
0 ETH0.0024045335
Claim Tokens104589892020-07-14 17:32:241530 days ago1594747944IN
0x78750ec3...4127C29f3
0 ETH0.0034715548
Claim Tokens103431202020-06-26 18:48:481548 days ago1593197328IN
0x78750ec3...4127C29f3
0 ETH0.0018150728
Claim Tokens102497522020-06-12 8:25:411562 days ago1591950341IN
0x78750ec3...4127C29f3
0 ETH0.0006968730
Claim Tokens102497522020-06-12 8:25:411562 days ago1591950341IN
0x78750ec3...4127C29f3
0 ETH0.0019447230
Claim Tokens102345312020-06-09 23:33:031564 days ago1591745583IN
0x78750ec3...4127C29f3
0 ETH0.0015911222
Hodl Tokens101673282020-05-30 13:12:451575 days ago1590844365IN
0x78750ec3...4127C29f3
0 ETH0.0043041320.01
Claim Tokens101588442020-05-29 5:36:151576 days ago1590730575IN
0x78750ec3...4127C29f3
0 ETH0.0010371816
Claim Tokens100595552020-05-13 18:58:471592 days ago1589396327IN
0x78750ec3...4127C29f3
0 ETH0.001518821
Claim Tokens100248632020-05-08 9:55:081597 days ago1588931708IN
0x78750ec3...4127C29f3
0 ETH0.0008700113
Claim Tokens98440682020-04-10 10:53:401625 days ago1586516020IN
0x78750ec3...4127C29f3
0 ETH0.000216973
Claim Tokens98322452020-04-08 15:09:591627 days ago1586358599IN
0x78750ec3...4127C29f3
0 ETH0.000324125
Claim Tokens94633692020-02-11 18:39:321684 days ago1581446372IN
0x78750ec3...4127C29f3
0 ETH0.000194473
Claim Tokens94430122020-02-08 15:59:001687 days ago1581177540IN
0x78750ec3...4127C29f3
0 ETH0.000194473
Hodl Tokens93633922020-01-27 10:12:451699 days ago1580119965IN
0x78750ec3...4127C29f3
0 ETH0.000215091
Claim Tokens93633222020-01-27 9:54:501699 days ago1580118890IN
0x78750ec3...4127C29f3
0 ETH0.000072321
Hodl Tokens93548472020-01-26 2:45:131700 days ago1580006713IN
0x78750ec3...4127C29f3
0 ETH0.000200111
Claim Tokens93548282020-01-26 2:40:591700 days ago1580006459IN
0x78750ec3...4127C29f3
0 ETH0.000065711
Hodl Tokens93548242020-01-26 2:40:041700 days ago1580006404IN
0x78750ec3...4127C29f3
0 ETH0.000215091
Claim Tokens93548242020-01-26 2:40:041700 days ago1580006404IN
0x78750ec3...4127C29f3
0 ETH0.000066921
Claim Tokens93445492020-01-24 12:44:121702 days ago1579869852IN
0x78750ec3...4127C29f3
0 ETH0.000064821
Hodl Tokens89295452019-11-14 0:56:141773 days ago1573692974IN
0x78750ec3...4127C29f3
0 ETH0.000205361
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:
ERC20tokensHodl

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-01-20
*/

pragma solidity ^0.4.25;
pragma experimental ABIEncoderV2;
/**
* 
* AXPR ERC20 Tokens Hodling
* 
* Copyright: © All Rights Reserved  |  Axpire 2019
* 
* Author: Gustavo Basanta
* 
*/
contract OwnableContract {
     
    event onTransferOwnership(address newOwner);
 
    address superOwner;
      
    constructor() public { 
        superOwner = msg.sender;
    }
    
    modifier onlyOwner() {
        require(msg.sender == superOwner);
        _;
    } 
      
    function viewSuperOwner() public view returns (address owner) {
        return superOwner;
    }
      
    function changeOwner(address newOwner) onlyOwner public {
        require(newOwner != superOwner);
        
        superOwner = newOwner;
        
        emit onTransferOwnership(superOwner);
    }
}

contract BlockableContract is OwnableContract {
    
    event onBlockHODLs(bool status);
 
    bool public blockedContract;
    
    constructor() public { 
        blockedContract = false;  
    }
    
    modifier contractActive() {
        require(!blockedContract);
        _;
    } 
    
    function doBlockContract() onlyOwner public {
        blockedContract = true;
        
        emit onBlockHODLs(blockedContract);
    }
    
    function unBlockContract() onlyOwner public {
        blockedContract = false;
        
        emit onBlockHODLs(blockedContract);
    }
}

contract ERC20tokensHodl is BlockableContract {
    
    /**
    * Events
    */
    event onStoreProfileHash(address indexed hodler, string profileHashed);
    event onHodlTokens(address indexed hodler, address indexed tokenAddress, string tokenSymbol, uint256 amount, uint256 endtime);
    event onClaimTokens(address indexed hodler, address indexed tokenAddress, string tokenSymbol, uint256 amount, uint256 endtime);
    event onReturnAll(uint256 returned);

    /**
    * State variables
    */
    address internal AXPRtoken;
    mapping(address => string) public profileHashed;
    uint256 public hodlingTime;
    uint256 public allTimeHighPrice;

    struct Safe {
        uint256 id;
        uint256 amount;
        uint256 endtime;
        address user;
        address tokenAddress;
        string tokenSymbol;
    }
    
    /**
    * @dev safes variables
    */
    mapping(address => uint256[]) public _userSafes;
    mapping(uint256 => Safe) private _safes;
    uint256 private _currentIndex;
    uint256 public _countSafes;
    mapping(address => uint256) public _totalSaved;
    
    /**
    * @dev owner variables
    */
    uint256 public comission; //0..30
    mapping(address => uint256) private _systemReserves;    
    address[] public _listedReserves;
    
    /**
    * constructor
    */
    constructor() public {
        
        AXPRtoken = 0xC39E626A04C5971D770e319760D7926502975e47;
        
        hodlingTime = 365 days;
        _currentIndex = 1;
        comission = 5;
    }
    
    /**
    * fallback function to receive donation in eth
    */
    function () public payable {
        require(msg.value > 0);
        
        _systemReserves[0x0] = add(_systemReserves[0x0], msg.value);
    }

    /**
    * store the profile's hash in the blockchain
    */
    function storeProfileHashed(string _profileHashed) public {
        profileHashed[msg.sender] = _profileHashed;        

        emit onStoreProfileHash(msg.sender, _profileHashed);
    }
    
    /**
    * add new hodl safe (ERC20 token)
    */
    function HodlTokens(address tokenAddress, uint256 amount) public contractActive {
        require(tokenAddress != 0x0);
        require(amount > 0);
          
        ERC20Interface token = ERC20Interface(tokenAddress);
        
        require(token.transferFrom(msg.sender, address(this), amount));
        
        _userSafes[msg.sender].push(_currentIndex);
        _safes[_currentIndex] = Safe(_currentIndex, amount, now + hodlingTime, msg.sender, tokenAddress, token.symbol());
        
        _totalSaved[tokenAddress] = add(_totalSaved[tokenAddress], amount);
        
        _currentIndex++;
        _countSafes++;
        
        emit onHodlTokens(msg.sender, tokenAddress, token.symbol(), amount, now + hodlingTime);
    }

    /**
    * user, claim back a hodl safe
    */
    function ClaimTokens(address tokenAddress, uint256 id) public {
        require(tokenAddress != 0x0);
        require(id != 0);        
        
        Safe storage s = _safes[id];
        require(s.user == msg.sender);
        
        RetireHodl(tokenAddress, id);
    }
    
    function RetireHodl(address tokenAddress, uint256 id) private {

        Safe storage s = _safes[id];
        
        require(s.id != 0);
        require(s.tokenAddress == tokenAddress);
        require(
                (tokenAddress == AXPRtoken && s.endtime < now ) ||
                    tokenAddress != AXPRtoken
                );

        uint256 eventAmount;
        address eventTokenAddress = s.tokenAddress;
        string memory eventTokenSymbol = s.tokenSymbol;
        
        if(s.endtime < now) // hodl complete
        {
            PayToken(s.user, s.tokenAddress, s.amount);
            
            eventAmount = s.amount;
        }
        else // hodl still in progress (penalty fee applies), not for AXPR tokens
        {
            uint256 realComission = mul(s.amount, comission) / 100;
            uint256 realAmount = sub(s.amount, realComission);
            
            PayToken(s.user, s.tokenAddress, realAmount);
                
            StoreComission(s.tokenAddress, realComission);
            
            eventAmount = realAmount;
        }
        
        DeleteSafe(s);
        _countSafes--;
        
        emit onClaimTokens(msg.sender, eventTokenAddress, eventTokenSymbol, eventAmount, now);
    }    
    
    /**
    * store comission from unfinished hodl
    */
    function StoreComission(address tokenAddress, uint256 amount) private {
            
        _systemReserves[tokenAddress] = add(_systemReserves[tokenAddress], amount);
        
        bool isNew = true;
        for(uint256 i = 0; i < _listedReserves.length; i++) {
            if(_listedReserves[i] == tokenAddress) {
                isNew = false;
                break;
            }
        }         
        if(isNew) _listedReserves.push(tokenAddress); 
    }    
    
    /**
    * private pay token to address
    */
    function PayToken(address user, address tokenAddress, uint256 amount) private {
        
        ERC20Interface token = ERC20Interface(tokenAddress);
        
        require(token.balanceOf(address(this)) >= amount);
        token.transfer(user, amount);
    }   
    
    /**
    * delete safe values in storage
    */
    function DeleteSafe(Safe s) private {
        
        _totalSaved[s.tokenAddress] = sub(_totalSaved[s.tokenAddress], s.amount);
        delete _safes[s.id];
        
        uint256[] storage vector = _userSafes[msg.sender];
        uint256 size = vector.length; 
        for(uint256 i = 0; i < size; i++) {
            if(vector[i] == s.id) {
                vector[i] = vector[size-1];
                vector.length--;
                break;
            }
        } 
    }

    /**
    * Get user's any token balance
    */
    function GetHodlTokensBalance(address tokenAddress) public view returns (uint256 balance) {
        require(tokenAddress != 0x0);
        
        for(uint256 i = 1; i < _currentIndex; i++) {            
            Safe storage s = _safes[i];
            if(s.user == msg.sender && s.tokenAddress == tokenAddress)
                balance += s.amount;
        }
        return balance;
    }

    /**
    * Get how many safes has the user
    */
    function GetUserSafesLength(address hodler) public view returns (uint256 length) {
        return _userSafes[hodler].length;
    }
    
    /**
    * Get safes values
    */
    function GetSafe(uint256 _id) public view
        returns (uint256 id, address user, address tokenAddress, uint256 amount, uint256 time)
    {
        Safe storage s = _safes[_id];
        return(s.id, s.user, s.tokenAddress, s.amount, s.endtime);
    }
    
    /**
    * Get tokens reserved for the owner as commission
    */
    function GetTokenFees(address tokenAddress) private view returns (uint256 amount) {
        return _systemReserves[tokenAddress];
    }    
    
    /**
    * Get contract's balance
    */
    function GetContractBalance() public view returns(uint256)
    {
        return address(this).balance;
    }    
    
    /**
    * ONLY OWNER
    * 
    * owner: retire hodl safe
    */
    function OwnerRetireHodl(address tokenAddress, uint256 id) public onlyOwner {
        require(tokenAddress != 0x0);
        require(id != 0);
        
        RetireHodl(tokenAddress, id);
    }
    
    /**
    * owner: change hodling time
    */
    function ChangeHodlingTime(uint256 newHodlingDays) onlyOwner public {
        require(newHodlingDays >= 60);
        
        hodlingTime = newHodlingDays * 1 days;
    }   
    
    /**
    * owner: change all time high price
    */
    function ChangeAllTimeHighPrice(uint256 newAllTimeHighPrice) onlyOwner public {
        require(newAllTimeHighPrice > allTimeHighPrice);
        
        allTimeHighPrice = newAllTimeHighPrice;
    }              

    /**
    * owner: change comission value
    */
    function ChangeComission(uint256 newComission) onlyOwner public {
        require(newComission <= 30);
        
        comission = newComission;
    }
    
    /**
    * owner: withdraw token fees by address
    */
    function WithdrawTokenFees(address tokenAddress) onlyOwner public {
        require(_systemReserves[tokenAddress] > 0);
        
        uint256 amount = _systemReserves[tokenAddress];
        _systemReserves[tokenAddress] = 0;
        
        ERC20Interface token = ERC20Interface(tokenAddress);
        
        require(token.balanceOf(address(this)) >= amount);
        token.transfer(msg.sender, amount);
    }

    /**
    * owner: withdraw all eth and all tokens fees
    */
    function WithdrawAllFees() onlyOwner public {
        
        // ether
        uint256 x = _systemReserves[0x0];
        if(x > 0 && x <= address(this).balance) {
            _systemReserves[0x0] = 0;
            msg.sender.transfer(_systemReserves[0x0]);
        }
        
        // tokens
        address ta;
        ERC20Interface token;
        for(uint256 i = 0; i < _listedReserves.length; i++) {
            ta = _listedReserves[i];
            if(_systemReserves[ta] > 0)
            { 
                x = _systemReserves[ta];
                _systemReserves[ta] = 0;
                
                token = ERC20Interface(ta);
                token.transfer(msg.sender, x);
            }
        }
        _listedReserves.length = 0; 
    }
    
    /**
    * owner: withdraw ether received through fallback function
    */
    function WithdrawEth(uint256 amount) onlyOwner public {
        require(amount > 0); 
        require(address(this).balance >= amount); 
        
        msg.sender.transfer(amount);
    }

    /**
    * owner: returns all tokens addresses with fees
    */    
    function GetTokensAddressesWithFees() 
        onlyOwner public view 
        returns (address[], string[], uint256[])
    {
        uint256 length = _listedReserves.length;
        
        address[] memory tokenAddress = new address[](length);
        string[] memory tokenSymbol = new string[](length);
        uint256[] memory tokenFees = new uint256[](length);
        
        for (uint256 i = 0; i < length; i++) {
    
            tokenAddress[i] = _listedReserves[i];
            
            ERC20Interface token = ERC20Interface(tokenAddress[i]);
            
            tokenSymbol[i] = token.symbol();
            tokenFees[i] = GetTokenFees(tokenAddress[i]);
        }
        
        return (tokenAddress, tokenSymbol, tokenFees);
    }

    /**
    * owner: return all tokens to their respective addresses
    */
    function ReturnAllTokens(bool onlyAXPR) onlyOwner public
    {
        uint256 returned;

        for(uint256 i = 1; i < _currentIndex; i++) {            
            Safe storage s = _safes[i];
            if (s.id != 0) {
                if (
                    (onlyAXPR && s.tokenAddress == AXPRtoken) ||
                    !onlyAXPR
                    )
                {
                    PayToken(s.user, s.tokenAddress, s.amount);
                    DeleteSafe(s);
                    
                    _countSafes--;
                    returned++;
                }
            }
        }

        emit onReturnAll(returned);
    }    


    /**
    * SAFE MATH FUNCTIONS
    * 
    * @dev Multiplies two numbers, throws on overflow.
    */
    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;
    }
    
    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        // uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return a / b;
    }
    
    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    
    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
    
}

contract ERC20Interface {
    /* This is a slight change to the ERC20 base standard.
    function totalSupply() constant returns (uint256 supply);
    is replaced with:
    uint256 public totalSupply;
    This automatically creates a getter function for the totalSupply.
    This is moved to the base contract since public getter functions are not
    currently recognised as an implementation of the matching abstract
    function by the compiler.
    */
    // total amount of tokens
    uint256 public totalSupply;
    
    //How many decimals to show.
    uint256 public decimals;
    
    // token symbol
    function symbol() public view returns (string);
    
    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) public view returns (uint256 balance);

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) public returns (bool success);

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);

    /// @notice `msg.sender` approves `_spender` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) public returns (bool success);

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);

    // solhint-disable-next-line no-simple-event-func-name  
    event Transfer(address indexed _from, address indexed _to, uint256 _value); 
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"profileHashed","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"_userSafes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"_listedReserves","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAllTimeHighPrice","type":"uint256"}],"name":"ChangeAllTimeHighPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"comission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doBlockContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"GetSafe","outputs":[{"name":"id","type":"uint256"},{"name":"user","type":"address"},{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"},{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"id","type":"uint256"}],"name":"ClaimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"}],"name":"WithdrawTokenFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"onlyAXPR","type":"bool"}],"name":"ReturnAllTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"_totalSaved","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blockedContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newHodlingDays","type":"uint256"}],"name":"ChangeHodlingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_countSafes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenAddress","type":"address"}],"name":"GetHodlTokensBalance","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"WithdrawAllFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newComission","type":"uint256"}],"name":"ChangeComission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"WithdrawEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetTokensAddressesWithFees","outputs":[{"name":"","type":"address[]"},{"name":"","type":"string[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"id","type":"uint256"}],"name":"OwnerRetireHodl","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"viewSuperOwner","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unBlockContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"hodler","type":"address"}],"name":"GetUserSafesLength","outputs":[{"name":"length","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_profileHashed","type":"string"}],"name":"storeProfileHashed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"allTimeHighPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hodlingTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"}],"name":"HodlTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetContractBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hodler","type":"address"},{"indexed":false,"name":"profileHashed","type":"string"}],"name":"onStoreProfileHash","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hodler","type":"address"},{"indexed":true,"name":"tokenAddress","type":"address"},{"indexed":false,"name":"tokenSymbol","type":"string"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"endtime","type":"uint256"}],"name":"onHodlTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hodler","type":"address"},{"indexed":true,"name":"tokenAddress","type":"address"},{"indexed":false,"name":"tokenSymbol","type":"string"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"endtime","type":"uint256"}],"name":"onClaimTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"returned","type":"uint256"}],"name":"onReturnAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"status","type":"bool"}],"name":"onBlockHODLs","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"onTransferOwnership","type":"event"}]

608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060146101000a81548160ff02191690831515021790555073c39e626a04c5971d770e319760d7926502975e47600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506301e1338060038190555060016007819055506005600a81905550613798806100ea6000396000f300608060405260043610610174576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680622b5c0a146101e557806311a3311c146102225780631c019a521461025f578063365655f01461029c5780633a4b4532146102c55780633e8cc273146102f057806347f849cd146103075780634d7f917f14610348578063539a67bf14610371578063650db56d1461039a578063666a7370146103c357806371ea29df1461040057806379883bba1461042b57806393002f021461045457806398c7aba21461047f57806399f57e05146104bc5780639aaa38a6146104d3578063a6f9dae1146104fc578063b2a3fd0514610525578063bbe316be1461054e578063cfe7de071461057b578063d3a516d3146105a4578063d64ee8d2146105cf578063d9d61a10146105e6578063d9df23c014610623578063da546cb21461064c578063e2afe3bb14610677578063e61021e8146106a2578063f6d0bf2f146106cb575b60003411151561018357600080fd5b6101b6600b60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054346106f6565b600b60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550005b3480156101f157600080fd5b5061020c600480360361020791908101906130a7565b610712565b60405161021991906134d1565b60405180910390f35b34801561022e57600080fd5b50610249600480360361024491908101906130d0565b6107c2565b6040516102569190613553565b60405180910390f35b34801561026b57600080fd5b50610286600480360361028191908101906131e0565b6107f2565b60405161029391906133ef565b60405180910390f35b3480156102a857600080fd5b506102c360048036036102be91908101906131e0565b610830565b005b3480156102d157600080fd5b506102da6108a5565b6040516102e79190613553565b60405180910390f35b3480156102fc57600080fd5b506103056108ab565b005b34801561031357600080fd5b5061032e600480360361032991908101906131e0565b610969565b60405161033f95949392919061356e565b60405180910390f35b34801561035457600080fd5b5061036f600480360361036a91908101906130d0565b6109f4565b005b34801561037d57600080fd5b50610398600480360361039391908101906130a7565b610aad565b005b3480156103a657600080fd5b506103c160048036036103bc919081019061310c565b610d47565b005b3480156103cf57600080fd5b506103ea60048036036103e591908101906130a7565b6110a4565b6040516103f79190613553565b60405180910390f35b34801561040c57600080fd5b506104156110bc565b60405161042291906134b6565b60405180910390f35b34801561043757600080fd5b50610452600480360361044d91908101906131e0565b6110cf565b005b34801561046057600080fd5b50610469611149565b6040516104769190613553565b60405180910390f35b34801561048b57600080fd5b506104a660048036036104a191908101906130a7565b61114f565b6040516104b39190613553565b60405180910390f35b3480156104c857600080fd5b506104d1611271565b005b3480156104df57600080fd5b506104fa60048036036104f591908101906131e0565b6115b8565b005b34801561050857600080fd5b50610523600480360361051e91908101906130a7565b61162d565b005b34801561053157600080fd5b5061054c600480360361054791908101906131e0565b61177f565b005b34801561055a57600080fd5b50610563611859565b6040516105729392919061346a565b60405180910390f35b34801561058757600080fd5b506105a2600480360361059d91908101906130d0565b611b2a565b005b3480156105b057600080fd5b506105b9611bc9565b6040516105c691906133ef565b60405180910390f35b3480156105db57600080fd5b506105e4611bf2565b005b3480156105f257600080fd5b5061060d600480360361060891908101906130a7565b611caf565b60405161061a9190613553565b60405180910390f35b34801561062f57600080fd5b5061064a6004803603610645919081019061315e565b611cfb565b005b34801561065857600080fd5b50610661611da0565b60405161066e9190613553565b60405180910390f35b34801561068357600080fd5b5061068c611da6565b6040516106999190613553565b60405180910390f35b3480156106ae57600080fd5b506106c960048036036106c491908101906130d0565b611dac565b005b3480156106d757600080fd5b506106e06122c5565b6040516106ed9190613553565b60405180910390f35b6000818301905082811015151561070957fe5b80905092915050565b60026020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107ba5780601f1061078f576101008083540402835291602001916107ba565b820191906000526020600020905b81548152906001019060200180831161079d57829003601f168201915b505050505081565b6005602052816000526040600020818154811015156107dd57fe5b90600052602060002001600091509150505481565b600c8181548110151561080157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561088b57600080fd5b6004548111151561089b57600080fd5b8060048190555050565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561090657600080fd5b6001600060146101000a81548160ff0219169083151502179055507fadac2a07dd926cc50f681194fe221f6245cdafa96623d1c64fa69c027182f40a600060149054906101000a900460ff1660405161095f91906134b6565b60405180910390a1565b60008060008060008060066000888152602001908152602001600020905080600001548160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600101548460020154955095509550955095505091939590929450565b6000808373ffffffffffffffffffffffffffffffffffffffff1614151515610a1b57600080fd5b60008214151515610a2b57600080fd5b6006600083815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a9e57600080fd5b610aa883836122e4565b505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b0b57600080fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610b5957600080fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550829050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c3991906133ef565b602060405180830381600087803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c8b9190810190613209565b10151515610c9857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610cef929190613441565b602060405180830381600087803b158015610d0957600080fd5b505af1158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d419190810190613135565b50505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da757600080fd5b600191505b600754821015611067576006600083815260200190815260200160002090506000816000015414151561105a57838015610e575750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610e60575083155b1561105957610ebc8160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360010154612828565b61103d8160c060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561102f5780601f106110045761010080835404028352916020019161102f565b820191906000526020600020905b81548152906001019060200180831161101257829003601f168201915b505050505081525050612992565b6008600081548092919060019003919050555082806001019350505b5b8180600101925050610dac565b7faeb4f5733a2e8073f7ddf9b69cdc1588e959cec9ac8b80866c29237cbe281fbe836040516110969190613553565b60405180910390a150505050565b60096020528060005260406000206000915090505481565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561112a57600080fd5b603c811015151561113a57600080fd5b62015180810260038190555050565b60085481565b6000806000808473ffffffffffffffffffffffffffffffffffffffff161415151561117957600080fd5b600191505b600754821015611267576006600083815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561124b57508373ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561125a578060010154830192505b818060010192505061117e565b8292505050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112d257600080fd5b600b60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935060008411801561132557503073ffffffffffffffffffffffffffffffffffffffff16318411155b156113ca576000600b60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc600b60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156113c8573d6000803e3d6000fd5b505b600090505b600c805490508110156115a257600c818154811015156113eb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561159557600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205493506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508291508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611541929190613441565b602060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115939190810190613135565b505b80806001019150506113cf565b6000600c816115b19190612dd2565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561161357600080fd5b601e811115151561162357600080fd5b80600a8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116e457600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f178eb36323c5a89970cc900b55d89d2731becfb4f5df34667d995e48cee7d4e16000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161177491906133ef565b60405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117da57600080fd5b6000811115156117e957600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561180f57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611855573d6000803e3d6000fd5b5050565b6060806060600060608060606000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118c357600080fd5b600c805490509550856040519080825280602002602001820160405280156118fa5781602001602082028038833980820191505090505b5094508560405190808252806020026020018201604052801561193157816020015b606081526020019060019003908161191c5790505b509350856040519080825280602002602001820160405280156119635781602001602082028038833980820191505090505b509250600091505b85821015611b1657600c8281548110151561198257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685838151811015156119bb57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508482815181101515611a0557fe5b9060200190602002015190508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611a7557600080fd5b505af1158015611a89573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611ab2919081019061319f565b8483815181101515611ac057fe5b90602001906020020181905250611aed8583815181101515611ade57fe5b90602001906020020151612b9d565b8383815181101515611afb57fe5b9060200190602002018181525050818060010192505061196b565b848484985098509850505050505050909192565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b8557600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611bab57600080fd5b60008114151515611bbb57600080fd5b611bc582826122e4565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c4d57600080fd5b60008060146101000a81548160ff0219169083151502179055507fadac2a07dd926cc50f681194fe221f6245cdafa96623d1c64fa69c027182f40a600060149054906101000a900460ff16604051611ca591906134b6565b60405180910390a1565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611d4e929190612dfe565b503373ffffffffffffffffffffffffffffffffffffffff167fc5db26e7b4622de13dc720324df17737b30e33a473a12bfa5120461e3692276982604051611d9591906134f3565b60405180910390a250565b60045481565b60035481565b60008060149054906101000a900460ff16151515611dc957600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515611def57600080fd5b600082111515611dfe57600080fd5b8290508073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e5a9392919061340a565b602060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611eac9190810190613135565b1515611eb757600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600754908060018154018082558091505090600182039060005260206000200160009091929091909150555060c0604051908101604052806007548152602001838152602001600354420181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611fe257600080fd5b505af1158015611ff6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061201f919081019061319f565b81525060066000600754815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050190805190602001906120ff929190612e7e565b5090505061214c600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836106f6565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506007600081548092919060010191905055506008600081548092919060010191905055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fed175a8ddea84085fa2767c9c1f3342fae1f118bc1213ac4d4a0c6277bc0ad738373ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561226657600080fd5b505af115801561227a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506122a3919081019061319f565b8560035442016040516122b893929190613515565b60405180910390a3505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b60008060006060600080600660008881526020019081526020016000209550600086600001541415151561231757600080fd5b8773ffffffffffffffffffffffffffffffffffffffff168660040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561237557600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480156123d55750428660020154105b8061242e5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b151561243957600080fd5b8560040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350856005018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124f85780601f106124cd576101008083540402835291602001916124f8565b820191906000526020600020905b8154815290600101906020018083116124db57829003601f168201915b50505050509250428660020154101561256e576125628660030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168860010154612828565b85600101549450612621565b60646125808760010154600a54612be6565b81151561258957fe5b04915061259a866001015483612c1e565b90506125ef8660030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612828565b61261d8660040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612c37565b8094505b6127a28660c060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127945780601f1061276957610100808354040283529160200191612794565b820191906000526020600020905b81548152906001019060200180831161277757829003601f168201915b505050505081525050612992565b600860008154809291906001900391905055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f959346e7719e944c33f76798af64519a9c17a870c805ae49c011066f18fa9cb085884260405161281693929190613515565b60405180910390a35050505050505050565b6000829050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161288391906133ef565b602060405180830381600087803b15801561289d57600080fd5b505af11580156128b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128d59190810190613209565b101515156128e257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612939929190613441565b602060405180830381600087803b15801561295357600080fd5b505af1158015612967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061298b9190810190613135565b5050505050565b60008060006129e860096000866080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548560200151612c1e565b60096000866080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600085600001518152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600582016000612abd9190612efe565b5050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925082805490509150600090505b81811015612b975783600001518382815481101515612b2757fe5b90600052602060002001541415612b8a578260018303815481101515612b4957fe5b90600052602060002001548382815481101515612b6257fe5b906000526020600020018190555082805480919060019003612b849190612f46565b50612b97565b8080600101915050612b0c565b50505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080831415612bf95760009050612c18565b8183029050818382811515612c0a57fe5b04141515612c1457fe5b8090505b92915050565b6000828211151515612c2c57fe5b818303905092915050565b600080612c83600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846106f6565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019150600090505b600c80549050811015612d5f578373ffffffffffffffffffffffffffffffffffffffff16600c82815481101515612d0257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d525760009150612d5f565b8080600101915050612ccf565b8115612dcc57600c8490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b50505050565b815481835581811115612df957818360005260206000209182019101612df89190612f72565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e3f57805160ff1916838001178555612e6d565b82800160010185558215612e6d579182015b82811115612e6c578251825591602001919060010190612e51565b5b509050612e7a9190612f72565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612ebf57805160ff1916838001178555612eed565b82800160010185558215612eed579182015b82811115612eec578251825591602001919060010190612ed1565b5b509050612efa9190612f72565b5090565b50805460018160011615610100020316600290046000825580601f10612f245750612f43565b601f016020900490600052602060002090810190612f429190612f72565b5b50565b815481835581811115612f6d57818360005260206000209182019101612f6c9190612f72565b5b505050565b612f9491905b80821115612f90576000816000905550600101612f78565b5090565b90565b6000612fa382356136d5565b905092915050565b6000612fb782356136f5565b905092915050565b6000612fcb82516136f5565b905092915050565b600082601f8301121515612fe657600080fd5b8135612ff9612ff4826135ee565b6135c1565b9150808252602083016020830185838301111561301557600080fd5b61302083828461370b565b50505092915050565b600082601f830112151561303c57600080fd5b815161304f61304a826135ee565b6135c1565b9150808252602083016020830185838301111561306b57600080fd5b61307683828461371a565b50505092915050565b600061308b8235613701565b905092915050565b600061309f8251613701565b905092915050565b6000602082840312156130b957600080fd5b60006130c784828501612f97565b91505092915050565b600080604083850312156130e357600080fd5b60006130f185828601612f97565b92505060206131028582860161307f565b9150509250929050565b60006020828403121561311e57600080fd5b600061312c84828501612fab565b91505092915050565b60006020828403121561314757600080fd5b600061315584828501612fbf565b91505092915050565b60006020828403121561317057600080fd5b600082013567ffffffffffffffff81111561318a57600080fd5b61319684828501612fd3565b91505092915050565b6000602082840312156131b157600080fd5b600082015167ffffffffffffffff8111156131cb57600080fd5b6131d784828501613029565b91505092915050565b6000602082840312156131f257600080fd5b60006132008482850161307f565b91505092915050565b60006020828403121561321b57600080fd5b600061322984828501613093565b91505092915050565b61323b8161369f565b82525050565b600061324c82613641565b80845260208401935061325e8361361a565b60005b8281101561329057613274868351613232565b61327d82613678565b9150602086019550600181019050613261565b50849250505092915050565b60006132a78261364c565b808452602084019350836020820285016132c085613627565b60005b848110156132f95783830388526132db8383516133aa565b92506132e682613685565b91506020880197506001810190506132c3565b508196508694505050505092915050565b600061331582613657565b80845260208401935061332783613634565b60005b828110156133595761333d8683516133e0565b61334682613692565b915060208601955060018101905061332a565b50849250505092915050565b61336e816136bf565b82525050565b600061337f8261366d565b80845261339381602086016020860161371a565b61339c8161374d565b602085010191505092915050565b60006133b582613662565b8084526133c981602086016020860161371a565b6133d28161374d565b602085010191505092915050565b6133e9816136cb565b82525050565b60006020820190506134046000830184613232565b92915050565b600060608201905061341f6000830186613232565b61342c6020830185613232565b61343960408301846133e0565b949350505050565b60006040820190506134566000830185613232565b61346360208301846133e0565b9392505050565b600060608201905081810360008301526134848186613241565b90508181036020830152613498818561329c565b905081810360408301526134ac818461330a565b9050949350505050565b60006020820190506134cb6000830184613365565b92915050565b600060208201905081810360008301526134eb81846133aa565b905092915050565b6000602082019050818103600083015261350d8184613374565b905092915050565b6000606082019050818103600083015261352f8186613374565b905061353e60208301856133e0565b61354b60408301846133e0565b949350505050565b600060208201905061356860008301846133e0565b92915050565b600060a08201905061358360008301886133e0565b6135906020830187613232565b61359d6040830186613232565b6135aa60608301856133e0565b6135b760808301846133e0565b9695505050505050565b6000604051905081810181811067ffffffffffffffff821117156135e457600080fd5b8060405250919050565b600067ffffffffffffffff82111561360557600080fd5b601f19601f8301169050602081019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561373857808201518184015260208101905061371d565b83811115613747576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820deebdb2a875421e5f4105c0ebbff7199a583451a3fa8ff69d76a5a4af11445de6c6578706572696d656e74616cf50037

Deployed Bytecode

0x608060405260043610610174576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680622b5c0a146101e557806311a3311c146102225780631c019a521461025f578063365655f01461029c5780633a4b4532146102c55780633e8cc273146102f057806347f849cd146103075780634d7f917f14610348578063539a67bf14610371578063650db56d1461039a578063666a7370146103c357806371ea29df1461040057806379883bba1461042b57806393002f021461045457806398c7aba21461047f57806399f57e05146104bc5780639aaa38a6146104d3578063a6f9dae1146104fc578063b2a3fd0514610525578063bbe316be1461054e578063cfe7de071461057b578063d3a516d3146105a4578063d64ee8d2146105cf578063d9d61a10146105e6578063d9df23c014610623578063da546cb21461064c578063e2afe3bb14610677578063e61021e8146106a2578063f6d0bf2f146106cb575b60003411151561018357600080fd5b6101b6600b60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054346106f6565b600b60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550005b3480156101f157600080fd5b5061020c600480360361020791908101906130a7565b610712565b60405161021991906134d1565b60405180910390f35b34801561022e57600080fd5b50610249600480360361024491908101906130d0565b6107c2565b6040516102569190613553565b60405180910390f35b34801561026b57600080fd5b50610286600480360361028191908101906131e0565b6107f2565b60405161029391906133ef565b60405180910390f35b3480156102a857600080fd5b506102c360048036036102be91908101906131e0565b610830565b005b3480156102d157600080fd5b506102da6108a5565b6040516102e79190613553565b60405180910390f35b3480156102fc57600080fd5b506103056108ab565b005b34801561031357600080fd5b5061032e600480360361032991908101906131e0565b610969565b60405161033f95949392919061356e565b60405180910390f35b34801561035457600080fd5b5061036f600480360361036a91908101906130d0565b6109f4565b005b34801561037d57600080fd5b50610398600480360361039391908101906130a7565b610aad565b005b3480156103a657600080fd5b506103c160048036036103bc919081019061310c565b610d47565b005b3480156103cf57600080fd5b506103ea60048036036103e591908101906130a7565b6110a4565b6040516103f79190613553565b60405180910390f35b34801561040c57600080fd5b506104156110bc565b60405161042291906134b6565b60405180910390f35b34801561043757600080fd5b50610452600480360361044d91908101906131e0565b6110cf565b005b34801561046057600080fd5b50610469611149565b6040516104769190613553565b60405180910390f35b34801561048b57600080fd5b506104a660048036036104a191908101906130a7565b61114f565b6040516104b39190613553565b60405180910390f35b3480156104c857600080fd5b506104d1611271565b005b3480156104df57600080fd5b506104fa60048036036104f591908101906131e0565b6115b8565b005b34801561050857600080fd5b50610523600480360361051e91908101906130a7565b61162d565b005b34801561053157600080fd5b5061054c600480360361054791908101906131e0565b61177f565b005b34801561055a57600080fd5b50610563611859565b6040516105729392919061346a565b60405180910390f35b34801561058757600080fd5b506105a2600480360361059d91908101906130d0565b611b2a565b005b3480156105b057600080fd5b506105b9611bc9565b6040516105c691906133ef565b60405180910390f35b3480156105db57600080fd5b506105e4611bf2565b005b3480156105f257600080fd5b5061060d600480360361060891908101906130a7565b611caf565b60405161061a9190613553565b60405180910390f35b34801561062f57600080fd5b5061064a6004803603610645919081019061315e565b611cfb565b005b34801561065857600080fd5b50610661611da0565b60405161066e9190613553565b60405180910390f35b34801561068357600080fd5b5061068c611da6565b6040516106999190613553565b60405180910390f35b3480156106ae57600080fd5b506106c960048036036106c491908101906130d0565b611dac565b005b3480156106d757600080fd5b506106e06122c5565b6040516106ed9190613553565b60405180910390f35b6000818301905082811015151561070957fe5b80905092915050565b60026020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107ba5780601f1061078f576101008083540402835291602001916107ba565b820191906000526020600020905b81548152906001019060200180831161079d57829003601f168201915b505050505081565b6005602052816000526040600020818154811015156107dd57fe5b90600052602060002001600091509150505481565b600c8181548110151561080157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561088b57600080fd5b6004548111151561089b57600080fd5b8060048190555050565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561090657600080fd5b6001600060146101000a81548160ff0219169083151502179055507fadac2a07dd926cc50f681194fe221f6245cdafa96623d1c64fa69c027182f40a600060149054906101000a900460ff1660405161095f91906134b6565b60405180910390a1565b60008060008060008060066000888152602001908152602001600020905080600001548160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600101548460020154955095509550955095505091939590929450565b6000808373ffffffffffffffffffffffffffffffffffffffff1614151515610a1b57600080fd5b60008214151515610a2b57600080fd5b6006600083815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a9e57600080fd5b610aa883836122e4565b505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b0b57600080fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610b5957600080fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550829050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c3991906133ef565b602060405180830381600087803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c8b9190810190613209565b10151515610c9857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610cef929190613441565b602060405180830381600087803b158015610d0957600080fd5b505af1158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d419190810190613135565b50505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da757600080fd5b600191505b600754821015611067576006600083815260200190815260200160002090506000816000015414151561105a57838015610e575750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610e60575083155b1561105957610ebc8160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360010154612828565b61103d8160c060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561102f5780601f106110045761010080835404028352916020019161102f565b820191906000526020600020905b81548152906001019060200180831161101257829003601f168201915b505050505081525050612992565b6008600081548092919060019003919050555082806001019350505b5b8180600101925050610dac565b7faeb4f5733a2e8073f7ddf9b69cdc1588e959cec9ac8b80866c29237cbe281fbe836040516110969190613553565b60405180910390a150505050565b60096020528060005260406000206000915090505481565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561112a57600080fd5b603c811015151561113a57600080fd5b62015180810260038190555050565b60085481565b6000806000808473ffffffffffffffffffffffffffffffffffffffff161415151561117957600080fd5b600191505b600754821015611267576006600083815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561124b57508373ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561125a578060010154830192505b818060010192505061117e565b8292505050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112d257600080fd5b600b60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935060008411801561132557503073ffffffffffffffffffffffffffffffffffffffff16318411155b156113ca576000600b60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc600b60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156113c8573d6000803e3d6000fd5b505b600090505b600c805490508110156115a257600c818154811015156113eb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561159557600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205493506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508291508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611541929190613441565b602060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115939190810190613135565b505b80806001019150506113cf565b6000600c816115b19190612dd2565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561161357600080fd5b601e811115151561162357600080fd5b80600a8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116e457600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f178eb36323c5a89970cc900b55d89d2731becfb4f5df34667d995e48cee7d4e16000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161177491906133ef565b60405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117da57600080fd5b6000811115156117e957600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561180f57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611855573d6000803e3d6000fd5b5050565b6060806060600060608060606000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118c357600080fd5b600c805490509550856040519080825280602002602001820160405280156118fa5781602001602082028038833980820191505090505b5094508560405190808252806020026020018201604052801561193157816020015b606081526020019060019003908161191c5790505b509350856040519080825280602002602001820160405280156119635781602001602082028038833980820191505090505b509250600091505b85821015611b1657600c8281548110151561198257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685838151811015156119bb57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508482815181101515611a0557fe5b9060200190602002015190508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611a7557600080fd5b505af1158015611a89573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611ab2919081019061319f565b8483815181101515611ac057fe5b90602001906020020181905250611aed8583815181101515611ade57fe5b90602001906020020151612b9d565b8383815181101515611afb57fe5b9060200190602002018181525050818060010192505061196b565b848484985098509850505050505050909192565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b8557600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611bab57600080fd5b60008114151515611bbb57600080fd5b611bc582826122e4565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c4d57600080fd5b60008060146101000a81548160ff0219169083151502179055507fadac2a07dd926cc50f681194fe221f6245cdafa96623d1c64fa69c027182f40a600060149054906101000a900460ff16604051611ca591906134b6565b60405180910390a1565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611d4e929190612dfe565b503373ffffffffffffffffffffffffffffffffffffffff167fc5db26e7b4622de13dc720324df17737b30e33a473a12bfa5120461e3692276982604051611d9591906134f3565b60405180910390a250565b60045481565b60035481565b60008060149054906101000a900460ff16151515611dc957600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515611def57600080fd5b600082111515611dfe57600080fd5b8290508073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e5a9392919061340a565b602060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611eac9190810190613135565b1515611eb757600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600754908060018154018082558091505090600182039060005260206000200160009091929091909150555060c0604051908101604052806007548152602001838152602001600354420181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611fe257600080fd5b505af1158015611ff6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061201f919081019061319f565b81525060066000600754815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050190805190602001906120ff929190612e7e565b5090505061214c600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836106f6565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506007600081548092919060010191905055506008600081548092919060010191905055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fed175a8ddea84085fa2767c9c1f3342fae1f118bc1213ac4d4a0c6277bc0ad738373ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561226657600080fd5b505af115801561227a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506122a3919081019061319f565b8560035442016040516122b893929190613515565b60405180910390a3505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b60008060006060600080600660008881526020019081526020016000209550600086600001541415151561231757600080fd5b8773ffffffffffffffffffffffffffffffffffffffff168660040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561237557600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480156123d55750428660020154105b8061242e5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b151561243957600080fd5b8560040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350856005018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124f85780601f106124cd576101008083540402835291602001916124f8565b820191906000526020600020905b8154815290600101906020018083116124db57829003601f168201915b50505050509250428660020154101561256e576125628660030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168860010154612828565b85600101549450612621565b60646125808760010154600a54612be6565b81151561258957fe5b04915061259a866001015483612c1e565b90506125ef8660030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612828565b61261d8660040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612c37565b8094505b6127a28660c060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127945780601f1061276957610100808354040283529160200191612794565b820191906000526020600020905b81548152906001019060200180831161277757829003601f168201915b505050505081525050612992565b600860008154809291906001900391905055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f959346e7719e944c33f76798af64519a9c17a870c805ae49c011066f18fa9cb085884260405161281693929190613515565b60405180910390a35050505050505050565b6000829050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161288391906133ef565b602060405180830381600087803b15801561289d57600080fd5b505af11580156128b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128d59190810190613209565b101515156128e257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612939929190613441565b602060405180830381600087803b15801561295357600080fd5b505af1158015612967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061298b9190810190613135565b5050505050565b60008060006129e860096000866080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548560200151612c1e565b60096000866080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600085600001518152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600582016000612abd9190612efe565b5050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925082805490509150600090505b81811015612b975783600001518382815481101515612b2757fe5b90600052602060002001541415612b8a578260018303815481101515612b4957fe5b90600052602060002001548382815481101515612b6257fe5b906000526020600020018190555082805480919060019003612b849190612f46565b50612b97565b8080600101915050612b0c565b50505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080831415612bf95760009050612c18565b8183029050818382811515612c0a57fe5b04141515612c1457fe5b8090505b92915050565b6000828211151515612c2c57fe5b818303905092915050565b600080612c83600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846106f6565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019150600090505b600c80549050811015612d5f578373ffffffffffffffffffffffffffffffffffffffff16600c82815481101515612d0257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d525760009150612d5f565b8080600101915050612ccf565b8115612dcc57600c8490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b50505050565b815481835581811115612df957818360005260206000209182019101612df89190612f72565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e3f57805160ff1916838001178555612e6d565b82800160010185558215612e6d579182015b82811115612e6c578251825591602001919060010190612e51565b5b509050612e7a9190612f72565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612ebf57805160ff1916838001178555612eed565b82800160010185558215612eed579182015b82811115612eec578251825591602001919060010190612ed1565b5b509050612efa9190612f72565b5090565b50805460018160011615610100020316600290046000825580601f10612f245750612f43565b601f016020900490600052602060002090810190612f429190612f72565b5b50565b815481835581811115612f6d57818360005260206000209182019101612f6c9190612f72565b5b505050565b612f9491905b80821115612f90576000816000905550600101612f78565b5090565b90565b6000612fa382356136d5565b905092915050565b6000612fb782356136f5565b905092915050565b6000612fcb82516136f5565b905092915050565b600082601f8301121515612fe657600080fd5b8135612ff9612ff4826135ee565b6135c1565b9150808252602083016020830185838301111561301557600080fd5b61302083828461370b565b50505092915050565b600082601f830112151561303c57600080fd5b815161304f61304a826135ee565b6135c1565b9150808252602083016020830185838301111561306b57600080fd5b61307683828461371a565b50505092915050565b600061308b8235613701565b905092915050565b600061309f8251613701565b905092915050565b6000602082840312156130b957600080fd5b60006130c784828501612f97565b91505092915050565b600080604083850312156130e357600080fd5b60006130f185828601612f97565b92505060206131028582860161307f565b9150509250929050565b60006020828403121561311e57600080fd5b600061312c84828501612fab565b91505092915050565b60006020828403121561314757600080fd5b600061315584828501612fbf565b91505092915050565b60006020828403121561317057600080fd5b600082013567ffffffffffffffff81111561318a57600080fd5b61319684828501612fd3565b91505092915050565b6000602082840312156131b157600080fd5b600082015167ffffffffffffffff8111156131cb57600080fd5b6131d784828501613029565b91505092915050565b6000602082840312156131f257600080fd5b60006132008482850161307f565b91505092915050565b60006020828403121561321b57600080fd5b600061322984828501613093565b91505092915050565b61323b8161369f565b82525050565b600061324c82613641565b80845260208401935061325e8361361a565b60005b8281101561329057613274868351613232565b61327d82613678565b9150602086019550600181019050613261565b50849250505092915050565b60006132a78261364c565b808452602084019350836020820285016132c085613627565b60005b848110156132f95783830388526132db8383516133aa565b92506132e682613685565b91506020880197506001810190506132c3565b508196508694505050505092915050565b600061331582613657565b80845260208401935061332783613634565b60005b828110156133595761333d8683516133e0565b61334682613692565b915060208601955060018101905061332a565b50849250505092915050565b61336e816136bf565b82525050565b600061337f8261366d565b80845261339381602086016020860161371a565b61339c8161374d565b602085010191505092915050565b60006133b582613662565b8084526133c981602086016020860161371a565b6133d28161374d565b602085010191505092915050565b6133e9816136cb565b82525050565b60006020820190506134046000830184613232565b92915050565b600060608201905061341f6000830186613232565b61342c6020830185613232565b61343960408301846133e0565b949350505050565b60006040820190506134566000830185613232565b61346360208301846133e0565b9392505050565b600060608201905081810360008301526134848186613241565b90508181036020830152613498818561329c565b905081810360408301526134ac818461330a565b9050949350505050565b60006020820190506134cb6000830184613365565b92915050565b600060208201905081810360008301526134eb81846133aa565b905092915050565b6000602082019050818103600083015261350d8184613374565b905092915050565b6000606082019050818103600083015261352f8186613374565b905061353e60208301856133e0565b61354b60408301846133e0565b949350505050565b600060208201905061356860008301846133e0565b92915050565b600060a08201905061358360008301886133e0565b6135906020830187613232565b61359d6040830186613232565b6135aa60608301856133e0565b6135b760808301846133e0565b9695505050505050565b6000604051905081810181811067ffffffffffffffff821117156135e457600080fd5b8060405250919050565b600067ffffffffffffffff82111561360557600080fd5b601f19601f8301169050602081019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561373857808201518184015260208101905061371d565b83811115613747576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820deebdb2a875421e5f4105c0ebbff7199a583451a3fa8ff69d76a5a4af11445de6c6578706572696d656e74616cf50037

Swarm Source

bzzr://deebdb2a875421e5f4105c0ebbff7199a583451a3fa8ff69d76a5a4af11445de

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.