ETH Price: $2,498.33 (+0.72%)

Token

Speed Mining Service (SMS)
 

Overview

Max Total Supply

300,000 SMS

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 3 Decimals)

Balance
1.05 SMS

Value
$0.00
0x3cb718d047fb9ffee39d7bf893a505e5f107bfc3
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

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

Contract Source Code (Solidity)

/**
 *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

[{"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
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.