ETH Price: $2,720.64 (+0.89%)

Contract

0xecd570bBf74761b960Fa04Cc10fe2c4e86FfDA36
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve167471972023-03-03 9:48:59718 days ago1677836939IN
Stashpay Token
0 ETH0.0005219719.97974199
Approve131548532021-09-03 20:13:191264 days ago1630699999IN
Stashpay Token
0 ETH0.00572411124.11080892
Transfer113952692020-12-05 22:15:541536 days ago1607206554IN
Stashpay Token
0 ETH0.00124223
Transfer101280822020-05-24 10:50:031731 days ago1590317403IN
Stashpay Token
0 ETH0.0007813
Approve97485552020-03-26 18:26:391790 days ago1585247199IN
Stashpay Token
0 ETH0.0004398510
Transfer94598102020-02-11 5:36:121835 days ago1581399372IN
Stashpay Token
0 ETH0.000427
Approve89094942019-11-10 16:55:011927 days ago1573404901IN
Stashpay Token
0 ETH0.00018154
Transfer87724032019-10-19 16:51:321949 days ago1571503892IN
Stashpay Token
0 ETH0.0007515
Transfer87723902019-10-19 16:48:141949 days ago1571503694IN
Stashpay Token
0 ETH0.000346515
Transfer87381622019-10-14 7:27:271955 days ago1571038047IN
Stashpay Token
0 ETH0.000242.4
Approve82823932019-08-04 5:44:542026 days ago1564897494IN
Stashpay Token
0 ETH0.000181764
Approve80933142019-07-05 20:07:052055 days ago1562357225IN
Stashpay Token
0 ETH0.000045441
Approve79800962019-06-18 4:10:582073 days ago1560831058IN
Stashpay Token
0 ETH0.000181764
Transfer78883822019-06-03 19:54:412087 days ago1559591681IN
Stashpay Token
0 ETH0.0099
Transfer78380802019-05-26 22:53:242095 days ago1558911204IN
Stashpay Token
0 ETH0.000092254
Approve78235162019-05-24 16:46:402097 days ago1558716400IN
Stashpay Token
0 ETH0.000181764
Approve78046652019-05-21 18:00:562100 days ago1558461656IN
Stashpay Token
0 ETH0.0003037710
Approve78046642019-05-21 18:00:552100 days ago1558461655IN
Stashpay Token
0 ETH0.0004544110
Transfer77587892019-05-14 13:41:232107 days ago1557841283IN
Stashpay Token
0 ETH0.0004820
Transfer77587862019-05-14 13:39:292107 days ago1557841169IN
Stashpay Token
0 ETH0.0004612820
Transfer77587702019-05-14 13:35:562107 days ago1557840956IN
Stashpay Token
0 ETH0.000820
Approve76494032019-04-27 12:13:482124 days ago1556367228IN
Stashpay Token
0 ETH0.000182024
Transfer75457022019-04-11 8:30:112141 days ago1554971411IN
Stashpay Token
0 ETH0.00225541
Register Key71366092019-01-28 0:30:062214 days ago1548635406IN
Stashpay Token
0 ETH0.012341
Register Key71365592019-01-28 0:14:442214 days ago1548634484IN
Stashpay Token
0 ETH0.0036484241
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:
STP

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-20
*/

pragma solidity ^0.4.18;

/// Implements ERC20 Token standard: https://github.com/ethereum/EIPs/issues/20
interface ERC20Token {

    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);

    function transfer(address _to, uint _value) public returns (bool);
    function transferFrom(address _from, address _to, uint _value) public returns (bool);
    function approve(address _spender, uint _value) public returns (bool);
    function balanceOf(address _owner) public view returns (uint);
    function allowance(address _owner, address _spender) public view returns (uint);    
}


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

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

  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 c;
  }

  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) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

contract Ownable {
    address public owner;

    function Ownable()
        public
    {        
        owner = msg.sender;
    }
 
    modifier onlyOwner {
        assert(msg.sender == owner);    
        _;
    }

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


contract Freezable is Ownable {

    mapping (address => bool) public frozenAccount;      
    
    modifier onlyUnfrozen(address _target) {
        assert(!isFrozen(_target));
        _;
    }
    
    // @dev Owners funds are frozen on token creation
    function isFrozen(address _target)
        public
        view
        returns (bool)
    {
        return frozenAccount[_target];
    }
}

contract Token is ERC20Token, Freezable {
    /*
     *  Storage
     */
    mapping (address => uint) balances;
    mapping (address => mapping (address => uint)) allowances; 
    mapping (address => string) public data;
    uint    public totalSupply;
    uint    public timeTransferbleUntil = 1538262000;                        // Transferable until 29/09/2018 23:00 pm UTC
    bool    public stopped = false;
 
    event Burn(address indexed from, uint256 value, string data);
    event LogStop();

    modifier transferable() {
        assert(!stopped);
        _;
    }

    /*
     *  Public functions
     */
    /// @dev Transfers sender's tokens to a given address. Returns success
    /// @param _to Address of token receiver
    /// @param _value Number of tokens to transfer
    /// @return Returns success of function call
    function transfer(address _to, uint _value)
        public      
        onlyUnfrozen(msg.sender)                                           
        transferable()
        returns (bool)        
    {                         
        assert(_to != 0x0);                                                // Prevent transfer to 0x0 address. Use burn() instead
        assert(balances[msg.sender] >= _value);                            // Check if the sender has enough
        assert(!isFrozen(_to));                                            // Do not allow transfers to frozen accounts
        balances[msg.sender] = SafeMath.sub(balances[msg.sender], _value); // Subtract from the sender
        balances[_to] = SafeMath.add(balances[_to], _value);               // Add the same to the recipient
        Transfer(msg.sender, _to, _value);                                 // Notify anyone listening that this transfer took place
        return true;       
    }

    /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success
    /// @param _from Address from where tokens are withdrawn
    /// @param _to Address to where tokens are sent
    /// @param _value Number of tokens to transfer
    /// @return Returns success of function call
    function transferFrom(address _from, address _to, uint _value)
        public    
        onlyUnfrozen(_from)                                               // Owners can never transfer funds
        transferable()                 
        returns (bool)
    {        
        assert(_to != 0x0);                                               // Prevent transfer to 0x0 address. Use burn() instead
        assert(balances[_from] >= _value);                                // Check if the sender has enough
        assert(_value <= allowances[_from][msg.sender]);                  // Check allowance
        assert(!isFrozen(_to));                                           // Do not allow transfers to frozen accounts
        balances[_from] = SafeMath.sub(balances[_from], _value);          // Subtract from the sender
        balances[_to] = SafeMath.add(balances[_to], _value);              // Add the same to the recipient
        allowances[_from][msg.sender] = SafeMath.sub(allowances[_from][msg.sender], _value); 
        Transfer(_from, _to, _value);
        return true;
    }

    /// @dev Sets approved amount of tokens for spender. Returns success
    /// @param _spender Address of allowed account
    /// @param _value Number of approved tokens
    /// @return Returns success of function call    
    function approve(address _spender, uint _value)
        public
        returns (bool)
    {
        allowances[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /// @dev Returns number of allowed tokens for given address
    /// @param _owner Address of token owner
    /// @param _spender Address of token spender
    /// @return Returns remaining allowance for spender    
    function allowance(address _owner, address _spender)
        public
        view
        returns (uint)
    {
        return allowances[_owner][_spender];
    }

    /// @dev Returns number of tokens owned by given address
    /// @param _owner Address of token owner
    /// @return Returns balance of owner    
    function balanceOf(address _owner)
        public
        view
        returns (uint)
    {
        return balances[_owner];
    }

    // @title Burns tokens
    // @dev remove `_value` tokens from the system irreversibly     
    // @param _value the amount of tokens to burn   
    function burn(uint256 _value, string _data) 
        public 
        returns (bool success) 
    {
        assert(_value > 0);                                                // Amount must be greater than zero
        assert(balances[msg.sender] >= _value);                            // Check if the sender has enough
        uint previousTotal = totalSupply;                                  // Start integrity check
        balances[msg.sender] = SafeMath.sub(balances[msg.sender], _value); // Subtract from the sender
        data[msg.sender] = _data;                                          // Additional data
        totalSupply = SafeMath.sub(totalSupply, _value);                   // Updates totalSupply
        assert(previousTotal - _value == totalSupply);                     // End integrity check 
        Burn(msg.sender, _value, _data);
        return true;
    }

    // Anyone can freeze the token after transfer time has expired
    function stop() 
        public
    {
        assert(now > timeTransferbleUntil);
        stopped = true;
        LogStop();
    }

    function totalSupply() 
        constant public 
        returns (uint) 
    {
        return totalSupply;
    }

    function getData(address addr) 
        public 
        view
        returns (string) 
    {
        return data[addr];
    }    
}


// Contract Owner 0xb42db275AdCCd23e2cB52CfFc2D4Fe984fbF53B2     
contract STP is Token {
    string  public name = "STASHPAY";
    string  public symbol = "STP";
    uint8   public decimals = 8;
    uint8   public publicKeySize = 65;
    address public sale = 0xB155c16c13FC1eD2F015e24D6C7Ae8Cc38cea74E;
    address public adviserAndBounty = 0xf40bF198eD3bE9d3E1312d2717b964b377135728;    
    mapping (address => string) public publicKeys;
    uint256 constant D160 = 0x0010000000000000000000000000000000000000000;    

    event RegisterKey(address indexed _from, string _publicKey);
    event ModifyPublicKeySize(uint8 _size);

    function STP()
    public 
    {             
        uint256[29] memory owners = [
            uint256(0xb5e620f480007f0dfc26a56b0f7ccd8100eaf31b75dd40bae01f),
            uint256(0x162b3f376600078c63f73a2f46c19a4cd91e700203bbbe4084093),
            uint256(0x16bcc41e900004ae21e3c9b0e63dbc2832f1fa3e6e4dd60f42ae1),
            uint256(0x1c6bf52634000b9b206c23965553889ebdaee326d4da4a457b9b1),
            uint256(0x16bcc41e90000d26061a8d47cc712c61a8fa23ce21d593e50f668),
            uint256(0x110d9316ec000d69106be0299d0a83b9a9e32f2df85ec7739fa59),
            uint256(0x16bcc41e90000d6d813fd0394bfec48996e20d8fbcf55a003c19a),
            uint256(0x1c6bf52634000e34dc2c4481561224114ad004c824b1f9e142e31),
            uint256(0x110d9316ec0006e19b79b974fa039c1356f6814da22b0a04e8d29),
            uint256(0x16bcc41e900005d2f999136e12e54f4a9a873a9d9ab7407591249),
            uint256(0x110d9316ec0002b0013a364a997b9856127fd0ababef72baec159),
            uint256(0x16bcc41e90000db46260f78efa6c904d7dafc5c584ca34d5234be),
            uint256(0x1c6bf5263400073a4077adf235164f4944f138fc9d982ea549eba),
            uint256(0x9184e72a0003617280cabfe0356a2af3cb4f652c3aca3ab8216),
            uint256(0xb5e620f480003d106c1220c49f75ddb8a475b73a1517cef163f6),
            uint256(0x9184e72a000d6aaf14fee58fd90e6518179e94f02b5e0098a78),
            uint256(0x162b3f37660009c98c23e430b4270f47685e46d651b9150272b16),
            uint256(0xb5e620f48000cc3e7d55bba108b07c08d014f13fe0ee5c09ec08),
            uint256(0x110d9316ec000e4a92d9c2c31789250956b1b0b439cf72baf8a27),
            uint256(0x16bcc41e900002edc2b7f7191cf9414d9bf8febdd165b0cd91ee1),
            uint256(0x110d9316ec000332f79ebb69d00cb3f13fcb2be185ed944f64298),
            uint256(0x221b262dd80005594aae7ae31a3316691ab7a11de3ddee2f015e0),
            uint256(0x1c6bf52634000c08b91c50ed4303d1b90ffd47237195e4bfc165e),
            uint256(0x110d9316ec000bf6f7c6a13b9629b673c023e54fba4c2cd4ccbba),
            uint256(0x16bcc41e90000629048b47ed4fb881bacfb7ca85e7275cd663cf7),
            uint256(0x110d9316ec000451861e95aa32ce053f15f6ae013d1eface88e9e),
            uint256(0x16bcc41e9000094d79beb8c57e54ff3fce49ae35078c6df228b9c),
            uint256(0x1c6bf52634000e2b1430b79b5be8bf3c7d70eb4faf36926b369f3),
            uint256(0xb5e620f4800025b772bda67719d2ba404c04fa4390443bf993ed)
        ];

        /* 
            Token Distrubution
            -------------------
            500M Total supply
            72% Token Sale
            20% Founders (frozen for entire duration of contract)
            8% Bounty and advisters
        */

        totalSupply = 500000000 * 10**uint256(decimals); 
        balances[sale] = 360000000 * 10**uint256(decimals); 
        balances[adviserAndBounty] = 40000000 * 10**uint256(decimals);
            
        Transfer(0, sale, balances[sale]);
        Transfer(0, adviserAndBounty, balances[adviserAndBounty]);
        
        /* 
            Founders are provably frozen for duration of contract            
        */
        uint assignedTokens = balances[sale] + balances[adviserAndBounty];
        for (uint i = 0; i < owners.length; i++) {
            address addr = address(owners[i] & (D160 - 1));                    // get address
            uint256 amount = owners[i] / D160;                                 // get amount
            balances[addr] = SafeMath.add(balances[addr], amount);             // update balance            
            assignedTokens = SafeMath.add(assignedTokens, amount);             // keep track of total assigned
            frozenAccount[addr] = true;                                        // Owners funds are provably frozen for duration of contract
            Transfer(0, addr, amount);                                         // transfer the tokens
        }        
        /*
            balance check 
        */
        require(assignedTokens == totalSupply);             
    }  
    
    function registerKey(string publicKey)
    public
    transferable
    { 
        assert(balances[msg.sender] > 0);
        assert(bytes(publicKey).length <= publicKeySize);
              
        publicKeys[msg.sender] = publicKey; 
        RegisterKey(msg.sender, publicKey);    
    }           
  
    function modifyPublicKeySize(uint8 _publicKeySize)
    public
    onlyOwner
    { 
        publicKeySize = _publicKeySize;
    }

    function multiDistribute(uint256[] data) 
    public
    onlyUnfrozen(sale)
    onlyOwner 
    {
      for (uint256 i = 0; i < data.length; i++) {
        address addr = address(data[i] & (D160 - 1));
        uint256 amount = data[i] / D160;
        balances[sale] -= amount;                        
        balances[addr] += amount;                                       
        Transfer(sale, addr, amount);    
      }
    }

    function multiDistributeAdviserBounty(uint256[] data, bool freeze) 
    public
    onlyOwner
    {
        for (uint256 i = 0; i < data.length; i++) {
            address addr = address(data[i] & (D160 - 1));
            uint256 amount = data[i] / D160;
            distributeAdviserBounty(addr, amount, freeze);
        }
    }
   
    function distributeAdviserBounty(address addr, uint256 amount, bool freeze)
    public        
    onlyOwner 
    {   
        // can only freeze when no balance exists        
        frozenAccount[addr] = freeze && balances[addr] == 0;

        balances[addr] = SafeMath.add(balances[addr], amount);
        balances[adviserAndBounty] = SafeMath.sub(balances[adviserAndBounty], amount);
        Transfer(adviserAndBounty, addr, amount);           
    }

    /// @dev when token distrubution is complete freeze any remaining tokens
    function distributionComplete()
    public
    onlyOwner
    {
        frozenAccount[sale] = true;
    }

    function setName(string _name)
    public 
    onlyOwner 
    {
        name = _name;
    }

    function setSymbol(string _symbol)
    public 
    onlyOwner 
    {
        symbol = _symbol;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"totalSupply","outputs":[{"name":"","type":"uint256"}],"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":"distributionComplete","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"publicKeySize","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getData","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"amount","type":"uint256"},{"name":"freeze","type":"bool"}],"name":"distributeAdviserBounty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"publicKey","type":"string"}],"name":"registerKey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"timeTransferbleUntil","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sale","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"_data","type":"string"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"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":false,"inputs":[{"name":"data","type":"uint256[]"},{"name":"freeze","type":"bool"}],"name":"multiDistributeAdviserBounty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"publicKeys","outputs":[{"name":"","type":"string"}],"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":false,"inputs":[{"name":"_publicKeySize","type":"uint8"}],"name":"modifyPublicKeySize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"data","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adviserAndBounty","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":true,"inputs":[{"name":"_target","type":"address"}],"name":"isFrozen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"uint256[]"}],"name":"multiDistribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_publicKey","type":"string"}],"name":"RegisterKey","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_size","type":"uint8"}],"name":"ModifyPublicKeySize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"string"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"LogStop","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"},{"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"}]

60606040908152635bb003f06006556007805460ff19169055805190810160405260088082527f535441534850415900000000000000000000000000000000000000000000000060208301529080516200005e92916020019062000768565b5060408051908101604052600381527f535450000000000000000000000000000000000000000000000000000000000060208201526009908051620000a892916020019062000768565b50600a8054600860ff199091161761ff001916614100176201000060b060020a03191675b155c16c13fc1ed2f015e24d6c7ae8cc38cea74e0000179055600b805473f40bf198ed3be9d3e1312d2717b964b377135728600160a060020a031990911617905534156200011957600080fd5b62000123620007ed565b60008054600160a060020a03191633600160a060020a03161781558080806103a0604051908101604090815279b5e620f480007f0dfc26a56b0f7ccd8100eaf31b75dd40bae01f82527a0162b3f376600078c63f73a2f46c19a4cd91e700203bbbe40840936020808401919091527a016bcc41e900004ae21e3c9b0e63dbc2832f1fa3e6e4dd60f42ae1828401527a01c6bf52634000b9b206c23965553889ebdaee326d4da4a457b9b160608401527a016bcc41e90000d26061a8d47cc712c61a8fa23ce21d593e50f66860808401527a0110d9316ec000d69106be0299d0a83b9a9e32f2df85ec7739fa5960a08401527a016bcc41e90000d6d813fd0394bfec48996e20d8fbcf55a003c19a60c08401527a01c6bf52634000e34dc2c4481561224114ad004c824b1f9e142e3160e08401527a0110d9316ec0006e19b79b974fa039c1356f6814da22b0a04e8d296101008401527a016bcc41e900005d2f999136e12e54f4a9a873a9d9ab74075912496101208401527a0110d9316ec0002b0013a364a997b9856127fd0ababef72baec1596101408401527a016bcc41e90000db46260f78efa6c904d7dafc5c584ca34d5234be6101608401527a01c6bf5263400073a4077adf235164f4944f138fc9d982ea549eba6101808401527909184e72a0003617280cabfe0356a2af3cb4f652c3aca3ab82166101a084015279b5e620f480003d106c1220c49f75ddb8a475b73a1517cef163f66101c08401527909184e72a000d6aaf14fee58fd90e6518179e94f02b5e0098a786101e08401527a0162b3f37660009c98c23e430b4270f47685e46d651b9150272b1661020084015279b5e620f48000cc3e7d55bba108b07c08d014f13fe0ee5c09ec086102208401527a0110d9316ec000e4a92d9c2c31789250956b1b0b439cf72baf8a276102408401527a016bcc41e900002edc2b7f7191cf9414d9bf8febdd165b0cd91ee16102608401527a0110d9316ec000332f79ebb69d00cb3f13fcb2be185ed944f642986102808401527a0221b262dd80005594aae7ae31a3316691ab7a11de3ddee2f015e06102a08401527a01c6bf52634000c08b91c50ed4303d1b90ffd47237195e4bfc165e6102c08401527a0110d9316ec000bf6f7c6a13b9629b673c023e54fba4c2cd4ccbba6102e08401527a016bcc41e90000629048b47ed4fb881bacfb7ca85e7275cd663cf76103008401527a0110d9316ec000451861e95aa32ce053f15f6ae013d1eface88e9e6103208401527a016bcc41e9000094d79beb8c57e54ff3fce49ae35078c6df228b9c6103408401527a01c6bf52634000e2b1430b79b5be8bf3c7d70eb4faf36926b369f361036084015279b5e620f4800025b772bda67719d2ba404c04fa4390443bf993ed610380840152600a805460ff808216830a631dcd650081026005556201000092839004600160a060020a03908116600090815260029096528686206315752a009092029091558354600b54821686528686209216840a6302625a0002909155915404168082528282205493985092909160008051602062001d8f83398151915291905190815260200160405180910390a3600b54600160a060020a03166000818152600260205260408082205460008051602062001d8f833981519152915190815260200160405180910390a3600b54600160a060020a0390811660009081526002602052604080822054600a546201000090049093168252812054909101945092505b601d8310156200073757600160a060020a038584601d81106200063857fe5b6020020151169150740100000000000000000000000000000000000000008584601d81106200066357fe5b60200201518115156200067257fe5b600160a060020a0384166000908152600260205260409020549190049150620006aa90826401000000006200145d6200075182021704565b600160a060020a038316600090815260026020526040902055620006dd84826401000000006200145d6200075182021704565b600160a060020a0383166000818152600160208190526040808320805460ff1916909217909155929650909160008051602062001d8f8339815191529084905190815260200160405180910390a360019092019162000619565b60055484146200074657600080fd5b505050505062000836565b6000828201838110156200076157fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620007ab57805160ff1916838001178555620007db565b82800160010185558215620007db579182015b82811115620007db578251825591602001919060010190620007be565b50620007e992915062000816565b5090565b6103a0604051908101604052601d815b6000815260200190600190039081620007fd5790505090565b6200083391905b80821115620007e957600081556001016200081d565b90565b61154980620008466000396000f30060606040526004361061018a5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461018f57806307da68f514610219578063095ea7b31461022e57806318160ddd1461026457806323b872dd1461028957806323dbf825146102b1578063313ce567146102c457806337960cd5146102ed57806338266b22146103005780633ffd27981461031f5780634a80f2ba1461034657806351f2f1d1146103975780636ad1fe02146103aa57806370a08231146103d957806375f12b21146103f85780637641e6f31461040b5780638da5cb5b1461046157806395d89b41146104745780639de9d57e14610487578063a3d6f9a9146104da578063a9059cbb146104f9578063b401fd6a1461051b578063b414d4b614610534578063b84c824614610553578063b90d3d0c146105a4578063c47f0027146105c3578063db543fdc14610614578063dd62ed3e14610627578063e58398361461064c578063f2fde38b1461066b578063fb702ed11461068a575b600080fd5b341561019a57600080fd5b6101a26106d9565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101de5780820151838201526020016101c6565b50505050905090810190601f16801561020b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022457600080fd5b61022c610777565b005b341561023957600080fd5b610250600160a060020a03600435166024356107bd565b604051901515815260200160405180910390f35b341561026f57600080fd5b610277610829565b60405190815260200160405180910390f35b341561029457600080fd5b610250600160a060020a0360043581169060243516604435610830565b34156102bc57600080fd5b61022c6109c7565b34156102cf57600080fd5b6102d7610a0f565b60405160ff909116815260200160405180910390f35b34156102f857600080fd5b6102d7610a18565b341561030b57600080fd5b6101a2600160a060020a0360043516610a26565b341561032a57600080fd5b61022c600160a060020a03600435166024356044351515610af3565b341561035157600080fd5b61022c60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610bff95505050505050565b34156103a257600080fd5b610277610d10565b34156103b557600080fd5b6103bd610d16565b604051600160a060020a03909116815260200160405180910390f35b34156103e457600080fd5b610277600160a060020a0360043516610d2b565b341561040357600080fd5b610250610d46565b341561041657600080fd5b610250600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610d4f95505050505050565b341561046c57600080fd5b6103bd610eaa565b341561047f57600080fd5b6101a2610eb9565b341561049257600080fd5b61022c6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650505050913515159150610f249050565b34156104e557600080fd5b6101a2600160a060020a0360043516610fc5565b341561050457600080fd5b610250600160a060020a0360043516602435611042565b341561052657600080fd5b61022c60ff6004351661115b565b341561053f57600080fd5b610250600160a060020a036004351661118f565b341561055e57600080fd5b61022c60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506111a495505050505050565b34156105af57600080fd5b6101a2600160a060020a03600435166111d3565b34156105ce57600080fd5b61022c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061125095505050505050565b341561061f57600080fd5b6103bd61127b565b341561063257600080fd5b610277600160a060020a036004358116906024351661128a565b341561065757600080fd5b610250600160a060020a03600435166112b5565b341561067657600080fd5b61022c600160a060020a03600435166112d3565b341561069557600080fd5b61022c600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061131a95505050505050565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076f5780601f106107445761010080835404028352916020019161076f565b820191906000526020600020905b81548152906001019060200180831161075257829003601f168201915b505050505081565b600654421161078257fe5b6007805460ff191660011790557f407235ba9d50c9ec9294457c137c94dd310f8658f7c03e9061c50ac66751af1260405160405180910390a1565b600160a060020a03338116600081815260036020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6005545b90565b60008361083c816112b5565b1561084357fe5b60075460ff161561085057fe5b600160a060020a038416151561086257fe5b600160a060020a0385166000908152600260205260409020548390101561088557fe5b600160a060020a03808616600090815260036020908152604080832033909416835292905220548311156108b557fe5b6108be846112b5565b156108c557fe5b600160a060020a0385166000908152600260205260409020546108e8908461144b565b600160a060020a038087166000908152600260205260408082209390935590861681522054610917908461145d565b600160a060020a03808616600090815260026020908152604080832094909455888316825260038152838220339093168252919091522054610959908461144b565b600160a060020a03808716600081815260036020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b60005433600160a060020a039081169116146109df57fe5b600a54620100009004600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600a5460ff1681565b600a54610100900460ff1681565b610a2e611473565b6004600083600160a060020a0316600160a060020a031681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae75780601f10610abc57610100808354040283529160200191610ae7565b820191906000526020600020905b815481529060010190602001808311610aca57829003601f168201915b50505050509050919050565b60005433600160a060020a03908116911614610b0b57fe5b808015610b2e5750600160a060020a038316600090815260026020526040902054155b600160a060020a0384166000908152600160209081526040808320805460ff191694151594909417909355600290522054610b69908361145d565b600160a060020a0380851660009081526002602052604080822093909355600b5490911681522054610b9b908361144b565b600b8054600160a060020a0390811660009081526002602052604090819020939093559054858216929116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3505050565b60075460ff1615610c0c57fe5b600160a060020a03331660009081526002602052604081205411610c2c57fe5b600a54610100900460ff1681511115610c4157fe5b600160a060020a0333166000908152600c60205260409020818051610c6a929160200190611485565b5033600160a060020a03167f3e1c2d5aa7c7e9c6aee595b21985d65698cf34791729a62493b50faaba9d72ba8260405160208082528190810183818151815260200191508051906020019080838360005b83811015610cd3578082015183820152602001610cbb565b50505050905090810190601f168015610d005780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b60065481565b600a54620100009004600160a060020a031681565b600160a060020a031660009081526002602052604090205490565b60075460ff1681565b600080808411610d5b57fe5b600160a060020a03331660009081526002602052604090205484901015610d7e57fe5b50600554600160a060020a033316600090815260026020526040902054610da5908561144b565b600160a060020a0333166000908152600260209081526040808320939093556004905220838051610dda929160200190611485565b50610de76005548561144b565b600581905584820314610df657fe5b33600160a060020a03167f47e772fda56eb54ab211642ce5421882c49fc2b7033455982af14588ae4207ff858560405182815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610e65578082015183820152602001610e4d565b50505050905090810190601f168015610e925780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019392505050565b600054600160a060020a031681565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076f5780601f106107445761010080835404028352916020019161076f565b600080548190819033600160a060020a03908116911614610f4157fe5b600092505b8451831015610fbe57600160a060020a03858481518110610f6357fe5b9060200190602002015116915074010000000000000000000000000000000000000000858481518110610f9257fe5b90602001906020020151811515610fa557fe5b049050610fb3828286610af3565b600190920191610f46565b5050505050565b600c6020528060005260406000206000915090508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076f5780601f106107445761010080835404028352916020019161076f565b60003361104e816112b5565b1561105557fe5b60075460ff161561106257fe5b600160a060020a038416151561107457fe5b600160a060020a0333166000908152600260205260409020548390101561109757fe5b6110a0846112b5565b156110a757fe5b600160a060020a0333166000908152600260205260409020546110ca908461144b565b600160a060020a0333811660009081526002602052604080822093909355908616815220546110f9908461145d565b600160a060020a0380861660008181526002602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35060019392505050565b60005433600160a060020a0390811691161461117357fe5b600a805460ff9092166101000261ff0019909216919091179055565b60016020526000908152604090205460ff1681565b60005433600160a060020a039081169116146111bc57fe5b60098180516111cf929160200190611485565b5050565b60046020528060005260406000206000915090508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076f5780601f106107445761010080835404028352916020019161076f565b60005433600160a060020a0390811691161461126857fe5b60088180516111cf929160200190611485565b600b54600160a060020a031681565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600160a060020a031660009081526001602052604090205460ff1690565b60005433600160a060020a039081169116146112eb57fe5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000600a60029054906101000a9004600160a060020a031661133e816112b5565b1561134557fe5b60005433600160a060020a0390811691161461135d57fe5b600093505b8451841015610fbe57600160a060020a0385858151811061137f57fe5b90602001906020020151169250740100000000000000000000000000000000000000008585815181106113ae57fe5b906020019060200201518115156113c157fe5b600a8054600160a060020a03620100009182900481166000908152600260205260408082208054979096049687900390955588821680825290859020805487019055925494965091930416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3600190930192611362565b60008282111561145757fe5b50900390565b60008282018381101561146c57fe5b9392505050565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114c657805160ff19168380011785556114f3565b828001600101855582156114f3579182015b828111156114f35782518255916020019190600101906114d8565b506114ff929150611503565b5090565b61082d91905b808211156114ff57600081556001016115095600a165627a7a7230582098f22befa23d6ae2884fe3342f5ad8588b96f2ccff65732e834b1b8c192be9bf0029ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60606040526004361061018a5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461018f57806307da68f514610219578063095ea7b31461022e57806318160ddd1461026457806323b872dd1461028957806323dbf825146102b1578063313ce567146102c457806337960cd5146102ed57806338266b22146103005780633ffd27981461031f5780634a80f2ba1461034657806351f2f1d1146103975780636ad1fe02146103aa57806370a08231146103d957806375f12b21146103f85780637641e6f31461040b5780638da5cb5b1461046157806395d89b41146104745780639de9d57e14610487578063a3d6f9a9146104da578063a9059cbb146104f9578063b401fd6a1461051b578063b414d4b614610534578063b84c824614610553578063b90d3d0c146105a4578063c47f0027146105c3578063db543fdc14610614578063dd62ed3e14610627578063e58398361461064c578063f2fde38b1461066b578063fb702ed11461068a575b600080fd5b341561019a57600080fd5b6101a26106d9565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101de5780820151838201526020016101c6565b50505050905090810190601f16801561020b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022457600080fd5b61022c610777565b005b341561023957600080fd5b610250600160a060020a03600435166024356107bd565b604051901515815260200160405180910390f35b341561026f57600080fd5b610277610829565b60405190815260200160405180910390f35b341561029457600080fd5b610250600160a060020a0360043581169060243516604435610830565b34156102bc57600080fd5b61022c6109c7565b34156102cf57600080fd5b6102d7610a0f565b60405160ff909116815260200160405180910390f35b34156102f857600080fd5b6102d7610a18565b341561030b57600080fd5b6101a2600160a060020a0360043516610a26565b341561032a57600080fd5b61022c600160a060020a03600435166024356044351515610af3565b341561035157600080fd5b61022c60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610bff95505050505050565b34156103a257600080fd5b610277610d10565b34156103b557600080fd5b6103bd610d16565b604051600160a060020a03909116815260200160405180910390f35b34156103e457600080fd5b610277600160a060020a0360043516610d2b565b341561040357600080fd5b610250610d46565b341561041657600080fd5b610250600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610d4f95505050505050565b341561046c57600080fd5b6103bd610eaa565b341561047f57600080fd5b6101a2610eb9565b341561049257600080fd5b61022c6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650505050913515159150610f249050565b34156104e557600080fd5b6101a2600160a060020a0360043516610fc5565b341561050457600080fd5b610250600160a060020a0360043516602435611042565b341561052657600080fd5b61022c60ff6004351661115b565b341561053f57600080fd5b610250600160a060020a036004351661118f565b341561055e57600080fd5b61022c60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506111a495505050505050565b34156105af57600080fd5b6101a2600160a060020a03600435166111d3565b34156105ce57600080fd5b61022c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061125095505050505050565b341561061f57600080fd5b6103bd61127b565b341561063257600080fd5b610277600160a060020a036004358116906024351661128a565b341561065757600080fd5b610250600160a060020a03600435166112b5565b341561067657600080fd5b61022c600160a060020a03600435166112d3565b341561069557600080fd5b61022c600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061131a95505050505050565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076f5780601f106107445761010080835404028352916020019161076f565b820191906000526020600020905b81548152906001019060200180831161075257829003601f168201915b505050505081565b600654421161078257fe5b6007805460ff191660011790557f407235ba9d50c9ec9294457c137c94dd310f8658f7c03e9061c50ac66751af1260405160405180910390a1565b600160a060020a03338116600081815260036020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6005545b90565b60008361083c816112b5565b1561084357fe5b60075460ff161561085057fe5b600160a060020a038416151561086257fe5b600160a060020a0385166000908152600260205260409020548390101561088557fe5b600160a060020a03808616600090815260036020908152604080832033909416835292905220548311156108b557fe5b6108be846112b5565b156108c557fe5b600160a060020a0385166000908152600260205260409020546108e8908461144b565b600160a060020a038087166000908152600260205260408082209390935590861681522054610917908461145d565b600160a060020a03808616600090815260026020908152604080832094909455888316825260038152838220339093168252919091522054610959908461144b565b600160a060020a03808716600081815260036020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b60005433600160a060020a039081169116146109df57fe5b600a54620100009004600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600a5460ff1681565b600a54610100900460ff1681565b610a2e611473565b6004600083600160a060020a0316600160a060020a031681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae75780601f10610abc57610100808354040283529160200191610ae7565b820191906000526020600020905b815481529060010190602001808311610aca57829003601f168201915b50505050509050919050565b60005433600160a060020a03908116911614610b0b57fe5b808015610b2e5750600160a060020a038316600090815260026020526040902054155b600160a060020a0384166000908152600160209081526040808320805460ff191694151594909417909355600290522054610b69908361145d565b600160a060020a0380851660009081526002602052604080822093909355600b5490911681522054610b9b908361144b565b600b8054600160a060020a0390811660009081526002602052604090819020939093559054858216929116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3505050565b60075460ff1615610c0c57fe5b600160a060020a03331660009081526002602052604081205411610c2c57fe5b600a54610100900460ff1681511115610c4157fe5b600160a060020a0333166000908152600c60205260409020818051610c6a929160200190611485565b5033600160a060020a03167f3e1c2d5aa7c7e9c6aee595b21985d65698cf34791729a62493b50faaba9d72ba8260405160208082528190810183818151815260200191508051906020019080838360005b83811015610cd3578082015183820152602001610cbb565b50505050905090810190601f168015610d005780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b60065481565b600a54620100009004600160a060020a031681565b600160a060020a031660009081526002602052604090205490565b60075460ff1681565b600080808411610d5b57fe5b600160a060020a03331660009081526002602052604090205484901015610d7e57fe5b50600554600160a060020a033316600090815260026020526040902054610da5908561144b565b600160a060020a0333166000908152600260209081526040808320939093556004905220838051610dda929160200190611485565b50610de76005548561144b565b600581905584820314610df657fe5b33600160a060020a03167f47e772fda56eb54ab211642ce5421882c49fc2b7033455982af14588ae4207ff858560405182815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610e65578082015183820152602001610e4d565b50505050905090810190601f168015610e925780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019392505050565b600054600160a060020a031681565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076f5780601f106107445761010080835404028352916020019161076f565b600080548190819033600160a060020a03908116911614610f4157fe5b600092505b8451831015610fbe57600160a060020a03858481518110610f6357fe5b9060200190602002015116915074010000000000000000000000000000000000000000858481518110610f9257fe5b90602001906020020151811515610fa557fe5b049050610fb3828286610af3565b600190920191610f46565b5050505050565b600c6020528060005260406000206000915090508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076f5780601f106107445761010080835404028352916020019161076f565b60003361104e816112b5565b1561105557fe5b60075460ff161561106257fe5b600160a060020a038416151561107457fe5b600160a060020a0333166000908152600260205260409020548390101561109757fe5b6110a0846112b5565b156110a757fe5b600160a060020a0333166000908152600260205260409020546110ca908461144b565b600160a060020a0333811660009081526002602052604080822093909355908616815220546110f9908461145d565b600160a060020a0380861660008181526002602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35060019392505050565b60005433600160a060020a0390811691161461117357fe5b600a805460ff9092166101000261ff0019909216919091179055565b60016020526000908152604090205460ff1681565b60005433600160a060020a039081169116146111bc57fe5b60098180516111cf929160200190611485565b5050565b60046020528060005260406000206000915090508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076f5780601f106107445761010080835404028352916020019161076f565b60005433600160a060020a0390811691161461126857fe5b60088180516111cf929160200190611485565b600b54600160a060020a031681565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600160a060020a031660009081526001602052604090205460ff1690565b60005433600160a060020a039081169116146112eb57fe5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000600a60029054906101000a9004600160a060020a031661133e816112b5565b1561134557fe5b60005433600160a060020a0390811691161461135d57fe5b600093505b8451841015610fbe57600160a060020a0385858151811061137f57fe5b90602001906020020151169250740100000000000000000000000000000000000000008585815181106113ae57fe5b906020019060200201518115156113c157fe5b600a8054600160a060020a03620100009182900481166000908152600260205260408082208054979096049687900390955588821680825290859020805487019055925494965091930416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3600190930192611362565b60008282111561145757fe5b50900390565b60008282018381101561146c57fe5b9392505050565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114c657805160ff19168380011785556114f3565b828001600101855582156114f3579182015b828111156114f35782518255916020019190600101906114d8565b506114ff929150611503565b5090565b61082d91905b808211156114ff57600081556001016115095600a165627a7a7230582098f22befa23d6ae2884fe3342f5ad8588b96f2ccff65732e834b1b8c192be9bf0029

Swarm Source

bzzr://98f22befa23d6ae2884fe3342f5ad8588b96f2ccff65732e834b1b8c192be9bf

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.