ETH Price: $2,001.94 (+7.24%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Start2Bonus Peri...100321512020-05-09 12:47:172121 days ago1589028437IN
SMSCoin
0 ETH0.0002213810
Transfer57138632018-06-01 12:30:122829 days ago1527856212IN
SMSCoin
0 ETH0.0017609921
Transfer47994732017-12-26 8:28:292986 days ago1514276909IN
SMSCoin
0 ETH0.0017609921
Transfer46376302017-11-28 12:00:403014 days ago1511870440IN
SMSCoin
0 ETH0.0016771420
Drain ETH45267362017-11-10 15:05:243032 days ago1510326324IN
SMSCoin
0 ETH0.0005428117.85
Pause Phase45267232017-11-10 15:02:093032 days ago1510326129IN
SMSCoin
0 ETH0.0007566917.85
Transfer45199722017-11-09 12:56:533033 days ago1510232213IN
SMSCoin
29.6 ETH0.0028485621
Drain ETH45197882017-11-09 12:15:073033 days ago1510229707IN
SMSCoin
0 ETH0.000319310.5
Transfer45189342017-11-09 8:54:423033 days ago1510217682IN
SMSCoin
0.8 ETH0.0028475521
Transfer45140142017-11-08 13:41:253034 days ago1510148485IN
SMSCoin
0.135 ETH0.0028475521
0x66756e6345123712017-11-08 7:28:513035 days ago1510126131IN
SMSCoin
0 ETH0.00058821
Transfer From45123592017-11-08 7:26:103035 days ago1510125970IN
SMSCoin
0 ETH0.0005367321
Approve45123492017-11-08 7:24:193035 days ago1510125859IN
SMSCoin
0 ETH0.0009506921
Drain ETH45123422017-11-08 7:22:433035 days ago1510125763IN
SMSCoin
0 ETH0.0004668321
Transfer From45123352017-11-08 7:20:563035 days ago1510125656IN
SMSCoin
0 ETH0.0005367321
Transfer45112292017-11-08 3:06:323035 days ago1510110392IN
SMSCoin
8.8 ETH0.0028485621
Transfer45088102017-11-07 18:02:493035 days ago1510077769IN
SMSCoin
0.8 ETH0.0028475521
Transfer45075182017-11-07 12:58:013035 days ago1510059481IN
SMSCoin
8 ETH0.0001055
Transfer45075142017-11-07 12:57:043035 days ago1510059424IN
SMSCoin
8 ETH0.0001055
Drain ETH44951882017-11-05 13:09:103037 days ago1509887350IN
SMSCoin
0 ETH0.0006386121
Transfer44931032017-11-05 5:18:053038 days ago1509859085IN
SMSCoin
0.8 ETH0.0028475521
Transfer44920062017-11-05 1:06:553038 days ago1509844015IN
SMSCoin
16 ETH0.0015599421
Transfer44919592017-11-05 0:56:463038 days ago1509843406IN
SMSCoin
16 ETH0.0028485621
Transfer44896652017-11-04 16:06:383038 days ago1509811598IN
SMSCoin
9.7 ETH0.0028485621
Transfer44753352017-11-02 8:43:503040 days ago1509612230IN
SMSCoin
2.6 ETH0.0015589321
View all transactions

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer45267362017-11-10 15:05:243032 days ago1510326324
SMSCoin
29.6 ETH
Transfer45197882017-11-09 12:15:073033 days ago1510229707
SMSCoin
10.535 ETH
Transfer44951882017-11-05 13:09:103037 days ago1509887350
SMSCoin
63.35 ETH
Transfer44523012017-10-29 15:04:293044 days ago1509289469
SMSCoin
48.70498646 ETH
Transfer44470882017-10-28 18:42:223045 days ago1509216142
SMSCoin
153.72 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SMSCoin

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-10-27
*/

pragma solidity ^0.4.8;

contract ERC20 {
    // Standard interface
    function totalSupply() public constant returns(uint256 _totalSupply);
    function balanceOf(address who) public constant returns(uint256 balance);
    function transfer(address to, uint value) public returns(bool success);
    function transferFrom(address from, address to, uint value) public returns(bool success);
    function approve(address spender, uint value) public returns(bool success);
    function allowance(address owner, address spender) public constant returns(uint remaining);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

contract SMSCoin is ERC20 {
    string public constant name = "Speed Mining Service";
    string public constant symbol = "SMS";
    uint256 public constant decimals = 3;

    uint256 public constant UNIT = 10 ** decimals;

    uint public totalSupply = 0; // (initial with 0), targeted 2.9 Million SMS

    uint tokenSaleLot1 = 150000 * UNIT;
    uint reservedBonusLot1 = 45000 * UNIT; // 45,000 tokens are the maximum possible bonus from 30% of 150,000 tokens in the bonus phase
    uint tokenSaleLot2 = 50000 * UNIT;
    uint tokenSaleLot3 = 50000 * UNIT;

    struct BonusStruct {
        uint8 ratio1;
        uint8 ratio2;
        uint8 ratio3;
        uint8 ratio4;
    }
    BonusStruct bonusRatio;

    uint public saleCounter = 0;

    uint public limitedSale = 0;

    uint public sentBonus = 0;

    uint public soldToken = 0;

    mapping(address => uint) balances;

    mapping(address => mapping(address => uint)) allowed;

    address[] addresses;

    mapping(address => address) private userStructs;

    address owner;

    address mint = address(this);   // Contract address as a minter
    
    address genesis = 0x0;

    //uint256 public tokenPrice = 0.001 ether; // Test
    uint256 public tokenPrice = 0.8 ether;

    event Log(uint e);

    event TOKEN(string e);

    bool icoOnPaused = false;

    uint256 startDate;

    uint256 endDate;

    uint currentPhase = 0;

    bool needToBurn = false;

    modifier onlyOwner() {
        if (msg.sender != owner) {
            revert();
        }
        _;
    }

    function SMSCoin() public {
        owner = msg.sender;
    }

    /**
     * Divide with safety check
     */
    function safeDiv(uint a, uint b) pure internal returns(uint) {
        //overflow check; b must not be 0
        assert(b > 0);
        uint c = a / b;
        assert(a == b * c + a % b);
        return c;
    }

    /**
     * Multiplication with safety check
     */
    function safeMul(uint a, uint b) pure internal returns(uint) {
        uint c = a * b;
        //check result should not be other wise until a=0
        assert(a == 0 || c / a == b);
        return c;
    }

    /**
     * Add with safety check
     */
    function safeAdd(uint a, uint b) pure internal returns (uint) {
        assert (a + b >= a);
        return a + b;
    }

    function setBonus(uint8 ratio1, uint8 ratio2, uint8 ratio3, uint8 ratio4) private {
        bonusRatio.ratio1 = ratio1;
        bonusRatio.ratio2 = ratio2;
        bonusRatio.ratio3 = ratio3;
        bonusRatio.ratio4 = ratio4;
    }

    function calcBonus(uint256 sendingSMSToken) view private returns(uint256) {
        uint256 sendingSMSBonus;

        // Calculating bonus
        if (sendingSMSToken < (10 * UNIT)) {            // 0-9
            sendingSMSBonus = (sendingSMSToken * bonusRatio.ratio1) / 100;
        } else if (sendingSMSToken < (50 * UNIT)) {     // 10-49
            sendingSMSBonus = (sendingSMSToken * bonusRatio.ratio2) / 100;
        } else if (sendingSMSToken < (100 * UNIT)) {    // 50-99
            sendingSMSBonus = (sendingSMSToken * bonusRatio.ratio3) / 100;
        } else {                                        // 100+
            sendingSMSBonus = (sendingSMSToken * bonusRatio.ratio4) / 100;
        }

        return sendingSMSBonus;
    }

    // Selling SMS token
    function () public payable {
        uint256 receivedETH = 0;
        uint256 sendingSMSToken = 0;
        uint256 sendingSMSBonus = 0;
        Log(msg.value);

        // Only for selling to investors
        if (!icoOnPaused && msg.sender != owner) {
            if (now <= endDate) {
                // All the phases
                Log(currentPhase);

                // Calculating SMS
                receivedETH = (msg.value * UNIT);
                sendingSMSToken = safeDiv(receivedETH, tokenPrice);
                Log(sendingSMSToken);

                // Calculating Bonus
                if (currentPhase == 1 || currentPhase == 2 || currentPhase == 3) {
                    // Phase 1-3 with Bonus 1
                    sendingSMSBonus = calcBonus(sendingSMSToken);
                    Log(sendingSMSBonus);
                }

                // Giving SMS + Bonus (if any)
                Log(sendingSMSToken);
                if (!transferTokens(msg.sender, sendingSMSToken, sendingSMSBonus))
                    revert();
            } else {
                revert();
            }

        } else {
            revert();
        }
    }

    // ======== Bonus Period 1 ========
    // --- Bonus ---
    // 0-9 SMS -> 5%
    // 10-49 SMS -> 10%
    // 50-99 SMS -> 20%
    // 100~ SMS -> 30%
    // --- Time --- (2 days 9 hours 59 minutes 59 seconds )
    // From 27 Oct 2017, 14:00 PM JST (27 Oct 2017, 5:00 AM GMT)
    // To   29 Oct 2017, 23:59 PM JST (29 Oct 2017, 14:59 PM GMT)
    function start1BonusPeriod1() external onlyOwner {
        // Supply setting (only once)
        if (currentPhase == 0) {
            balances[owner] = tokenSaleLot1; // Start balance for SpeedMining Co., Ltd.
            balances[address(this)] = tokenSaleLot1;  // Start balance for SMSCoin (for investors)
            totalSupply = balances[owner] + balances[address(this)];
            saleCounter = 0;
            limitedSale = tokenSaleLot1;

            // Add owner address into the list as the first wallet who own token(s)
            addAddress(owner);

            // Send owner account the initial tokens (rather than only a contract address)
            Transfer(address(this), owner, balances[owner]);

            // Set burning is needed
            needToBurn = true;
        }

        // ICO stage init
        icoOnPaused = false;
        currentPhase = 1;
        startDate = block.timestamp;
        endDate = startDate + 2 days + 9 hours + 59 minutes + 59 seconds;

        // Bonus setting 
        setBonus(5, 10, 20, 30);
    }

    // ======== Bonus Period 2 ========
    // --- Bonus ---
    // 0-9 SMS -> 3%
    // 10-49 SMS -> 5%
    // 50-99 SMS -> 10%
    // 100~ SMS -> 15%
    // --- Time --- (11 days 9 hours 59 minutes 59 seconds)
    // From 30 Oct 2017, 14:00 PM JST (30 Oct 2017, 5:00 AM GMT)
    // To   10 Nov 2017, 23:59 PM JST (10 Nov 2017, 14:59 PM GMT)
    function start2BonusPeriod2() external onlyOwner {
        // ICO stage init
        icoOnPaused = false;
        currentPhase = 2;
        startDate = block.timestamp;
        endDate = startDate + 11 days + 9 hours + 59 minutes + 59 seconds;

        // Bonus setting 
        setBonus(3, 5, 10, 15);
    }

    // ======== Bonus Period 3 ========
    // --- Bonus ---
    // 0-9 SMS -> 1%
    // 10-49 SMS -> 3%
    // 50-99 SMS -> 5%
    // 100~ SMS -> 8%
    // --- Time --- (51 days)
    // From 11 Nov 2017, 00:00 AM JST (10 Nov 2017, 15:00 PM GMT)
    // To   31 Dec 2017, 23:59 PM JST (31 Dec 2017, 14:59 PM GMT)
    function start3BonusPeriod3() external onlyOwner {
        // ICO stage init
        icoOnPaused = false;
        currentPhase = 3;
        startDate = block.timestamp;
        endDate = startDate + 51 days;

        // Bonus setting 
        setBonus(1, 3, 5, 8);
    }

    // ======== Normal Period 1 (2018) ========
    // --- Time --- (31 days)
    // From 1 Jan 2018, 00:00 AM JST (31 Dec 2017, 15:00 PM GMT)
    // To   31 Jan 2018, 23:59 PM JST (31 Jan 2018, 14:59 PM GMT)
    function start4NormalPeriod() external onlyOwner {
        // ICO stage init
        icoOnPaused = false;
        currentPhase = 4;
        startDate = block.timestamp;
        endDate = startDate + 31 days;

        // Reset bonus
        setBonus(0, 0, 0, 0);
    }

    // ======== Normal Period 2 (2020) ========
    // --- Bonus ---
    // 3X
    // --- Time --- (7 days)
    // From 2 Jan 2020, 00:00 AM JST (1 Jan 2020, 15:00 PM GMT)
    // To   8 Jan 2020, 23:59 PM JST (8 Oct 2020, 14:59 PM GMT)
    function start5Phase2020() external onlyOwner {
        // Supply setting (only after phase 4)
        if (currentPhase == 4) {
            // Burn SMS if it was not done yet
            if (needToBurn)
                burnSMSProcess();
                
            balances[address(this)] = tokenSaleLot2;
            totalSupply = 3 * totalSupply;
            totalSupply += balances[address(this)];
            saleCounter = 0;
            limitedSale = tokenSaleLot2;

            // Bonus
            x3Token(); // 3X distributions to token holders

            // Mint new tokens for 2020
            Transfer(mint, address(this), balances[address(this)]);

            // Set burning is needed
            needToBurn = true;
        }

        // ICO stage init
        icoOnPaused = false;
        currentPhase = 5;
        startDate = block.timestamp;
        endDate = startDate + 7 days;
    }

    // ======== Normal Period 3 (2025) ========
    // --- Bonus ---
    // 3X
    // --- Time --- (7 days)
    // From 2 Jan 2025, 00:00 AM JST (1 Jan 2025, 15:00 PM GMT)
    // To   8 Jan 2025, 23:59 PM JST (8 Oct 2025, 14:59 PM GMT)
    function start6Phase2025() external onlyOwner {
        // Supply setting (only after phase 5)
        if (currentPhase == 5) {
            // Burn SMS if it was not done yet
            if (needToBurn)
                burnSMSProcess();

            balances[address(this)] = tokenSaleLot3;
            totalSupply = 3 * totalSupply;
            totalSupply += balances[address(this)];
            saleCounter = 0;
            limitedSale = tokenSaleLot3;
            
            // Bonus
            x3Token(); // 3X distributions to token holders

            // Mint new tokens for 2025
            Transfer(mint, address(this), balances[address(this)]);

            // Set burning is needed
            needToBurn = true;
        }
        
        // ICO stage init
        icoOnPaused = false;
        currentPhase = 6;
        startDate = block.timestamp;
        endDate = startDate + 7 days;
    }

    function x3Token() private {
        // Multiply token by 3 to all the current addresses
        for (uint i = 0; i < addresses.length; i++) {
            uint curr1XBalance = balances[addresses[i]];
            // In total 3X, then also calculate value to balances
            balances[addresses[i]] = 3 * curr1XBalance;
            // Transfer 2X from Mint to add with the existing 1X
            Transfer(mint, addresses[i], 2 * curr1XBalance);
            // To keep tracking bonus distribution
            sentBonus += (2 * curr1XBalance);
        }
    }

    // Called by the owner, to emergency pause the current phase
    function pausePhase() external onlyOwner {
        icoOnPaused = true;
    }

    // Called by the owner, to resumes the paused phase
    function resumePhase() external onlyOwner {
        icoOnPaused = false;
    }

    // Standard interface
    function totalSupply() public constant returns(uint256 _totalSupply) {
        return totalSupply;
    }

    function balanceOf(address sender) public constant returns(uint256 balance) {
        return balances[sender];
    }

    function soldToken() public constant returns(uint256 _soldToken) {
        return soldToken;
    }

    function sentBonus() public constant returns(uint256 _sentBonus) {
        return sentBonus;
    }

    function saleCounter() public constant returns(uint256 _saleCounter) {
        return saleCounter;
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns(bool success) {
        if (balances[_from] >= _amount && allowed[_from][msg.sender] >= _amount && _amount > 0 && balances[_to] + _amount > balances[_to]) {
                
            balances[_from] -= _amount;
            allowed[_from][msg.sender] -= _amount;
            balances[_to] += _amount;
            Transfer(_from, _to, _amount);
            return true;
        } else {
            return false;
        }
    }

    // Price should be entered in multiple of 10000's
    // E.g. for .0001 ether enter 1, for 5 ether price enter 50000 
    function setTokenPrice(uint ethRate) external onlyOwner {
        tokenPrice = (ethRate * 10 ** 18) / 10000; // (Convert to ether unit then make 4 decimals)
    }

    // Allow _spender to withdraw from your account, multiple times, up to the _value amount.
    // If this function is called again it overwrites the current allowance with _value.
    function approve(address _spender, uint256 _amount) public returns(bool success) {
        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }

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

    // Transfer the balance from caller's wallet address to investor's wallet address
    function transfer(address _to, uint256 _amount) public returns(bool success) {
        if (balances[msg.sender] >= _amount && _amount > 0 && balances[_to] + _amount > balances[_to]) {

            balances[msg.sender] -= _amount;
            balances[_to] += _amount;
            Transfer(msg.sender, _to, _amount);

            // Add destination wallet address to the list
            addAddress(_to);

            return true;
        } else {
            return false;
        }
    }

    // Transfer the balance from SMS's contract address to an investor's wallet account
    function transferTokens(address _to, uint256 _amount, uint256 _bonus) private returns(bool success) {
        if (_amount > 0 && balances[address(this)] >= _amount && balances[address(this)] - _amount >= 0 && soldToken + _amount > soldToken && saleCounter + _amount <= limitedSale && balances[_to] + _amount > balances[_to]) {
            
            // Transfer token from contract to target
            balances[address(this)] -= _amount;
            soldToken += _amount;
            saleCounter += _amount;
            balances[_to] += _amount;
            Transfer(address(this), _to, _amount);
            
            // Transfer bonus token from owner to target
            if (currentPhase <= 3 && _bonus > 0 && balances[owner] - _bonus >= 0 && sentBonus + _bonus > sentBonus && sentBonus + _bonus <= reservedBonusLot1 && balances[_to] + _bonus > balances[_to]) {

                // Transfer with bonus
                balances[owner] -= _bonus;
                sentBonus += _bonus;
                balances[_to] += _bonus;
                Transfer(owner, _to, _bonus);
            }

            // Add investor wallet address to the list
            addAddress(_to);

            return true;
        } else {
            return false;
        }
    }

    // Add wallet address with existing check
    function addAddress(address _to) private {
        if (addresses.length > 0) {
            if (userStructs[_to] != _to) {
                userStructs[_to] = _to;
                addresses.push(_to);
            }
        } else {
            userStructs[_to] = _to;
            addresses.push(_to);
        }
    }

    // Drain all the available ETH from the contract back to owner's wallet
    function drainETH() external onlyOwner {
        owner.transfer(this.balance);
    }

    // Burn all the available SMS from the contract and from owner to make it equal to investors
    // This will burn only the available token up to the current phase
    // A burning function 
    function burnSMSProcess() private {
        // Allow to burn left SMS only on phase 4, 5, 6
        if (currentPhase >= 4) {
            // Burn all available tokens
            // From SMS contract
            if (balances[address(this)] > 0) {
                uint toBeBurnedFromContract = balances[address(this)];
                Transfer(address(this), genesis, toBeBurnedFromContract);
                balances[address(this)] = 0;
                totalSupply -= toBeBurnedFromContract;

                // Burn from owner wallet only in phase 4
                if (currentPhase == 4) {
                    if (balances[owner] > soldToken) {
                        uint toBeBurnedFromOwner = balances[owner] - soldToken;
                        Transfer(owner, genesis, toBeBurnedFromOwner);
                        balances[owner] = balances[owner] - toBeBurnedFromOwner;
                        totalSupply -= toBeBurnedFromOwner;
                    }
                }

                // Clear burning status
                needToBurn = false;
            }
        }
    }

    // Function used in Reward contract to know address of token holder
    function getAddress(uint i) public constant returns(address) {
        return addresses[i];
    }

    // Function used in Reward contract to get to know the address array length
    function getAddressSize() public constant returns(uint) {
        return addresses.length;

    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"saleCounter","outputs":[{"name":"_saleCounter","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start2BonusPeriod2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start4NormalPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sentBonus","outputs":[{"name":"_sentBonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldToken","outputs":[{"name":"_soldToken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ethRate","type":"uint256"}],"name":"setTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"sender","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenPrice","outputs":[{"name":"","type":"uint256"}],"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":"UNIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumePhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"limitedSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start1BonusPeriod1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAddressSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pausePhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start3BonusPeriod3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"drainETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start5Phase2020","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start6Phase2025","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"e","type":"uint256"}],"name":"Log","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"e","type":"string"}],"name":"TOKEN","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"}]

606060405260008080556308f0d1806001556302aea5406002556302faf08060038190556004556006819055600781905560088190556009819055600f8054600160a060020a033016600160a060020a031991821617909155601080549091169055670b1a2bc2ec5000006011556012805460ff19908116909155601591909155601680549091169055341561009457600080fd5b600e8054600160a060020a03191633600160a060020a031617905561148e806100be6000396000f30060606040526004361061015e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630387b0a281146102a657806306fdde03146102cb5780630835b8b214610355578063095ea7b31461036a57806318160ddd146103a057806323b872dd146103b3578063313ce567146103db5780635143284d146103ee57806351973391146104015780636769d1f9146104145780636a61e5fc1461042757806370a082311461043d5780637ff9b5961461045c57806395d89b411461046f5780639d8e217714610482578063a62d780114610495578063a9059cbb146104a8578063b93f9b0a146104ca578063be471027146104fc578063c2cdaf241461050f578063c40d19a514610522578063c8f4170614610535578063d4a3456414610548578063dd62ed3e1461055b578063e264172c14610580578063e4698ee714610593578063ff56b59a146105a6575b600080806000805160206114238339815191523460405190815260200160405180910390a160125460ff161580156101a55750600e5433600160a060020a03908116911614155b1561029c57601454421161029c5760008051602061142383398151915260155460405190815260200160405180910390a16003600a0a340292506101eb836011546105b9565b91506000805160206114238339815191528260405190815260200160405180910390a16015546001148061022157506015546002145b8061022e57506015546003145b156102605761023c826105f4565b90506000805160206114238339815191528160405190815260200160405180910390a15b6000805160206114238339815191528260405190815260200160405180910390a161028c338383610671565b151561029757600080fd5b6102a1565b600080fd5b505050005b34156102b157600080fd5b6102b9610876565b60405190815260200160405180910390f35b34156102d657600080fd5b6102de61087d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561031a578082015183820152602001610302565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036057600080fd5b6103686108b4565b005b341561037557600080fd5b61038c600160a060020a03600435166024356108fe565b604051901515815260200160405180910390f35b34156103ab57600080fd5b6102b961096a565b34156103be57600080fd5b61038c600160a060020a0360043581169060243516604435610970565b34156103e657600080fd5b6102b9610a6e565b34156103f957600080fd5b610368610a73565b341561040c57600080fd5b6102b9610ab8565b341561041f57600080fd5b6102b9610abe565b341561043257600080fd5b610368600435610ac4565b341561044857600080fd5b6102b9600160a060020a0360043516610af4565b341561046757600080fd5b6102b9610b0f565b341561047a57600080fd5b6102de610b15565b341561048d57600080fd5b6102b9610b4c565b34156104a057600080fd5b610368610b52565b34156104b357600080fd5b61038c600160a060020a0360043516602435610b79565b34156104d557600080fd5b6104e0600435610c38565b604051600160a060020a03909116815260200160405180910390f35b341561050757600080fd5b6102b9610c64565b341561051a57600080fd5b610368610c6a565b341561052d57600080fd5b6102b9610d60565b341561054057600080fd5b610368610d66565b341561055357600080fd5b610368610d90565b341561056657600080fd5b6102b9600160a060020a0360043581169060243516610dda565b341561058b57600080fd5b610368610e05565b341561059e57600080fd5b610368610e59565b34156105b157600080fd5b610368610f43565b6000808083116105c557fe5b82848115156105d057fe5b04905082848115156105de57fe5b0681840201841415156105ed57fe5b9392505050565b6000806127108310156106155760055460649060ff1684025b04905061066b565b61c35083101561063457600554606490610100900460ff16840261060d565b620186a08310156106555760055460649062010000900460ff16840261060d565b6005546064906301000000900460ff1684020490505b92915050565b6000808311801561069b5750600160a060020a0330166000908152600a6020526040902054839010155b80156106c15750600160a060020a0330166000908152600a602052604081205484900310155b80156106d05750600954838101115b80156106e25750600754836006540111155b80156107075750600160a060020a0384166000908152600a6020526040902054838101115b1561086c57600160a060020a033081166000818152600a6020526040808220805488900390556009805488019055600680548801905592871680825290839020805487019055916000805160206114438339815191529086905190815260200160405180910390a36003601554111580156107825750600082115b80156107aa5750600e54600160a060020a03166000908152600a602052604081205483900310155b80156107b95750600854828101115b80156107cb5750600254826008540111155b80156107f05750600160a060020a0384166000908152600a6020526040902054828101115b1561085b57600e8054600160a060020a039081166000908152600a602052604080822080548790039055600880548701905587831680835291819020805487019055925490929116906000805160206114438339815191529085905190815260200160405180910390a35b61086484611027565b5060016105ed565b5060009392505050565b6006545b90565b60408051908101604052601481527f5370656564204d696e696e672053657276696365000000000000000000000000602082015281565b600e5433600160a060020a039081169116146108cf57600080fd5b6012805460ff191690556002601555426013819055620f0d1f016014556108fc60036005600a600f611153565b565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005490565b600160a060020a0383166000908152600a60205260408120548290108015906109c05750600160a060020a038085166000908152600b602090815260408083203390941683529290522054829010155b80156109cc5750600082115b80156109f15750600160a060020a0383166000908152600a6020526040902054828101115b1561086c57600160a060020a038085166000818152600a6020818152604080842080548990039055600b8252808420338716855282528084208054899003905594881680845291905290839020805486019055916000805160206114438339815191529085905190815260200160405180910390a35060016105ed565b600381565b600e5433600160a060020a03908116911614610a8e57600080fd5b6012805460ff1916905560046015554260138190556228de80016014556108fc6000808080611153565b60085490565b60095490565b600e5433600160a060020a03908116911614610adf57600080fd5b612710670de0b6b3a764000082020460115550565b600160a060020a03166000908152600a602052604090205490565b60115481565b60408051908101604052600381527f534d530000000000000000000000000000000000000000000000000000000000602082015281565b6103e881565b600e5433600160a060020a03908116911614610b6d57600080fd5b6012805460ff19169055565b600160a060020a0333166000908152600a6020526040812054829010801590610ba25750600082115b8015610bc75750600160a060020a0383166000908152600a6020526040902054828101115b15610c3057600160a060020a033381166000818152600a60205260408082208054879003905592861680825290839020805486019055916000805160206114438339815191529085905190815260200160405180910390a3610c2883611027565b50600161066b565b50600061066b565b6000600c82815481101515610c4957fe5b600091825260209091200154600160a060020a031692915050565b60075481565b600e5433600160a060020a03908116911614610c8557600080fd5b6015541515610d3057600154600e8054600160a060020a039081166000908152600a6020526040808220859055308316825280822085905592549091168082529181205483018155600655600791909155610cdf90611027565b600e54600160a060020a039081166000818152600a602052604090819020549192301691600080516020611443833981519152915190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600160155542601381905562032f9f0160149081556108fc90600590600a90601e611153565b600c5490565b600e5433600160a060020a03908116911614610d8157600080fd5b6012805460ff19166001179055565b600e5433600160a060020a03908116911614610dab57600080fd5b6012805460ff191690556003601581905542601381905562433c80016014556108fc9060019060056008611153565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600e5433600160a060020a03908116911614610e2057600080fd5b600e54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156108fc57600080fd5b600e5433600160a060020a03908116911614610e7457600080fd5b60155460041415610f245760165460ff1615610e9257610e926111a2565b60038054600160a060020a0330166000908152600a60205260408120828155815490930280825592549092018255600691909155600755610ed16112ef565b600f54600160a060020a033081166000818152600a6020526040908190205491939092169160008051602061144383398151915291905190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600560155542601381905562093a8001601455565b600e5433600160a060020a03908116911614610f5e57600080fd5b601554600514156110085760165460ff1615610f7c57610f7c6111a2565b600454600160a060020a0330166000908152600a6020526040812082815581546003028083559054018155600655600755610fb56112ef565b600f54600160a060020a033081166000818152600a6020526040908190205491939092169160008051602061144383398151915291905190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600660155542601381905562093a8001601455565b600c5460009011156110d557600160a060020a038082166000818152600d6020526040902054909116146110d057600160a060020a0381166000818152600d60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169091179055600c80546001810161109d83826113db565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b611150565b600160a060020a0381166000818152600d60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169091179055600c80546001810161111d83826113db565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6005805460ff191660ff9586161761ff001916610100948616949094029390931762ff0000191662010000928516929092029190911763ff000000191663010000009190931602919091179055565b60008060046015541015156112eb57600160a060020a0330166000908152600a602052604081205411156112eb57600160a060020a033081166000818152600a60205260409081902054601054909550909216916000805160206114438339815191529085905190815260200160405180910390a3600160a060020a0330166000908152600a6020526040812081905580548390039055601554600414156112e057600954600e54600160a060020a03166000908152600a602052604090205411156112e05750600954600e54600160a060020a039081166000818152600a6020526040908190205460105494900393909216916000805160206114438339815191529084905190815260200160405180910390a3600e54600160a060020a03166000908152600a6020526040812080548390039055805482900390555b6016805460ff191690555b5050565b6000805b600c548210156112eb57600a6000600c8481548110151561131057fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812054600c80549193506003840292600a929091908690811061135157fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902055600c80548390811061138457fe5b600091825260209091200154600f54600160a060020a0391821691166000805160206114438339815191526002840260405190815260200160405180910390a36008805460028302019055600191909101906112f3565b8154818355818115116113ff576000838152602090206113ff918101908301611404565b505050565b61087a91905b8082111561141e576000815560010161140a565b50905600909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9cddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a210c00c7b21d17568d0733ed0d0ee312507e9c3491f84783c749be0c780435e0029

Deployed Bytecode

0x60606040526004361061015e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630387b0a281146102a657806306fdde03146102cb5780630835b8b214610355578063095ea7b31461036a57806318160ddd146103a057806323b872dd146103b3578063313ce567146103db5780635143284d146103ee57806351973391146104015780636769d1f9146104145780636a61e5fc1461042757806370a082311461043d5780637ff9b5961461045c57806395d89b411461046f5780639d8e217714610482578063a62d780114610495578063a9059cbb146104a8578063b93f9b0a146104ca578063be471027146104fc578063c2cdaf241461050f578063c40d19a514610522578063c8f4170614610535578063d4a3456414610548578063dd62ed3e1461055b578063e264172c14610580578063e4698ee714610593578063ff56b59a146105a6575b600080806000805160206114238339815191523460405190815260200160405180910390a160125460ff161580156101a55750600e5433600160a060020a03908116911614155b1561029c57601454421161029c5760008051602061142383398151915260155460405190815260200160405180910390a16003600a0a340292506101eb836011546105b9565b91506000805160206114238339815191528260405190815260200160405180910390a16015546001148061022157506015546002145b8061022e57506015546003145b156102605761023c826105f4565b90506000805160206114238339815191528160405190815260200160405180910390a15b6000805160206114238339815191528260405190815260200160405180910390a161028c338383610671565b151561029757600080fd5b6102a1565b600080fd5b505050005b34156102b157600080fd5b6102b9610876565b60405190815260200160405180910390f35b34156102d657600080fd5b6102de61087d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561031a578082015183820152602001610302565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036057600080fd5b6103686108b4565b005b341561037557600080fd5b61038c600160a060020a03600435166024356108fe565b604051901515815260200160405180910390f35b34156103ab57600080fd5b6102b961096a565b34156103be57600080fd5b61038c600160a060020a0360043581169060243516604435610970565b34156103e657600080fd5b6102b9610a6e565b34156103f957600080fd5b610368610a73565b341561040c57600080fd5b6102b9610ab8565b341561041f57600080fd5b6102b9610abe565b341561043257600080fd5b610368600435610ac4565b341561044857600080fd5b6102b9600160a060020a0360043516610af4565b341561046757600080fd5b6102b9610b0f565b341561047a57600080fd5b6102de610b15565b341561048d57600080fd5b6102b9610b4c565b34156104a057600080fd5b610368610b52565b34156104b357600080fd5b61038c600160a060020a0360043516602435610b79565b34156104d557600080fd5b6104e0600435610c38565b604051600160a060020a03909116815260200160405180910390f35b341561050757600080fd5b6102b9610c64565b341561051a57600080fd5b610368610c6a565b341561052d57600080fd5b6102b9610d60565b341561054057600080fd5b610368610d66565b341561055357600080fd5b610368610d90565b341561056657600080fd5b6102b9600160a060020a0360043581169060243516610dda565b341561058b57600080fd5b610368610e05565b341561059e57600080fd5b610368610e59565b34156105b157600080fd5b610368610f43565b6000808083116105c557fe5b82848115156105d057fe5b04905082848115156105de57fe5b0681840201841415156105ed57fe5b9392505050565b6000806127108310156106155760055460649060ff1684025b04905061066b565b61c35083101561063457600554606490610100900460ff16840261060d565b620186a08310156106555760055460649062010000900460ff16840261060d565b6005546064906301000000900460ff1684020490505b92915050565b6000808311801561069b5750600160a060020a0330166000908152600a6020526040902054839010155b80156106c15750600160a060020a0330166000908152600a602052604081205484900310155b80156106d05750600954838101115b80156106e25750600754836006540111155b80156107075750600160a060020a0384166000908152600a6020526040902054838101115b1561086c57600160a060020a033081166000818152600a6020526040808220805488900390556009805488019055600680548801905592871680825290839020805487019055916000805160206114438339815191529086905190815260200160405180910390a36003601554111580156107825750600082115b80156107aa5750600e54600160a060020a03166000908152600a602052604081205483900310155b80156107b95750600854828101115b80156107cb5750600254826008540111155b80156107f05750600160a060020a0384166000908152600a6020526040902054828101115b1561085b57600e8054600160a060020a039081166000908152600a602052604080822080548790039055600880548701905587831680835291819020805487019055925490929116906000805160206114438339815191529085905190815260200160405180910390a35b61086484611027565b5060016105ed565b5060009392505050565b6006545b90565b60408051908101604052601481527f5370656564204d696e696e672053657276696365000000000000000000000000602082015281565b600e5433600160a060020a039081169116146108cf57600080fd5b6012805460ff191690556002601555426013819055620f0d1f016014556108fc60036005600a600f611153565b565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005490565b600160a060020a0383166000908152600a60205260408120548290108015906109c05750600160a060020a038085166000908152600b602090815260408083203390941683529290522054829010155b80156109cc5750600082115b80156109f15750600160a060020a0383166000908152600a6020526040902054828101115b1561086c57600160a060020a038085166000818152600a6020818152604080842080548990039055600b8252808420338716855282528084208054899003905594881680845291905290839020805486019055916000805160206114438339815191529085905190815260200160405180910390a35060016105ed565b600381565b600e5433600160a060020a03908116911614610a8e57600080fd5b6012805460ff1916905560046015554260138190556228de80016014556108fc6000808080611153565b60085490565b60095490565b600e5433600160a060020a03908116911614610adf57600080fd5b612710670de0b6b3a764000082020460115550565b600160a060020a03166000908152600a602052604090205490565b60115481565b60408051908101604052600381527f534d530000000000000000000000000000000000000000000000000000000000602082015281565b6103e881565b600e5433600160a060020a03908116911614610b6d57600080fd5b6012805460ff19169055565b600160a060020a0333166000908152600a6020526040812054829010801590610ba25750600082115b8015610bc75750600160a060020a0383166000908152600a6020526040902054828101115b15610c3057600160a060020a033381166000818152600a60205260408082208054879003905592861680825290839020805486019055916000805160206114438339815191529085905190815260200160405180910390a3610c2883611027565b50600161066b565b50600061066b565b6000600c82815481101515610c4957fe5b600091825260209091200154600160a060020a031692915050565b60075481565b600e5433600160a060020a03908116911614610c8557600080fd5b6015541515610d3057600154600e8054600160a060020a039081166000908152600a6020526040808220859055308316825280822085905592549091168082529181205483018155600655600791909155610cdf90611027565b600e54600160a060020a039081166000818152600a602052604090819020549192301691600080516020611443833981519152915190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600160155542601381905562032f9f0160149081556108fc90600590600a90601e611153565b600c5490565b600e5433600160a060020a03908116911614610d8157600080fd5b6012805460ff19166001179055565b600e5433600160a060020a03908116911614610dab57600080fd5b6012805460ff191690556003601581905542601381905562433c80016014556108fc9060019060056008611153565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600e5433600160a060020a03908116911614610e2057600080fd5b600e54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156108fc57600080fd5b600e5433600160a060020a03908116911614610e7457600080fd5b60155460041415610f245760165460ff1615610e9257610e926111a2565b60038054600160a060020a0330166000908152600a60205260408120828155815490930280825592549092018255600691909155600755610ed16112ef565b600f54600160a060020a033081166000818152600a6020526040908190205491939092169160008051602061144383398151915291905190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600560155542601381905562093a8001601455565b600e5433600160a060020a03908116911614610f5e57600080fd5b601554600514156110085760165460ff1615610f7c57610f7c6111a2565b600454600160a060020a0330166000908152600a6020526040812082815581546003028083559054018155600655600755610fb56112ef565b600f54600160a060020a033081166000818152600a6020526040908190205491939092169160008051602061144383398151915291905190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600660155542601381905562093a8001601455565b600c5460009011156110d557600160a060020a038082166000818152600d6020526040902054909116146110d057600160a060020a0381166000818152600d60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169091179055600c80546001810161109d83826113db565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b611150565b600160a060020a0381166000818152600d60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169091179055600c80546001810161111d83826113db565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6005805460ff191660ff9586161761ff001916610100948616949094029390931762ff0000191662010000928516929092029190911763ff000000191663010000009190931602919091179055565b60008060046015541015156112eb57600160a060020a0330166000908152600a602052604081205411156112eb57600160a060020a033081166000818152600a60205260409081902054601054909550909216916000805160206114438339815191529085905190815260200160405180910390a3600160a060020a0330166000908152600a6020526040812081905580548390039055601554600414156112e057600954600e54600160a060020a03166000908152600a602052604090205411156112e05750600954600e54600160a060020a039081166000818152600a6020526040908190205460105494900393909216916000805160206114438339815191529084905190815260200160405180910390a3600e54600160a060020a03166000908152600a6020526040812080548390039055805482900390555b6016805460ff191690555b5050565b6000805b600c548210156112eb57600a6000600c8481548110151561131057fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812054600c80549193506003840292600a929091908690811061135157fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902055600c80548390811061138457fe5b600091825260209091200154600f54600160a060020a0391821691166000805160206114438339815191526002840260405190815260200160405180910390a36008805460028302019055600191909101906112f3565b8154818355818115116113ff576000838152602090206113ff918101908301611404565b505050565b61087a91905b8082111561141e576000815560010161140a565b50905600909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9cddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a210c00c7b21d17568d0733ed0d0ee312507e9c3491f84783c749be0c780435e0029

Swarm Source

bzzr://a210c00c7b21d17568d0733ed0d0ee312507e9c3491f84783c749be0c780435e

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.