ETH Price: $2,575.46 (+0.53%)
Gas: 5.34 Gwei

Contract

0xDAc15794F0fadfDcF3A93AEAabdc7caC19066724
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer104846842020-07-18 17:03:001526 days ago1595091780IN
0xDAc15794...C19066724
0 ETH0.0035631267
Transfer104748362020-07-17 4:39:081527 days ago1594960748IN
0xDAc15794...C19066724
0 ETH0.0015649241
Transfer97393912020-03-25 8:25:251641 days ago1585124725IN
0xDAc15794...C19066724
0 ETH0.000190785
Transfer93067852020-01-18 18:03:041708 days ago1579370584IN
0xDAc15794...C19066724
0 ETH0.000172027.425
Transfer93067772020-01-18 18:01:151708 days ago1579370475IN
0xDAc15794...C19066724
0 ETH0.000283497.425
Transfer93059572020-01-18 15:04:541708 days ago1579359894IN
0xDAc15794...C19066724
0 ETH0.000038141
Transfer93058882020-01-18 14:52:091708 days ago1579359129IN
0xDAc15794...C19066724
0 ETH0.000079711.5
Transfer92456532020-01-09 9:29:361717 days ago1578562176IN
0xDAc15794...C19066724
0 ETH0.000038151
Transfer91513552019-12-23 15:30:421734 days ago1577115042IN
0xDAc15794...C19066724
0 ETH0.000185358
Transfer91445212019-12-22 7:03:301735 days ago1576998210IN
0xDAc15794...C19066724
0 ETH0.000175453.3
Transfer91406202019-12-21 12:15:051736 days ago1576930505IN
0xDAc15794...C19066724
0 ETH0.000057231.5
Transfer90878062019-12-11 8:29:501746 days ago1576052990IN
0xDAc15794...C19066724
0 ETH0.0003819310
Transfer90391142019-12-02 16:55:131755 days ago1575305713IN
0xDAc15794...C19066724
0 ETH0.000190485
Transfer86945762019-10-07 11:08:411811 days ago1570446521IN
0xDAc15794...C19066724
0 ETH0.00011393
Transfer85219442019-09-10 11:55:261838 days ago1568116526IN
0xDAc15794...C19066724
0 ETH0.0007973421
Transfer83110762019-08-08 16:31:241871 days ago1565281884IN
0xDAc15794...C19066724
0 ETH0.003451365
Transfer82112372019-07-24 4:22:481886 days ago1563942168IN
0xDAc15794...C19066724
0 ETH0.000037961
Transfer81139952019-07-09 1:03:341901 days ago1562634214IN
0xDAc15794...C19066724
0 ETH0.000037961
Transfer From79511592019-06-13 15:37:181927 days ago1560440238IN
0xDAc15794...C19066724
0 ETH0.000263839
Transfer79510402019-06-13 15:12:111927 days ago1560438731IN
0xDAc15794...C19066724
0 ETH0.000477299
Transfer79510052019-06-13 15:05:231927 days ago1560438323IN
0xDAc15794...C19066724
0 ETH0.00020969.1
Transfer79509902019-06-13 15:02:321927 days ago1560438152IN
0xDAc15794...C19066724
0 ETH0.000424268
Transfer From79389392019-06-11 17:36:341929 days ago1560274594IN
0xDAc15794...C19066724
0 ETH0.000586320
Approve79389382019-06-11 17:36:151929 days ago1560274575IN
0xDAc15794...C19066724
0 ETH0.0009233820
Transfer79377182019-06-11 13:09:051929 days ago1560258545IN
0xDAc15794...C19066724
0 ETH0.0007619420
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
60648662018-07-31 19:31:082244 days ago1533065468
0xDAc15794...C19066724
0.12383 ETH
60641692018-07-31 16:51:392244 days ago1533055899
0xDAc15794...C19066724
37.506269 ETH
60629352018-07-31 11:51:342244 days ago1533037894
0xDAc15794...C19066724
0.304 ETH
60624672018-07-31 9:59:142244 days ago1533031154
0xDAc15794...C19066724
0.5 ETH
60621322018-07-31 8:36:192244 days ago1533026179
0xDAc15794...C19066724
0.36 ETH
60619852018-07-31 7:56:472244 days ago1533023807
0xDAc15794...C19066724
0.1193382 ETH
60612002018-07-31 4:39:042244 days ago1533011944
0xDAc15794...C19066724
0.16090608 ETH
60608342018-07-31 3:09:312244 days ago1533006571
0xDAc15794...C19066724
29.99843194 ETH
60605832018-07-31 2:09:102244 days ago1533002950
0xDAc15794...C19066724
79.99717038 ETH
60605632018-07-31 2:02:142244 days ago1533002534
0xDAc15794...C19066724
66.69841607 ETH
60593152018-07-30 20:55:072245 days ago1532984107
0xDAc15794...C19066724
1 ETH
60588202018-07-30 18:57:192245 days ago1532977039
0xDAc15794...C19066724
0.3 ETH
60556292018-07-30 6:06:022245 days ago1532930762
0xDAc15794...C19066724
0.17 ETH
60551002018-07-30 4:03:042245 days ago1532923384
0xDAc15794...C19066724
120.274759 ETH
60371662018-07-27 4:00:552248 days ago1532664055
0xDAc15794...C19066724
0.2 ETH
60368802018-07-27 2:53:182248 days ago1532659998
0xDAc15794...C19066724
49.99773589 ETH
60368712018-07-27 2:50:052248 days ago1532659805
0xDAc15794...C19066724
49.99717038 ETH
60339832018-07-26 15:04:422249 days ago1532617482
0xDAc15794...C19066724
0.1 ETH
60291722018-07-25 19:26:462250 days ago1532546806
0xDAc15794...C19066724
1.44631625 ETH
60220072018-07-24 14:03:582251 days ago1532441038
0xDAc15794...C19066724
0.18 ETH
60097162018-07-22 11:57:562253 days ago1532260676
0xDAc15794...C19066724
0.24 ETH
60037242018-07-21 11:58:352254 days ago1532174315
0xDAc15794...C19066724
1.215 ETH
60000802018-07-20 20:51:302255 days ago1532119890
0xDAc15794...C19066724
0.1 ETH
59926132018-07-19 14:16:202256 days ago1532009780
0xDAc15794...C19066724
0.101 ETH
59907592018-07-19 6:49:512256 days ago1531982991
0xDAc15794...C19066724
0.245 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GreenX

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-15
*/

pragma solidity ^0.4.21;


contract Owner {
    address public owner;

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

    function Owner(address _owner) public {
        owner = _owner;
    }

    function changeOwner(address _newOwnerAddr) public onlyOwner {
        require(_newOwnerAddr != address(0));
        owner = _newOwnerAddr;
    }
}


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    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;
    }

    /**
    * @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 c;
    }

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


contract GreenX is Owner {
    using SafeMath for uint256;

    string public constant name = "GREENX";
    string public constant symbol = "GEX";
    uint public constant decimals = 18;
    uint256 constant public totalSupply = 375000000 * 10 ** 18; // 375 mil tokens will be supplied
  
    mapping(address => uint256) internal balances;
    mapping(address => mapping (address => uint256)) internal allowed;

    address public portalAddress;
    address public adminAddress;
    address public walletAddress;
    address public founderAddress;
    address public teamAddress;

    mapping(address => bool) public privateList;
    mapping(address => bool) public whiteList;
    mapping(address => uint256) public totalInvestedAmountOf;

    uint constant lockPeriod1 = 180 days; // 1st locked period for tokens allocation of founder and team
    uint constant lockPeriod2 = 1 years; // 2nd locked period for tokens allocation of founder and team
    uint constant lockPeriod3 = 2 years; // locked period for remaining sale tokens after ending ICO
    uint constant NOT_SALE = 0; // Not in sales
    uint constant IN_PRIVATE_SALE = 1; // In private sales
    uint constant IN_PRESALE = 2; // In presales
    uint constant END_PRESALE = 3; // End presales
    uint constant IN_1ST_ICO = 4; // In ICO 1st round
    uint constant IN_2ND_ICO = 5; // In ICO 2nd round
    uint constant IN_3RD_ICO = 6; // In ICO 3rd round
    uint constant END_SALE = 7; // End sales

    uint256 public constant salesAllocation = 187500000 * 10 ** 18; // 187.5 mil tokens allocated for sales
    uint256 public constant bonusAllocation = 37500000 * 10 ** 18; // 37.5 mil tokens allocated for token sale bonuses
    uint256 public constant reservedAllocation = 90000000 * 10 ** 18; // 90 mil tokens allocated for reserved, bounty campaigns, ICO partners, and bonus fund
    uint256 public constant founderAllocation = 37500000 * 10 ** 18; // 37.5 mil tokens allocated for founders
    uint256 public constant teamAllocation = 22500000 * 10 ** 18; // 22.5 mil tokens allocated for team
    uint256 public constant minInvestedCap = 2500 * 10 ** 18; // 2500 ether for softcap 
    uint256 public constant minInvestedAmount = 0.1 * 10 ** 18; // 0.1 ether for mininum ether contribution per transaction
    
    uint saleState;
    uint256 totalInvestedAmount;
    uint public icoStartTime;
    uint public icoEndTime;
    bool public inActive;
    bool public isSelling;
    bool public isTransferable;
    uint public founderAllocatedTime = 1;
    uint public teamAllocatedTime = 1;
    uint256 public privateSalePrice;
    uint256 public preSalePrice;
    uint256 public icoStandardPrice;
    uint256 public ico1stPrice;
    uint256 public ico2ndPrice;
    uint256 public totalRemainingTokensForSales; // Total tokens remaining for sales
    uint256 public totalReservedAndBonusTokenAllocation; // Total tokens allocated for reserved and bonuses
    uint256 public totalLoadedRefund; // Total ether will be loaded to contract for refund
    uint256 public totalRefundedAmount; // Total ether refunded to investors

    event Approval(address indexed owner, address indexed spender, uint256 value); // ERC20 standard event
    event Transfer(address indexed from, address indexed to, uint256 value); // ERC20 standard event

    event ModifyWhiteList(address investorAddress, bool isWhiteListed);  // Add or remove investor's address to or from white list
    event ModifyPrivateList(address investorAddress, bool isPrivateListed);  // Add or remove investor's address to or from private list
    event StartPrivateSales(uint state); // Start private sales
    event StartPresales(uint state); // Start presales
    event EndPresales(uint state); // End presales
    event StartICO(uint state); // Start ICO sales
    event EndICO(uint state); // End ICO sales
    
    event SetPrivateSalePrice(uint256 price); // Set private sale price
    event SetPreSalePrice(uint256 price); // Set presale price
    event SetICOPrice(uint256 price); // Set ICO standard price
    
    event IssueTokens(address investorAddress, uint256 amount, uint256 tokenAmount, uint state); // Issue tokens to investor
    event RevokeTokens(address investorAddress, uint256 amount, uint256 tokenAmount, uint256 txFee); // Revoke tokens after ending ICO for incompleted KYC investors
    event AllocateTokensForFounder(address founderAddress, uint256 founderAllocatedTime, uint256 tokenAmount); // Allocate tokens to founders' address
    event AllocateTokensForTeam(address teamAddress, uint256 teamAllocatedTime, uint256 tokenAmount); // Allocate tokens to team's address
    event AllocateReservedTokens(address reservedAddress, uint256 tokenAmount); // Allocate reserved tokens
    event Refund(address investorAddress, uint256 etherRefundedAmount, uint256 tokensRevokedAmount); // Refund ether and revoke tokens for investors

    modifier isActive() {
        require(inActive == false);
        _;
    }

    modifier isInSale() {
        require(isSelling == true);
        _;
    }

    modifier transferable() {
        require(isTransferable == true);
        _;
    }

    modifier onlyOwnerOrAdminOrPortal() {
        require(msg.sender == owner || msg.sender == adminAddress || msg.sender == portalAddress);
        _;
    }

    modifier onlyOwnerOrAdmin() {
        require(msg.sender == owner || msg.sender == adminAddress);
        _;
    }

    function GreenX(address _walletAddr, address _adminAddr, address _portalAddr) public Owner(msg.sender) {
        require(_walletAddr != address(0));
        require(_adminAddr != address(0));
        require(_portalAddr != address(0));
		
        walletAddress = _walletAddr;
        adminAddress = _adminAddr;
        portalAddress = _portalAddr;
        inActive = true;
        totalInvestedAmount = 0;
        totalRemainingTokensForSales = salesAllocation;
        totalReservedAndBonusTokenAllocation = reservedAllocation + bonusAllocation;
    }

    // Fallback function for token purchasing  
    function () external payable isActive isInSale {
        uint state = getCurrentState();
        require(state >= IN_PRIVATE_SALE && state < END_SALE);
        require(msg.value >= minInvestedAmount);

        bool isPrivate = privateList[msg.sender];
        if (isPrivate == true) {
            return issueTokensForPrivateInvestor(state);
        }
        if (state == IN_PRESALE) {
            return issueTokensForPresale(state);
        }
        if (IN_1ST_ICO <= state && state <= IN_3RD_ICO) {
            return issueTokensForICO(state);
        }
        revert();
    }

    // Load ether amount to contract for refunding or revoking
    function loadFund() external payable {
        require(msg.value > 0);
		
        totalLoadedRefund = totalLoadedRefund.add(msg.value);
    }

    // ERC20 standard function
    function transfer(address _to, uint256 _value) external transferable returns (bool) {
        require(_to != address(0));
        require(_value > 0);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    // ERC20 standard function
    function transferFrom(address _from, address _to, uint256 _value) external transferable returns (bool) {
        require(_to != address(0));
        require(_from != address(0));
        require(_value > 0);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    // ERC20 standard function
    function approve(address _spender, uint256 _value) external transferable returns (bool) {
        require(_spender != address(0));
        require(_value > 0);
		
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    // Modify white list
    function modifyWhiteList(address[] _investorAddrs, bool _isWhiteListed) external isActive onlyOwnerOrAdminOrPortal returns(bool) {
        for (uint256 i = 0; i < _investorAddrs.length; i++) {
            whiteList[_investorAddrs[i]] = _isWhiteListed;
            emit ModifyWhiteList(_investorAddrs[i], _isWhiteListed);
        }
        return true;
    }

    // Modify private list
    function modifyPrivateList(address[] _investorAddrs, bool _isPrivateListed) external isActive onlyOwnerOrAdminOrPortal returns(bool) {
        for (uint256 i = 0; i < _investorAddrs.length; i++) {
            privateList[_investorAddrs[i]] = _isPrivateListed;
            emit ModifyPrivateList(_investorAddrs[i], _isPrivateListed);
        }
        return true;
    }

    // Start private sales
    function startPrivateSales() external isActive onlyOwnerOrAdmin returns (bool) {
        require(saleState == NOT_SALE);
        require(privateSalePrice > 0);
		
        saleState = IN_PRIVATE_SALE;
        isSelling = true;
        emit StartPrivateSales(saleState);
        return true;
    }

    // Start presales
    function startPreSales() external isActive onlyOwnerOrAdmin returns (bool) {
        require(saleState < IN_PRESALE);
        require(preSalePrice > 0);
		
        saleState = IN_PRESALE;
        isSelling = true;
        emit StartPresales(saleState);
        return true;
    }

    // End presales
    function endPreSales() external isActive onlyOwnerOrAdmin returns (bool) {
        require(saleState == IN_PRESALE);
		
        saleState = END_PRESALE;
        isSelling = false;
        emit EndPresales(saleState);
        return true;
    }

    // Start ICO
    function startICO() external isActive onlyOwnerOrAdmin returns (bool) {
        require(saleState == END_PRESALE);
        require(icoStandardPrice > 0);
		
        saleState = IN_1ST_ICO;
        icoStartTime = now;
        isSelling = true;
        emit StartICO(saleState);
        return true;
    }

    // End ICO
    function endICO() external isActive onlyOwnerOrAdmin returns (bool) {
        require(getCurrentState() == IN_3RD_ICO);
        require(icoEndTime == 0);
		
        saleState = END_SALE;
        isSelling = false;
        icoEndTime = now;
        emit EndICO(saleState);
        return true;
    }

    // Set private sales price
    function setPrivateSalePrice(uint256 _tokenPerEther) external onlyOwnerOrAdmin returns(bool) {
        require(_tokenPerEther > 0);
		
        privateSalePrice = _tokenPerEther;
        emit SetPrivateSalePrice(privateSalePrice);
        return true;
    }

    // Set presales price
    function setPreSalePrice(uint256 _tokenPerEther) external onlyOwnerOrAdmin returns(bool) {
        require(_tokenPerEther > 0);
		
        preSalePrice = _tokenPerEther;
        emit SetPreSalePrice(preSalePrice);
        return true;
    }

    // Set ICO price including ICO standard price, ICO 1st round price, ICO 2nd round price
    function setICOPrice(uint256 _tokenPerEther) external onlyOwnerOrAdmin returns(bool) {
        require(_tokenPerEther > 0);
		
        icoStandardPrice = _tokenPerEther;
        ico1stPrice = _tokenPerEther + _tokenPerEther * 20 / 100;
        ico2ndPrice = _tokenPerEther + _tokenPerEther * 10 / 100;
        emit SetICOPrice(icoStandardPrice);
        return true;
    }

    // Revoke tokens from incompleted KYC investors' addresses
    function revokeTokens(address _noneKycAddr, uint256 _transactionFee) external onlyOwnerOrAdmin {
        require(_noneKycAddr != address(0));
        uint256 investedAmount = totalInvestedAmountOf[_noneKycAddr];
        uint256 totalRemainingRefund = totalLoadedRefund.sub(totalRefundedAmount);
        require(whiteList[_noneKycAddr] == false && privateList[_noneKycAddr] == false);
        require(investedAmount > 0);
        require(totalRemainingRefund >= investedAmount);
        require(saleState == END_SALE);
		
        uint256 refundAmount = investedAmount.sub(_transactionFee);
        uint tokenRevoked = balances[_noneKycAddr];
        totalInvestedAmountOf[_noneKycAddr] = 0;
        balances[_noneKycAddr] = 0;
        totalRemainingTokensForSales = totalRemainingTokensForSales.add(tokenRevoked);
        totalRefundedAmount = totalRefundedAmount.add(refundAmount);
        _noneKycAddr.transfer(refundAmount);
        emit RevokeTokens(_noneKycAddr, refundAmount, tokenRevoked, _transactionFee);
    }    

    // Investors can claim ether refund if total raised fund doesn't reach our softcap
    function refund() external {
        uint256 refundedAmount = totalInvestedAmountOf[msg.sender];
        uint256 totalRemainingRefund = totalLoadedRefund.sub(totalRefundedAmount);
        uint256 tokenRevoked = balances[msg.sender];
        require(saleState == END_SALE);
        require(!isSoftCapReached());
        require(totalRemainingRefund >= refundedAmount && refundedAmount > 0);
		
        totalInvestedAmountOf[msg.sender] = 0;
        balances[msg.sender] = 0;
        totalRemainingTokensForSales = totalRemainingTokensForSales.add(tokenRevoked);
        totalRefundedAmount = totalRefundedAmount.add(refundedAmount);
        msg.sender.transfer(refundedAmount);
        emit Refund(msg.sender, refundedAmount, tokenRevoked);
    }    

    // Activate token sale function
    function activate() external onlyOwner {
        inActive = false;
    }

    // Deacivate token sale function
    function deActivate() external onlyOwner {
        inActive = true;
    }

    // Enable transfer feature of tokens
    function enableTokenTransfer() external isActive onlyOwner {
        isTransferable = true;
    }

    // Modify wallet
    function changeWallet(address _newAddress) external onlyOwner {
        require(_newAddress != address(0));
        require(walletAddress != _newAddress);
        walletAddress = _newAddress;
    }

    // Modify admin
    function changeAdminAddress(address _newAddress) external onlyOwner {
        require(_newAddress != address(0));
        require(adminAddress != _newAddress);
        adminAddress = _newAddress;
    }

    // Modify portal
    function changePortalAddress(address _newAddress) external onlyOwner {
        require(_newAddress != address(0));
        require(portalAddress != _newAddress);
        portalAddress = _newAddress;
    }
  
    // Modify founder address to receive founder tokens allocation
    function changeFounderAddress(address _newAddress) external onlyOwnerOrAdmin {
        require(_newAddress != address(0));
        require(founderAddress != _newAddress);
        founderAddress = _newAddress;
    }

    // Modify team address to receive team tokens allocation
    function changeTeamAddress(address _newAddress) external onlyOwnerOrAdmin {
        require(_newAddress != address(0));
        require(teamAddress != _newAddress);
        teamAddress = _newAddress;
    }

    // Allocate tokens for founder vested gradually for 1 year
    function allocateTokensForFounder() external isActive onlyOwnerOrAdmin {
        require(saleState == END_SALE);
        require(founderAddress != address(0));
        uint256 amount;
        if (founderAllocatedTime == 1) {
            amount = founderAllocation * 20/100;
            balances[founderAddress] = balances[founderAddress].add(amount);
            emit AllocateTokensForFounder(founderAddress, founderAllocatedTime, amount);
            founderAllocatedTime = 2;
            return;
        }
        if (founderAllocatedTime == 2) {
            require(now >= icoEndTime + lockPeriod1);
            amount = founderAllocation * 30/100;
            balances[founderAddress] = balances[founderAddress].add(amount);
            emit AllocateTokensForFounder(founderAddress, founderAllocatedTime, amount);
            founderAllocatedTime = 3;
            return;
        }
        if (founderAllocatedTime == 3) {
            require(now >= icoEndTime + lockPeriod2);
            amount = founderAllocation * 50/100;
            balances[founderAddress] = balances[founderAddress].add(amount);
            emit AllocateTokensForFounder(founderAddress, founderAllocatedTime, amount);
            founderAllocatedTime = 4;
            return;
        }
        revert();
    }

    // Allocate tokens for team vested gradually for 1 year
    function allocateTokensForTeam() external isActive onlyOwnerOrAdmin {
        require(saleState == END_SALE);
        require(teamAddress != address(0));
        uint256 amount;
        if (teamAllocatedTime == 1) {
            amount = teamAllocation * 20/100;
            balances[teamAddress] = balances[teamAddress].add(amount);
            emit AllocateTokensForTeam(teamAddress, teamAllocatedTime, amount);
            teamAllocatedTime = 2;
            return;
        }
        if (teamAllocatedTime == 2) {
            require(now >= icoEndTime + lockPeriod1);
            amount = teamAllocation * 30/100;
            balances[teamAddress] = balances[teamAddress].add(amount);
            emit AllocateTokensForTeam(teamAddress, teamAllocatedTime, amount);
            teamAllocatedTime = 3;
            return;
        }
        if (teamAllocatedTime == 3) {
            require(now >= icoEndTime + lockPeriod2);
            amount = teamAllocation * 50/100;
            balances[teamAddress] = balances[teamAddress].add(amount);
            emit AllocateTokensForTeam(teamAddress, teamAllocatedTime, amount);
            teamAllocatedTime = 4;
            return;
        }
        revert();
    }

    // Remaining tokens for sales will be locked by contract in 2 years
    function allocateRemainingTokens(address _addr) external isActive onlyOwnerOrAdmin {
        require(_addr != address(0));
        require(saleState == END_SALE);
        require(totalRemainingTokensForSales > 0);
        require(now >= icoEndTime + lockPeriod3);
        balances[_addr] = balances[_addr].add(totalRemainingTokensForSales);
        totalRemainingTokensForSales = 0;
    }

    // Allocate reserved tokens
    function allocateReservedTokens(address _addr, uint _amount) external isActive onlyOwnerOrAdmin {
        require(saleState == END_SALE);
        require(_amount > 0);
        require(_addr != address(0));
		
        balances[_addr] = balances[_addr].add(_amount);
        totalReservedAndBonusTokenAllocation = totalReservedAndBonusTokenAllocation.sub(_amount);
        emit AllocateReservedTokens(_addr, _amount);
    }

    // ERC20 standard function
    function allowance(address _owner, address _spender) external constant returns (uint256) {
        return allowed[_owner][_spender];
    }

    // ERC20 standard function
    function balanceOf(address _owner) external constant returns (uint256 balance) {
        return balances[_owner];
    }

    // Get current sales state
    function getCurrentState() public view returns(uint256) {
        if (saleState == IN_1ST_ICO) {
            if (now > icoStartTime + 30 days) {
                return IN_3RD_ICO;
            }
            if (now > icoStartTime + 15 days) {
                return IN_2ND_ICO;
            }
            return IN_1ST_ICO;
        }
        return saleState;
    }

    // Get softcap reaching status
    function isSoftCapReached() public view returns (bool) {
        return totalInvestedAmount >= minInvestedCap;
    }

    // Issue tokens to private investors
    function issueTokensForPrivateInvestor(uint _state) private {
        uint256 price = privateSalePrice;
        issueTokens(price, _state);
    }

    // Issue tokens to normal investors in presales
    function issueTokensForPresale(uint _state) private {
        uint256 price = preSalePrice;
        issueTokens(price, _state);
    }

    // Issue tokens to normal investors through ICO rounds
    function issueTokensForICO(uint _state) private {
        uint256 price = icoStandardPrice;
        if (_state == IN_1ST_ICO) {
            price = ico1stPrice;
        } else if (_state == IN_2ND_ICO) {
            price = ico2ndPrice;
        }
        issueTokens(price, _state);
    }

    // Issue tokens to investors and transfer ether to wallet
    function issueTokens(uint256 _price, uint _state) private {
        require(walletAddress != address(0));
		
        uint tokenAmount = msg.value.mul(_price).mul(10**18).div(1 ether);
        balances[msg.sender] = balances[msg.sender].add(tokenAmount);
        totalInvestedAmountOf[msg.sender] = totalInvestedAmountOf[msg.sender].add(msg.value);
        totalRemainingTokensForSales = totalRemainingTokensForSales.sub(tokenAmount);
        totalInvestedAmount = totalInvestedAmount.add(msg.value);
        walletAddress.transfer(msg.value);
        emit IssueTokens(msg.sender, msg.value, tokenAmount, _state);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"loadFund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"bonusAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reservedAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"activate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changeAdminAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changeFounderAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_tokenPerEther","type":"uint256"}],"name":"setICOPrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"salesAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whiteList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentState","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changeTeamAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ico1stPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLoadedRefund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"founderAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endICO","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_amount","type":"uint256"}],"name":"allocateReservedTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startPrivateSales","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocateTokensForTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoStandardPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minInvestedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"allocateRemainingTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"walletAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_noneKycAddr","type":"address"},{"name":"_transactionFee","type":"uint256"}],"name":"revokeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"totalInvestedAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenPerEther","type":"uint256"}],"name":"setPrivateSalePrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenPerEther","type":"uint256"}],"name":"setPreSalePrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_investorAddrs","type":"address[]"},{"name":"_isPrivateListed","type":"bool"}],"name":"modifyPrivateList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isSoftCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"founderAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startPreSales","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"privateList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalReservedAndBonusTokenAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changeWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changePortalAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"portalAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerAddr","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalRemainingTokensForSales","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico2ndPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investorAddrs","type":"address[]"},{"name":"_isWhiteListed","type":"bool"}],"name":"modifyWhiteList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isSelling","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalRefundedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateTokensForFounder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"founderAllocatedTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minInvestedCap","outputs":[{"name":"","type":"uint256"}],"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":false,"inputs":[],"name":"endPreSales","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"preSalePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamAllocatedTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"privateSalePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"inActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deActivate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_walletAddr","type":"address"},{"name":"_adminAddr","type":"address"},{"name":"_portalAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"isWhiteListed","type":"bool"}],"name":"ModifyWhiteList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"isPrivateListed","type":"bool"}],"name":"ModifyPrivateList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"StartPrivateSales","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"StartPresales","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"EndPresales","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"StartICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"EndICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"price","type":"uint256"}],"name":"SetPrivateSalePrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"price","type":"uint256"}],"name":"SetPreSalePrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"price","type":"uint256"}],"name":"SetICOPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"state","type":"uint256"}],"name":"IssueTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"txFee","type":"uint256"}],"name":"RevokeTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"founderAddress","type":"address"},{"indexed":false,"name":"founderAllocatedTime","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"AllocateTokensForFounder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"teamAddress","type":"address"},{"indexed":false,"name":"teamAllocatedTime","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"AllocateTokensForTeam","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reservedAddress","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"AllocateReservedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"etherRefundedAmount","type":"uint256"},{"indexed":false,"name":"tokensRevokedAmount","type":"uint256"}],"name":"Refund","type":"event"}]

606060405260016010556001601155341561001957600080fd5b604051606080612a6a83398101604052808051919060200180519190602001805160008054600160a060020a03191633600160a060020a039081169190911790915590925084161515905061006d57600080fd5b600160a060020a038216151561008257600080fd5b600160a060020a038116151561009757600080fd5b60058054600160a060020a03948516600160a060020a031991821617909155600480549385169382169390931790925560038054919093169116179055600f805460ff191660011790556000600c556a9b18ab5df7180b6b8000006017556a69772cd97f1059af800000601855612957806101136000396000f30060606040526004361061032c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663011468448114610407578063016211b51461041157806306fdde031461043657806309522d7f146104c0578063095ea7b3146104d35780630f15f4c0146105095780631021688f1461051c57806318160ddd1461053b5780631c75f0851461054e5780632121dc751461057d5780632272df671461059057806323b872dd146105af57806325b5160c146105d7578063313ce567146105ed5780633281c4e114610600578063372c12b114610613578063378aa701146106325780633a764462146106455780633aee69bb146106585780633b2707101461067757806345abc0631461068a57806346bb28331461069d5780634f248409146106b05780635185b724146106c357806357257a67146106e5578063590e1ae3146106f8578063614939b21461070b5780636175adee1461071e57806363db30e814610731578063672e20fe146107445780636816521a146107635780636ad5b3ea1461077657806370a0823114610789578063721a37d2146107a85780637904586e146107ca5780637bc36e04146107e95780637d7eee42146107ff5780637dbc1d6f146108155780637e1055b6146108395780637fa8c1581461084c57806380d32f851461085f578063824338bd146104115780638da5cb5b146108725780638f0a4c1b1461088557806394667c171461089857806395d89b41146108b75780639743ad98146108ca57806398b9a2dc146108dd5780639b30c7db146108fc578063a172db061461091b578063a6f9dae11461092e578063a7c3d71b1461094d578063a9059cbb14610960578063aaff2a8314610982578063b8bcf6c914610995578063cadb1166146109a8578063cbf21837146109cc578063cd1e0355146109df578063d128fc20146109f2578063d8ee796f14610a05578063dccbfa2a14610a18578063dd62ed3e14610a2b578063e5de292514610a50578063e757c17d14610a63578063f461db0e14610a76578063f560d41514610a89578063f97a02fa14610a9c578063fc6f946814610aaf578063ff895a6214610ac2575b600f54600090819060ff161561034157600080fd5b600f5460ff61010090910416151560011461035b57600080fd5b610363610ad5565b9150600182101580156103765750600782105b151561038157600080fd5b67016345785d8a000034101561039657600080fd5b50600160a060020a03331660009081526008602052604090205460ff16801515600114156103cc576103c782610b20565b610403565b60028214156103de576103c782610b31565b816004111580156103f0575060068211155b156103fe576103c782610b3e565b600080fd5b5050005b61040f610b6b565b005b341561041c57600080fd5b610424610b90565b60405190815260200160405180910390f35b341561044157600080fd5b610449610b9f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561048557808201518382015260200161046d565b50505050905090810190601f1680156104b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104cb57600080fd5b610424610bd6565b34156104de57600080fd5b6104f5600160a060020a0360043516602435610be5565b604051901515815260200160405180910390f35b341561051457600080fd5b61040f610c8d565b341561052757600080fd5b61040f600160a060020a0360043516610cb4565b341561054657600080fd5b610424610d2e565b341561055957600080fd5b610561610d3e565b604051600160a060020a03909116815260200160405180910390f35b341561058857600080fd5b6104f5610d4d565b341561059b57600080fd5b61040f600160a060020a0360043516610d5c565b34156105ba57600080fd5b6104f5600160a060020a0360043581169060243516604435610df1565b34156105e257600080fd5b6104f5600435610f58565b34156105f857600080fd5b610424610ff3565b341561060b57600080fd5b610424610ff8565b341561061e57600080fd5b6104f5600160a060020a0360043516611007565b341561063d57600080fd5b610424610ad5565b341561065057600080fd5b61040f61101c565b341561066357600080fd5b61040f600160a060020a036004351661105a565b341561068257600080fd5b6104246110ef565b341561069557600080fd5b6104246110f5565b34156106a857600080fd5b6105616110fb565b34156106bb57600080fd5b6104f561110a565b34156106ce57600080fd5b61040f600160a060020a03600435166024356111c3565b34156106f057600080fd5b6104f56112da565b341561070357600080fd5b61040f61138f565b341561071657600080fd5b61040f6114fe565b341561072957600080fd5b6104246117fc565b341561073c57600080fd5b610424611802565b341561074f57600080fd5b61040f600160a060020a036004351661180e565b341561076e57600080fd5b6104246118ea565b341561078157600080fd5b6105616118f9565b341561079457600080fd5b610424600160a060020a0360043516611908565b34156107b357600080fd5b61040f600160a060020a0360043516602435611923565b34156107d557600080fd5b610424600160a060020a0360043516611b29565b34156107f457600080fd5b6104f5600435611b3b565b341561080a57600080fd5b6104f5600435611bbf565b341561082057600080fd5b6104f56024600480358281019291013590351515611c43565b341561084457600080fd5b610424611d69565b341561085757600080fd5b6104f5611d6f565b341561086a57600080fd5b6104f5611e2a565b341561087d57600080fd5b610561611e3d565b341561089057600080fd5b6104f5611e4c565b34156108a357600080fd5b6104f5600160a060020a0360043516611f04565b34156108c257600080fd5b610449611f19565b34156108d557600080fd5b610424611f50565b34156108e857600080fd5b61040f600160a060020a0360043516611f56565b341561090757600080fd5b61040f600160a060020a0360043516611fd0565b341561092657600080fd5b61056161204a565b341561093957600080fd5b61040f600160a060020a0360043516612059565b341561095857600080fd5b6104246120b8565b341561096b57600080fd5b6104f5600160a060020a03600435166024356120be565b341561098d57600080fd5b6104246121bc565b34156109a057600080fd5b6104246121c2565b34156109b357600080fd5b6104f560246004803582810192910135903515156121c8565b34156109d757600080fd5b6104f56122e3565b34156109ea57600080fd5b6104246122f1565b34156109fd57600080fd5b61040f6122f7565b3415610a1057600080fd5b6104246125f6565b3415610a2357600080fd5b6104246125fc565b3415610a3657600080fd5b610424600160a060020a0360043581169060243516612609565b3415610a5b57600080fd5b6104f5612634565b3415610a6e57600080fd5b6104246126d7565b3415610a8157600080fd5b6104246126dd565b3415610a9457600080fd5b6104246126e3565b3415610aa757600080fd5b6104f56126e9565b3415610aba57600080fd5b6105616126f2565b3415610acd57600080fd5b61040f612701565b60006004600b541415610b1857600d5462278d0001421115610af957506006610b1d565b600d546213c68001421115610b1057506005610b1d565b506004610b1d565b50600b545b90565b601254610b2d818361272b565b5050565b601354610b2d818361272b565b6014546004821415610b535750601554610b61565b6005821415610b6157506016545b610b2d818361272b565b60003411610b7857600080fd5b601954610b8b903463ffffffff6128bd16565b601955565b6a1f04ef12cb04cf1580000081565b60408051908101604052600681527f475245454e580000000000000000000000000000000000000000000000000000602082015281565b6a4a723dc6b40b8a9a00000081565b600f5460009062010000900460ff161515600114610c0257600080fd5b600160a060020a0383161515610c1757600080fd5b60008211610c2457600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005433600160a060020a03908116911614610ca857600080fd5b600f805460ff19169055565b60005433600160a060020a03908116911614610ccf57600080fd5b600160a060020a0381161515610ce457600080fd5b600454600160a060020a0382811691161415610cff57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6b01363156bbee3016d700000081565b600754600160a060020a031681565b600f5462010000900460ff1681565b60005433600160a060020a0390811691161480610d87575060045433600160a060020a039081169116145b1515610d9257600080fd5b600160a060020a0381161515610da757600080fd5b600654600160a060020a0382811691161415610dc257600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600f5460009062010000900460ff161515600114610e0e57600080fd5b600160a060020a0383161515610e2357600080fd5b600160a060020a0384161515610e3857600080fd5b60008211610e4557600080fd5b600160a060020a038416600090815260016020526040902054610e6e908363ffffffff6128d716565b600160a060020a038086166000908152600160205260408082209390935590851681522054610ea3908363ffffffff6128bd16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610eeb908363ffffffff6128d716565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b6000805433600160a060020a0390811691161480610f84575060045433600160a060020a039081169116145b1515610f8f57600080fd5b60008211610f9c57600080fd5b601482815560649083028190048301601555600a83020482016016557f1c1b18768492f25670993e4eaf1a7d17a8abe51d71b27bc5c1255e40d2d506a88260405190815260200160405180910390a1506001919050565b601281565b6a9b18ab5df7180b6b80000081565b60096020526000908152604090205460ff1681565b600f5460ff161561102c57600080fd5b60005433600160a060020a0390811691161461104757600080fd5b600f805462ff0000191662010000179055565b60005433600160a060020a0390811691161480611085575060045433600160a060020a039081169116145b151561109057600080fd5b600160a060020a03811615156110a557600080fd5b600754600160a060020a03828116911614156110c057600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60155481565b60195481565b600654600160a060020a031681565b600f5460009060ff161561111d57600080fd5b60005433600160a060020a0390811691161480611148575060045433600160a060020a039081169116145b151561115357600080fd5b600661115d610ad5565b1461116757600080fd5b600e541561117457600080fd5b6007600b819055600f805461ff001916905542600e557fe4aa5e3f9012723c200a69efdcca855ae09af7d70992cc420cce249fee0e09999060405190815260200160405180910390a150600190565b600f5460ff16156111d357600080fd5b60005433600160a060020a03908116911614806111fe575060045433600160a060020a039081169116145b151561120957600080fd5b600b5460071461121857600080fd5b6000811161122557600080fd5b600160a060020a038216151561123a57600080fd5b600160a060020a038216600090815260016020526040902054611263908263ffffffff6128bd16565b600160a060020a03831660009081526001602052604090205560185461128f908263ffffffff6128d716565b6018557f47a75aa311e7576c9a07da850c14f42ffe2864978d7f025084839a75bdcbdac68282604051600160a060020a03909216825260208201526040908101905180910390a15050565b600f5460009060ff16156112ed57600080fd5b60005433600160a060020a0390811691161480611318575060045433600160a060020a039081169116145b151561132357600080fd5b600b541561133057600080fd5b6012546000901161134057600080fd5b6001600b819055600f805461ff0019166101001790557f5ebe2a136ed26a0536b4b57e5f58a9572b864fc0e2c28189338f855e82f4a8809060405190815260200160405180910390a150600190565b600160a060020a0333166000908152600a6020526040812054601a5460195491929182916113c3919063ffffffff6128d716565b600160a060020a033316600090815260016020526040902054600b5491935091506007146113f057600080fd5b6113f8611e2a565b1561140257600080fd5b8282101580156114125750600083115b151561141d57600080fd5b600160a060020a0333166000908152600a602090815260408083208390556001909152812055601754611456908263ffffffff6128bd16565b601755601a5461146c908463ffffffff6128bd16565b601a55600160a060020a03331683156108fc0284604051600060405180830381858888f1935050505015156114a057600080fd5b7f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb63384836040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1505050565b600f5460009060ff161561151157600080fd5b60005433600160a060020a039081169116148061153c575060045433600160a060020a039081169116145b151561154757600080fd5b600b5460071461155657600080fd5b600754600160a060020a0316151561156d57600080fd5b6011546001141561163a5750600754600160a060020a03166000908152600160205260409020546a03b8e97d229a2d54800000906115ab90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160026011556117f9565b6011546002141561171b57600e5462ed4e000142101561165957600080fd5b50600754600160a060020a03166000908152600160205260409020546a05955e3bb3e743fec000009061168c90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160036011556117f9565b601154600314156103fe57600e546301e133800142101561173b57600080fd5b50600754600160a060020a03166000908152600160205260409020546a094e47b8d68171534000009061176e90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160046011555b50565b60145481565b67016345785d8a000081565b600f5460ff161561181e57600080fd5b60005433600160a060020a0390811691161480611849575060045433600160a060020a039081169116145b151561185457600080fd5b600160a060020a038116151561186957600080fd5b600b5460071461187857600080fd5b6017546000901161188857600080fd5b600e546303c267000142101561189d57600080fd5b601754600160a060020a0382166000908152600160205260409020546118c89163ffffffff6128bd16565b600160a060020a03909116600090815260016020526040812091909155601755565b6a129c8f71ad02e2a680000081565b600554600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6000805481908190819033600160a060020a0390811691161480611955575060045433600160a060020a039081169116145b151561196057600080fd5b600160a060020a038616151561197557600080fd5b600160a060020a0386166000908152600a6020526040902054601a546019549195506119a7919063ffffffff6128d716565b600160a060020a03871660009081526009602052604090205490935060ff161580156119ec5750600160a060020a03861660009081526008602052604090205460ff16155b15156119f757600080fd5b60008411611a0457600080fd5b83831015611a1157600080fd5b600b54600714611a2057600080fd5b611a30848663ffffffff6128d716565b600160a060020a03871660009081526001602081815260408084208054600a8452918520859055929091529190556017549193509150611a76908263ffffffff6128bd16565b601755601a54611a8c908363ffffffff6128bd16565b601a55600160a060020a03861682156108fc0283604051600060405180830381858888f193505050501515611ac057600080fd5b7f93a5f013fdf43488abc44180f39d6f98e31c536f8031892b504b4d026f183005868383886040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050565b600a6020526000908152604090205481565b6000805433600160a060020a0390811691161480611b67575060045433600160a060020a039081169116145b1515611b7257600080fd5b60008211611b7f57600080fd5b60128290557f447105d8c5aaefb2a2528c3796a44fbfc119b233a07c42b562bf2178c64ee3b38260405190815260200160405180910390a1506001919050565b6000805433600160a060020a0390811691161480611beb575060045433600160a060020a039081169116145b1515611bf657600080fd5b60008211611c0357600080fd5b60138290557ffae1c2f6e0b1d0c4880258de0c98c029a11b02f47a050cdc8f0b73c84997fac68260405190815260200160405180910390a1506001919050565b600f54600090819060ff1615611c5857600080fd5b60005433600160a060020a0390811691161480611c83575060045433600160a060020a039081169116145b80611c9c575060035433600160a060020a039081169116145b1515611ca757600080fd5b5060005b83811015611d5e578260086000878785818110611cc457fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790557f99f0622dbc6cbfb57e866310f623d630f56d8a15df9efc92d652597a67998936858583818110611d2257fe5b90506020020135600160a060020a031684604051600160a060020a039092168252151560208201526040908101905180910390a1600101611cab565b506001949350505050565b600e5481565b600f5460009060ff1615611d8257600080fd5b60005433600160a060020a0390811691161480611dad575060045433600160a060020a039081169116145b1515611db857600080fd5b600b54600314611dc757600080fd5b60145460009011611dd757600080fd5b6004600b81905542600d55600f805461ff0019166101001790557f87fcd7085eaabc2418e6a12ac5497cf18368bf4ad51215e24fd4782fa0c0ba579060405190815260200160405180910390a150600190565b600c5468878678326eac90000090101590565b600054600160a060020a031681565b600f5460009060ff1615611e5f57600080fd5b60005433600160a060020a0390811691161480611e8a575060045433600160a060020a039081169116145b1515611e9557600080fd5b600b5460029010611ea557600080fd5b60135460009011611eb557600080fd5b6002600b819055600f805461ff0019166101001790557f99846a702db09e5ce6d90e693e7704540309346ca5b7656fdd438014448394369060405190815260200160405180910390a150600190565b60086020526000908152604090205460ff1681565b60408051908101604052600381527f4745580000000000000000000000000000000000000000000000000000000000602082015281565b60185481565b60005433600160a060020a03908116911614611f7157600080fd5b600160a060020a0381161515611f8657600080fd5b600554600160a060020a0382811691161415611fa157600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614611feb57600080fd5b600160a060020a038116151561200057600080fd5b600354600160a060020a038281169116141561201b57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60005433600160a060020a0390811691161461207457600080fd5b600160a060020a038116151561208957600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600d5481565b600f5460009062010000900460ff1615156001146120db57600080fd5b600160a060020a03831615156120f057600080fd5b600082116120fd57600080fd5b600160a060020a033316600090815260016020526040902054612126908363ffffffff6128d716565b600160a060020a03338116600090815260016020526040808220939093559085168152205461215b908363ffffffff6128bd16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60175481565b60165481565b600f54600090819060ff16156121dd57600080fd5b60005433600160a060020a0390811691161480612208575060045433600160a060020a039081169116145b80612221575060035433600160a060020a039081169116145b151561222c57600080fd5b5060005b83811015611d5e57826009600087878581811061224957fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790557ffbd9b2cc58ba714cd80b8b0a1c8a6d313a1e20563cf72561feeee6d0d96769bd8585838181106122a757fe5b90506020020135600160a060020a031684604051600160a060020a039092168252151560208201526040908101905180910390a1600101612230565b600f54610100900460ff1681565b601a5481565b600f5460009060ff161561230a57600080fd5b60005433600160a060020a0390811691161480612335575060045433600160a060020a039081169116145b151561234057600080fd5b600b5460071461234f57600080fd5b600654600160a060020a0316151561236657600080fd5b601054600114156124335750600654600160a060020a03166000908152600160205260409020546a06342fd08f00f637800000906123a490826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160026010556117f9565b6010546002141561251457600e5462ed4e000142101561245257600080fd5b50600654600160a060020a03166000908152600160205260409020546a094e47b8d68171534000009061248590826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160036010556117f9565b601054600314156103fe57600e546301e133800142101561253457600080fd5b50600654600160a060020a03166000908152600160205260409020546a0f8277896582678ac000009061256790826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160046010556117f9565b60105481565b68878678326eac90000081565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600f5460009060ff161561264757600080fd5b60005433600160a060020a0390811691161480612672575060045433600160a060020a039081169116145b151561267d57600080fd5b600b5460021461268c57600080fd5b6003600b819055600f805461ff00191690557fce3379d8b8f0dac11fa9828e90d4a59c304a02c0e58ea05a97cf282eeccbe2209060405190815260200160405180910390a150600190565b60135481565b60115481565b60125481565b600f5460ff1681565b600454600160a060020a031681565b60005433600160a060020a0390811691161461271c57600080fd5b600f805460ff19166001179055565b600554600090600160a060020a0316151561274557600080fd5b61277d670de0b6b3a764000061277181612765348863ffffffff6128e916565b9063ffffffff6128e916565b9063ffffffff61291416565b600160a060020a0333166000908152600160205260409020549091506127a9908263ffffffff6128bd16565b600160a060020a033316600090815260016020908152604080832093909355600a905220546127de903463ffffffff6128bd16565b600160a060020a0333166000908152600a602052604090205560175461280a908263ffffffff6128d716565b601755600c54612820903463ffffffff6128bd16565b600c55600554600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561285757600080fd5b7f540c6de47939116ec4410c0212b0ac3a69886bf8f558dc04fb1360f6ebfea89b333483856040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050565b6000828201838110156128cc57fe5b8091505b5092915050565b6000828211156128e357fe5b50900390565b6000808315156128fc57600091506128d0565b5082820282848281151561290c57fe5b04146128cc57fe5b600080828481151561292257fe5b049493505050505600a165627a7a723058204acb42effb29e7894f54c6d80811a7abc7a295703993ad33143d29374f1c82cb002900000000000000000000000021253348a3bd6e3d5e979a1c508cdf8f57f92472000000000000000000000000542853a035133ebd1ab93b657252a3749d8c639a0000000000000000000000006de037bf6d5b933285711232330b933deafb16f5

Deployed Bytecode

0x60606040526004361061032c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663011468448114610407578063016211b51461041157806306fdde031461043657806309522d7f146104c0578063095ea7b3146104d35780630f15f4c0146105095780631021688f1461051c57806318160ddd1461053b5780631c75f0851461054e5780632121dc751461057d5780632272df671461059057806323b872dd146105af57806325b5160c146105d7578063313ce567146105ed5780633281c4e114610600578063372c12b114610613578063378aa701146106325780633a764462146106455780633aee69bb146106585780633b2707101461067757806345abc0631461068a57806346bb28331461069d5780634f248409146106b05780635185b724146106c357806357257a67146106e5578063590e1ae3146106f8578063614939b21461070b5780636175adee1461071e57806363db30e814610731578063672e20fe146107445780636816521a146107635780636ad5b3ea1461077657806370a0823114610789578063721a37d2146107a85780637904586e146107ca5780637bc36e04146107e95780637d7eee42146107ff5780637dbc1d6f146108155780637e1055b6146108395780637fa8c1581461084c57806380d32f851461085f578063824338bd146104115780638da5cb5b146108725780638f0a4c1b1461088557806394667c171461089857806395d89b41146108b75780639743ad98146108ca57806398b9a2dc146108dd5780639b30c7db146108fc578063a172db061461091b578063a6f9dae11461092e578063a7c3d71b1461094d578063a9059cbb14610960578063aaff2a8314610982578063b8bcf6c914610995578063cadb1166146109a8578063cbf21837146109cc578063cd1e0355146109df578063d128fc20146109f2578063d8ee796f14610a05578063dccbfa2a14610a18578063dd62ed3e14610a2b578063e5de292514610a50578063e757c17d14610a63578063f461db0e14610a76578063f560d41514610a89578063f97a02fa14610a9c578063fc6f946814610aaf578063ff895a6214610ac2575b600f54600090819060ff161561034157600080fd5b600f5460ff61010090910416151560011461035b57600080fd5b610363610ad5565b9150600182101580156103765750600782105b151561038157600080fd5b67016345785d8a000034101561039657600080fd5b50600160a060020a03331660009081526008602052604090205460ff16801515600114156103cc576103c782610b20565b610403565b60028214156103de576103c782610b31565b816004111580156103f0575060068211155b156103fe576103c782610b3e565b600080fd5b5050005b61040f610b6b565b005b341561041c57600080fd5b610424610b90565b60405190815260200160405180910390f35b341561044157600080fd5b610449610b9f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561048557808201518382015260200161046d565b50505050905090810190601f1680156104b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104cb57600080fd5b610424610bd6565b34156104de57600080fd5b6104f5600160a060020a0360043516602435610be5565b604051901515815260200160405180910390f35b341561051457600080fd5b61040f610c8d565b341561052757600080fd5b61040f600160a060020a0360043516610cb4565b341561054657600080fd5b610424610d2e565b341561055957600080fd5b610561610d3e565b604051600160a060020a03909116815260200160405180910390f35b341561058857600080fd5b6104f5610d4d565b341561059b57600080fd5b61040f600160a060020a0360043516610d5c565b34156105ba57600080fd5b6104f5600160a060020a0360043581169060243516604435610df1565b34156105e257600080fd5b6104f5600435610f58565b34156105f857600080fd5b610424610ff3565b341561060b57600080fd5b610424610ff8565b341561061e57600080fd5b6104f5600160a060020a0360043516611007565b341561063d57600080fd5b610424610ad5565b341561065057600080fd5b61040f61101c565b341561066357600080fd5b61040f600160a060020a036004351661105a565b341561068257600080fd5b6104246110ef565b341561069557600080fd5b6104246110f5565b34156106a857600080fd5b6105616110fb565b34156106bb57600080fd5b6104f561110a565b34156106ce57600080fd5b61040f600160a060020a03600435166024356111c3565b34156106f057600080fd5b6104f56112da565b341561070357600080fd5b61040f61138f565b341561071657600080fd5b61040f6114fe565b341561072957600080fd5b6104246117fc565b341561073c57600080fd5b610424611802565b341561074f57600080fd5b61040f600160a060020a036004351661180e565b341561076e57600080fd5b6104246118ea565b341561078157600080fd5b6105616118f9565b341561079457600080fd5b610424600160a060020a0360043516611908565b34156107b357600080fd5b61040f600160a060020a0360043516602435611923565b34156107d557600080fd5b610424600160a060020a0360043516611b29565b34156107f457600080fd5b6104f5600435611b3b565b341561080a57600080fd5b6104f5600435611bbf565b341561082057600080fd5b6104f56024600480358281019291013590351515611c43565b341561084457600080fd5b610424611d69565b341561085757600080fd5b6104f5611d6f565b341561086a57600080fd5b6104f5611e2a565b341561087d57600080fd5b610561611e3d565b341561089057600080fd5b6104f5611e4c565b34156108a357600080fd5b6104f5600160a060020a0360043516611f04565b34156108c257600080fd5b610449611f19565b34156108d557600080fd5b610424611f50565b34156108e857600080fd5b61040f600160a060020a0360043516611f56565b341561090757600080fd5b61040f600160a060020a0360043516611fd0565b341561092657600080fd5b61056161204a565b341561093957600080fd5b61040f600160a060020a0360043516612059565b341561095857600080fd5b6104246120b8565b341561096b57600080fd5b6104f5600160a060020a03600435166024356120be565b341561098d57600080fd5b6104246121bc565b34156109a057600080fd5b6104246121c2565b34156109b357600080fd5b6104f560246004803582810192910135903515156121c8565b34156109d757600080fd5b6104f56122e3565b34156109ea57600080fd5b6104246122f1565b34156109fd57600080fd5b61040f6122f7565b3415610a1057600080fd5b6104246125f6565b3415610a2357600080fd5b6104246125fc565b3415610a3657600080fd5b610424600160a060020a0360043581169060243516612609565b3415610a5b57600080fd5b6104f5612634565b3415610a6e57600080fd5b6104246126d7565b3415610a8157600080fd5b6104246126dd565b3415610a9457600080fd5b6104246126e3565b3415610aa757600080fd5b6104f56126e9565b3415610aba57600080fd5b6105616126f2565b3415610acd57600080fd5b61040f612701565b60006004600b541415610b1857600d5462278d0001421115610af957506006610b1d565b600d546213c68001421115610b1057506005610b1d565b506004610b1d565b50600b545b90565b601254610b2d818361272b565b5050565b601354610b2d818361272b565b6014546004821415610b535750601554610b61565b6005821415610b6157506016545b610b2d818361272b565b60003411610b7857600080fd5b601954610b8b903463ffffffff6128bd16565b601955565b6a1f04ef12cb04cf1580000081565b60408051908101604052600681527f475245454e580000000000000000000000000000000000000000000000000000602082015281565b6a4a723dc6b40b8a9a00000081565b600f5460009062010000900460ff161515600114610c0257600080fd5b600160a060020a0383161515610c1757600080fd5b60008211610c2457600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005433600160a060020a03908116911614610ca857600080fd5b600f805460ff19169055565b60005433600160a060020a03908116911614610ccf57600080fd5b600160a060020a0381161515610ce457600080fd5b600454600160a060020a0382811691161415610cff57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6b01363156bbee3016d700000081565b600754600160a060020a031681565b600f5462010000900460ff1681565b60005433600160a060020a0390811691161480610d87575060045433600160a060020a039081169116145b1515610d9257600080fd5b600160a060020a0381161515610da757600080fd5b600654600160a060020a0382811691161415610dc257600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600f5460009062010000900460ff161515600114610e0e57600080fd5b600160a060020a0383161515610e2357600080fd5b600160a060020a0384161515610e3857600080fd5b60008211610e4557600080fd5b600160a060020a038416600090815260016020526040902054610e6e908363ffffffff6128d716565b600160a060020a038086166000908152600160205260408082209390935590851681522054610ea3908363ffffffff6128bd16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610eeb908363ffffffff6128d716565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b6000805433600160a060020a0390811691161480610f84575060045433600160a060020a039081169116145b1515610f8f57600080fd5b60008211610f9c57600080fd5b601482815560649083028190048301601555600a83020482016016557f1c1b18768492f25670993e4eaf1a7d17a8abe51d71b27bc5c1255e40d2d506a88260405190815260200160405180910390a1506001919050565b601281565b6a9b18ab5df7180b6b80000081565b60096020526000908152604090205460ff1681565b600f5460ff161561102c57600080fd5b60005433600160a060020a0390811691161461104757600080fd5b600f805462ff0000191662010000179055565b60005433600160a060020a0390811691161480611085575060045433600160a060020a039081169116145b151561109057600080fd5b600160a060020a03811615156110a557600080fd5b600754600160a060020a03828116911614156110c057600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60155481565b60195481565b600654600160a060020a031681565b600f5460009060ff161561111d57600080fd5b60005433600160a060020a0390811691161480611148575060045433600160a060020a039081169116145b151561115357600080fd5b600661115d610ad5565b1461116757600080fd5b600e541561117457600080fd5b6007600b819055600f805461ff001916905542600e557fe4aa5e3f9012723c200a69efdcca855ae09af7d70992cc420cce249fee0e09999060405190815260200160405180910390a150600190565b600f5460ff16156111d357600080fd5b60005433600160a060020a03908116911614806111fe575060045433600160a060020a039081169116145b151561120957600080fd5b600b5460071461121857600080fd5b6000811161122557600080fd5b600160a060020a038216151561123a57600080fd5b600160a060020a038216600090815260016020526040902054611263908263ffffffff6128bd16565b600160a060020a03831660009081526001602052604090205560185461128f908263ffffffff6128d716565b6018557f47a75aa311e7576c9a07da850c14f42ffe2864978d7f025084839a75bdcbdac68282604051600160a060020a03909216825260208201526040908101905180910390a15050565b600f5460009060ff16156112ed57600080fd5b60005433600160a060020a0390811691161480611318575060045433600160a060020a039081169116145b151561132357600080fd5b600b541561133057600080fd5b6012546000901161134057600080fd5b6001600b819055600f805461ff0019166101001790557f5ebe2a136ed26a0536b4b57e5f58a9572b864fc0e2c28189338f855e82f4a8809060405190815260200160405180910390a150600190565b600160a060020a0333166000908152600a6020526040812054601a5460195491929182916113c3919063ffffffff6128d716565b600160a060020a033316600090815260016020526040902054600b5491935091506007146113f057600080fd5b6113f8611e2a565b1561140257600080fd5b8282101580156114125750600083115b151561141d57600080fd5b600160a060020a0333166000908152600a602090815260408083208390556001909152812055601754611456908263ffffffff6128bd16565b601755601a5461146c908463ffffffff6128bd16565b601a55600160a060020a03331683156108fc0284604051600060405180830381858888f1935050505015156114a057600080fd5b7f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb63384836040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1505050565b600f5460009060ff161561151157600080fd5b60005433600160a060020a039081169116148061153c575060045433600160a060020a039081169116145b151561154757600080fd5b600b5460071461155657600080fd5b600754600160a060020a0316151561156d57600080fd5b6011546001141561163a5750600754600160a060020a03166000908152600160205260409020546a03b8e97d229a2d54800000906115ab90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160026011556117f9565b6011546002141561171b57600e5462ed4e000142101561165957600080fd5b50600754600160a060020a03166000908152600160205260409020546a05955e3bb3e743fec000009061168c90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160036011556117f9565b601154600314156103fe57600e546301e133800142101561173b57600080fd5b50600754600160a060020a03166000908152600160205260409020546a094e47b8d68171534000009061176e90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160046011555b50565b60145481565b67016345785d8a000081565b600f5460ff161561181e57600080fd5b60005433600160a060020a0390811691161480611849575060045433600160a060020a039081169116145b151561185457600080fd5b600160a060020a038116151561186957600080fd5b600b5460071461187857600080fd5b6017546000901161188857600080fd5b600e546303c267000142101561189d57600080fd5b601754600160a060020a0382166000908152600160205260409020546118c89163ffffffff6128bd16565b600160a060020a03909116600090815260016020526040812091909155601755565b6a129c8f71ad02e2a680000081565b600554600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6000805481908190819033600160a060020a0390811691161480611955575060045433600160a060020a039081169116145b151561196057600080fd5b600160a060020a038616151561197557600080fd5b600160a060020a0386166000908152600a6020526040902054601a546019549195506119a7919063ffffffff6128d716565b600160a060020a03871660009081526009602052604090205490935060ff161580156119ec5750600160a060020a03861660009081526008602052604090205460ff16155b15156119f757600080fd5b60008411611a0457600080fd5b83831015611a1157600080fd5b600b54600714611a2057600080fd5b611a30848663ffffffff6128d716565b600160a060020a03871660009081526001602081815260408084208054600a8452918520859055929091529190556017549193509150611a76908263ffffffff6128bd16565b601755601a54611a8c908363ffffffff6128bd16565b601a55600160a060020a03861682156108fc0283604051600060405180830381858888f193505050501515611ac057600080fd5b7f93a5f013fdf43488abc44180f39d6f98e31c536f8031892b504b4d026f183005868383886040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050565b600a6020526000908152604090205481565b6000805433600160a060020a0390811691161480611b67575060045433600160a060020a039081169116145b1515611b7257600080fd5b60008211611b7f57600080fd5b60128290557f447105d8c5aaefb2a2528c3796a44fbfc119b233a07c42b562bf2178c64ee3b38260405190815260200160405180910390a1506001919050565b6000805433600160a060020a0390811691161480611beb575060045433600160a060020a039081169116145b1515611bf657600080fd5b60008211611c0357600080fd5b60138290557ffae1c2f6e0b1d0c4880258de0c98c029a11b02f47a050cdc8f0b73c84997fac68260405190815260200160405180910390a1506001919050565b600f54600090819060ff1615611c5857600080fd5b60005433600160a060020a0390811691161480611c83575060045433600160a060020a039081169116145b80611c9c575060035433600160a060020a039081169116145b1515611ca757600080fd5b5060005b83811015611d5e578260086000878785818110611cc457fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790557f99f0622dbc6cbfb57e866310f623d630f56d8a15df9efc92d652597a67998936858583818110611d2257fe5b90506020020135600160a060020a031684604051600160a060020a039092168252151560208201526040908101905180910390a1600101611cab565b506001949350505050565b600e5481565b600f5460009060ff1615611d8257600080fd5b60005433600160a060020a0390811691161480611dad575060045433600160a060020a039081169116145b1515611db857600080fd5b600b54600314611dc757600080fd5b60145460009011611dd757600080fd5b6004600b81905542600d55600f805461ff0019166101001790557f87fcd7085eaabc2418e6a12ac5497cf18368bf4ad51215e24fd4782fa0c0ba579060405190815260200160405180910390a150600190565b600c5468878678326eac90000090101590565b600054600160a060020a031681565b600f5460009060ff1615611e5f57600080fd5b60005433600160a060020a0390811691161480611e8a575060045433600160a060020a039081169116145b1515611e9557600080fd5b600b5460029010611ea557600080fd5b60135460009011611eb557600080fd5b6002600b819055600f805461ff0019166101001790557f99846a702db09e5ce6d90e693e7704540309346ca5b7656fdd438014448394369060405190815260200160405180910390a150600190565b60086020526000908152604090205460ff1681565b60408051908101604052600381527f4745580000000000000000000000000000000000000000000000000000000000602082015281565b60185481565b60005433600160a060020a03908116911614611f7157600080fd5b600160a060020a0381161515611f8657600080fd5b600554600160a060020a0382811691161415611fa157600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614611feb57600080fd5b600160a060020a038116151561200057600080fd5b600354600160a060020a038281169116141561201b57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60005433600160a060020a0390811691161461207457600080fd5b600160a060020a038116151561208957600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600d5481565b600f5460009062010000900460ff1615156001146120db57600080fd5b600160a060020a03831615156120f057600080fd5b600082116120fd57600080fd5b600160a060020a033316600090815260016020526040902054612126908363ffffffff6128d716565b600160a060020a03338116600090815260016020526040808220939093559085168152205461215b908363ffffffff6128bd16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60175481565b60165481565b600f54600090819060ff16156121dd57600080fd5b60005433600160a060020a0390811691161480612208575060045433600160a060020a039081169116145b80612221575060035433600160a060020a039081169116145b151561222c57600080fd5b5060005b83811015611d5e57826009600087878581811061224957fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790557ffbd9b2cc58ba714cd80b8b0a1c8a6d313a1e20563cf72561feeee6d0d96769bd8585838181106122a757fe5b90506020020135600160a060020a031684604051600160a060020a039092168252151560208201526040908101905180910390a1600101612230565b600f54610100900460ff1681565b601a5481565b600f5460009060ff161561230a57600080fd5b60005433600160a060020a0390811691161480612335575060045433600160a060020a039081169116145b151561234057600080fd5b600b5460071461234f57600080fd5b600654600160a060020a0316151561236657600080fd5b601054600114156124335750600654600160a060020a03166000908152600160205260409020546a06342fd08f00f637800000906123a490826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160026010556117f9565b6010546002141561251457600e5462ed4e000142101561245257600080fd5b50600654600160a060020a03166000908152600160205260409020546a094e47b8d68171534000009061248590826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160036010556117f9565b601054600314156103fe57600e546301e133800142101561253457600080fd5b50600654600160a060020a03166000908152600160205260409020546a0f8277896582678ac000009061256790826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160046010556117f9565b60105481565b68878678326eac90000081565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600f5460009060ff161561264757600080fd5b60005433600160a060020a0390811691161480612672575060045433600160a060020a039081169116145b151561267d57600080fd5b600b5460021461268c57600080fd5b6003600b819055600f805461ff00191690557fce3379d8b8f0dac11fa9828e90d4a59c304a02c0e58ea05a97cf282eeccbe2209060405190815260200160405180910390a150600190565b60135481565b60115481565b60125481565b600f5460ff1681565b600454600160a060020a031681565b60005433600160a060020a0390811691161461271c57600080fd5b600f805460ff19166001179055565b600554600090600160a060020a0316151561274557600080fd5b61277d670de0b6b3a764000061277181612765348863ffffffff6128e916565b9063ffffffff6128e916565b9063ffffffff61291416565b600160a060020a0333166000908152600160205260409020549091506127a9908263ffffffff6128bd16565b600160a060020a033316600090815260016020908152604080832093909355600a905220546127de903463ffffffff6128bd16565b600160a060020a0333166000908152600a602052604090205560175461280a908263ffffffff6128d716565b601755600c54612820903463ffffffff6128bd16565b600c55600554600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561285757600080fd5b7f540c6de47939116ec4410c0212b0ac3a69886bf8f558dc04fb1360f6ebfea89b333483856040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050565b6000828201838110156128cc57fe5b8091505b5092915050565b6000828211156128e357fe5b50900390565b6000808315156128fc57600091506128d0565b5082820282848281151561290c57fe5b04146128cc57fe5b600080828481151561292257fe5b049493505050505600a165627a7a723058204acb42effb29e7894f54c6d80811a7abc7a295703993ad33143d29374f1c82cb0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000021253348a3bd6e3d5e979a1c508cdf8f57f92472000000000000000000000000542853a035133ebd1ab93b657252a3749d8c639a0000000000000000000000006de037bf6d5b933285711232330b933deafb16f5

-----Decoded View---------------
Arg [0] : _walletAddr (address): 0x21253348a3Bd6E3D5E979A1c508Cdf8F57f92472
Arg [1] : _adminAddr (address): 0x542853A035133EBd1ab93B657252A3749d8c639A
Arg [2] : _portalAddr (address): 0x6De037bf6D5B933285711232330B933deafB16F5

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000021253348a3bd6e3d5e979a1c508cdf8f57f92472
Arg [1] : 000000000000000000000000542853a035133ebd1ab93b657252a3749d8c639a
Arg [2] : 0000000000000000000000006de037bf6d5b933285711232330b933deafb16f5


Swarm Source

bzzr://4acb42effb29e7894f54c6d80811a7abc7a295703993ad33143d29374f1c82cb

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