Sponsored Link: Crowdsale has finished. Check out the KICKICO platform to find new ICOs to start.
Contract Overview | VeChainToken
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 22740 txns
Token Tracker 0xd850942ef8811f2a866692a623011bde52a462c1
  Latest 25 txns from a total Of 22740 transactions View All

TxHash Age From To Value [TxFee]
0x1a730b54aa29a18cbd64fe6af74c0a95d788d53e641590df0a8beeeef1ad37ac5 mins ago0xd5ae44bc9ef0f026c5efcbea58d400aa192febe5  IN   VeChainToken0 Ether0.0004967
0xbdda1eb488642370228f997ed0b7d63c301dd6e4391d68d6776b5961844629756 mins ago0xe46028f1227dcd4278af477550c75165522156b0  IN   VeChainToken0 Ether0.00109542
0xff902da117c0e2184bca3a7dd77995e2820f280780af710f30dc842b152088f313 mins ago0xaaa3dfee2e7d7d47acc9a9e68a85933f145b30a0  IN   VeChainToken0 Ether0.00109542
0x7ef95fc0c28c7e9088f1612b10a518cea3aee03042defb237a0a16cc24d8f4a635 mins ago0xd5ae44bc9ef0f026c5efcbea58d400aa192febe5  IN   VeChainToken0 Ether0.0004967
0x854dcd7c0d41fc5d4ce14ba5cbcfbd89dc09d42e6ba3c8458a4afd906f7c8cf239 mins ago0xaaa3dfee2e7d7d47acc9a9e68a85933f145b30a0  IN   VeChainToken0 Ether0.000611038968
0xcceadcf134aa2d4bc6541c1af95aefb4458b3f1d56a60dd5d677ffe77350c23657 mins agoyunbi_1  IN   VeChainToken0 Ether0.00274175
0xc89ec6fe9a00eb1eed37d31ec12c5e855b3ed5627a725674f24a5b9c734aa0934 hrs 38 mins ago0x081d66958d41f011d107423e60980c386db53d89  IN   VeChainToken0 Ether0.001151535
0xf19f7d135b0a09cd2b648a4d2d6963455985f3c783760ad956f20f974a0b0f414 hrs 44 mins agoliqui.io_2  IN   VeChainToken0 Ether0.001151535
0x1c75f0d3802d8515cf9d94a85feace92a07bf7cbb2985450704a7d9a7fd0db3f5 hrs 46 mins ago0x30592026f6ce3f5761317f65e6b9cd3b23c9caa1  IN   VeChainToken0 Ether0.00049542
0x59c3784756963aac02145b60e834477fc48731cc65d105668ec524010bf154ca5 hrs 51 mins ago0x382b550963575219afb54e043316e34386271a64  IN   VeChainToken0 Ether0.000054771
0x6a8dcd8aaae747776161fa486547fe6bfa7ddb86010ade9c98c346f06c82213d7 hrs 59 mins agoliqui.io_2  IN   VeChainToken0 Ether0.001152879
0xd1728d614e47eb0ee1e0a7dbce294204e525e0b3b9a635c6e6b31dd5e6c502e38 hrs 12 mins ago0x530d1f0a8e7382a4fc4980a4455aeccd27cc6736  IN   VeChainToken0 Ether0.000054899
0x7216a4898c965419097a2d72b68daede75c82cb23e9946aff03d457dea2b2cc98 hrs 16 mins agoyunbi_1  IN   VeChainToken0 Ether0.00273855
0x48aabf97b44302f7acd759467174eed8b6ef3297c7009ed3907d4b37209fc8a78 hrs 31 mins ago0xf732b16f5aee6cd2db5b30a7a3860764a48b19ff  IN   VeChainToken0 Ether0.000502425
0x88e37532ae2a5b3699727e5c8182f029a957d2cf0a9a692c8e2afcb1719805d68 hrs 32 mins ago0xfda91bae1536f2046b046cbde5e5b862fe1d3e0a  IN   VeChainToken0 Ether0.000576031637
0x2fc7d7c6d63851176a15574ce6f0308e06a003cd0981febcddb9c143b8cf538d8 hrs 34 mins agoliqui.io_2  IN   VeChainToken0 Ether0.001151535
0xd1e80021188a9708e9c8a8d00699957d80b8d01332929b874b2350ded8ac50188 hrs 34 mins agoyunbi_1  IN   VeChainToken0 Ether0.00274175
0xbecc3c23301c4e2baae9006eb1d973599d2ffc522d35e58de79700efcb916f588 hrs 34 mins agoyunbi_1  IN   VeChainToken0 Ether0.00274175
0x795393c669e753a37883a9418aa09aff20a4ac8e04b249f505d09f20692954e38 hrs 34 mins agoyunbi_1  IN   VeChainToken0 Ether0.00273215
0xf847b79f04891ad871c6b279e5dddbbc55d92a629c0952dc7c4a2d911e64a87c8 hrs 34 mins agoyunbi_1  IN   VeChainToken0 Ether0.00274175
0x8f1a01feafcb7f93ed5f943f374758f21f605f2bc638857f82d80df1d07fc1ba8 hrs 45 mins ago0xd0bb8c3366ecb78589c4f973a2c205e3cf4b5378  IN   VeChainToken0 Ether0.000054899
0x8945cd7fbe608c0d8f4720d717308e5dfa7b4f80c780be1b7cf2b2b9feae08c38 hrs 55 mins ago0x347c05ffd47cadd42d21e275f67a82696f9ef354  IN   VeChainToken0 Ether0.00282654
0x199c1aaba8f76b9fc21749cd8f2c8e5f969ab637f374004ca92996deeb37159e8 hrs 56 mins ago0xa77a9bcde409a21778d9bc21e927388e891dc999  IN   VeChainToken0 Ether0.0024835
0xc66e173076495cf24f57883bba560d9672f6f6646b2111c15ee32fe9fad3071c9 hrs 2 mins ago0x11b62a77b027b3929683d019298c6bf2522d5152  IN   VeChainToken0 Ether0.00237462
0x609fc7a731d360de612921b1f8e37032c7f62ea404219fb31ad532cc4efb316f9 hrs 7 mins agoliqui.io_2  IN   VeChainToken0 Ether0.000836535
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The compiled contract might be susceptible to DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: VEN
Compiler Version: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.11;

contract Owned {

    address public owner;

    function Owned() {
        owner = msg.sender;
    }

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

    function setOwner(address _newOwner) onlyOwner {
        owner = _newOwner;
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }

  function toUINT112(uint256 a) internal constant returns(uint112) {
    assert(uint112(a) == a);
    return uint112(a);
  }

  function toUINT120(uint256 a) internal constant returns(uint120) {
    assert(uint120(a) == a);
    return uint120(a);
  }

  function toUINT128(uint256 a) internal constant returns(uint128) {
    assert(uint128(a) == a);
    return uint128(a);
  }
}


// Abstract contract for the full ERC 20 Token standard
// https://github.com/ethereum/EIPs/issues/20

contract Token {
    /* This is a slight change to the ERC20 base standard.
    function totalSupply() constant returns (uint256 supply);
    is replaced with:
    uint256 public totalSupply;
    This automatically creates a getter function for the totalSupply.
    This is moved to the base contract since public getter functions are not
    currently recognised as an implementation of the matching abstract
    function by the compiler.
    */
    /// total amount of tokens
    //uint256 public totalSupply;
    function totalSupply() constant returns (uint256 supply);

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant returns (uint256 balance);

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

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

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

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

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


/// VEN token, ERC20 compliant
contract VEN is Token, Owned {
    using SafeMath for uint256;

    string public constant name    = "VeChain Token";  //The Token's name
    uint8 public constant decimals = 18;               //Number of decimals of the smallest unit
    string public constant symbol  = "VEN";            //An identifier    

    // packed to 256bit to save gas usage.
    struct Supplies {
        // uint128's max value is about 3e38.
        // it's enough to present amount of tokens
        uint128 total;
        uint128 rawTokens;
    }

    Supplies supplies;

    // Packed to 256bit to save gas usage.    
    struct Account {
        // uint112's max value is about 5e33.
        // it's enough to present amount of tokens
        uint112 balance;

        // raw token can be transformed into balance with bonus        
        uint112 rawTokens;

        // safe to store timestamp
        uint32 lastMintedTimestamp;
    }

    // Balances for each account
    mapping(address => Account) accounts;

    // Owner of account approves the transfer of an amount to another account
    mapping(address => mapping(address => uint256)) allowed;

    // bonus that can be shared by raw tokens
    uint256 bonusOffered;

    // Constructor
    function VEN() {
    }

    function totalSupply() constant returns (uint256 supply){
        return supplies.total;
    }

    // Send back ether sent to me
    function () {
        revert();
    }

    // If sealed, transfer is enabled and mint is disabled
    function isSealed() constant returns (bool) {
        return owner == 0;
    }

    function lastMintedTimestamp(address _owner) constant returns(uint32) {
        return accounts[_owner].lastMintedTimestamp;
    }

    // Claim bonus by raw tokens
    function claimBonus(address _owner) internal{      
        require(isSealed());
        if (accounts[_owner].rawTokens != 0) {
            uint256 realBalance = balanceOf(_owner);
            uint256 bonus = realBalance
                .sub(accounts[_owner].balance)
                .sub(accounts[_owner].rawTokens);

            accounts[_owner].balance = realBalance.toUINT112();
            accounts[_owner].rawTokens = 0;
            if(bonus > 0){
                Transfer(this, _owner, bonus);
            }
        }
    }

    // What is the balance of a particular account?
    function balanceOf(address _owner) constant returns (uint256 balance) {
        if (accounts[_owner].rawTokens == 0)
            return accounts[_owner].balance;

        if (bonusOffered > 0) {
            uint256 bonus = bonusOffered
                 .mul(accounts[_owner].rawTokens)
                 .div(supplies.rawTokens);

            return bonus.add(accounts[_owner].balance)
                    .add(accounts[_owner].rawTokens);
        }
        
        return uint256(accounts[_owner].balance)
            .add(accounts[_owner].rawTokens);
    }

    // Transfer the balance from owner's account to another account
    function transfer(address _to, uint256 _amount) returns (bool success) {
        require(isSealed());

        // implicitly claim bonus for both sender and receiver
        claimBonus(msg.sender);
        claimBonus(_to);

        // according to VEN's total supply, never overflow here
        if (accounts[msg.sender].balance >= _amount
            && _amount > 0) {            
            accounts[msg.sender].balance -= uint112(_amount);
            accounts[_to].balance = _amount.add(accounts[_to].balance).toUINT112();
            Transfer(msg.sender, _to, _amount);
            return true;
        } else {
            return false;
        }
    }

    // Send _value amount of tokens from address _from to address _to
    // The transferFrom method is used for a withdraw workflow, allowing contracts to send
    // tokens on your behalf, for example to "deposit" to a contract address and/or to charge
    // fees in sub-currencies; the command should fail unless the _from account has
    // deliberately authorized the sender of the message via some mechanism; we propose
    // these standardized APIs for approval:
    function transferFrom(
        address _from,
        address _to,
        uint256 _amount
    ) returns (bool success) {
        require(isSealed());

        // implicitly claim bonus for both sender and receiver
        claimBonus(_from);
        claimBonus(_to);

        // according to VEN's total supply, never overflow here
        if (accounts[_from].balance >= _amount
            && allowed[_from][msg.sender] >= _amount
            && _amount > 0) {
            accounts[_from].balance -= uint112(_amount);
            allowed[_from][msg.sender] -= _amount;
            accounts[_to].balance = _amount.add(accounts[_to].balance).toUINT112();
            Transfer(_from, _to, _amount);
            return true;
        } else {
            return false;
        }
    }

    // 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) returns (bool success) {
        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }

    /* Approves and then calls the receiving contract */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);

        //call the receiveApproval function on the contract you want to be notified. This crafts the function signature manually so one doesn't have to include a contract in here just for this.
        //receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData)
        //it is assumed that when does this that the call *should* succeed, otherwise one would use vanilla approve instead.
        //if(!_spender.call(bytes4(bytes32(sha3("receiveApproval(address,uint256,address,bytes)"))), msg.sender, _value, this, _extraData)) { revert(); }
        ApprovalReceiver(_spender).receiveApproval(msg.sender, _value, this, _extraData);
        return true;
    }

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

    // Mint tokens and assign to some one
    function mint(address _owner, uint256 _amount, bool _isRaw, uint32 timestamp) onlyOwner{
        if (_isRaw) {
            accounts[_owner].rawTokens = _amount.add(accounts[_owner].rawTokens).toUINT112();
            supplies.rawTokens = _amount.add(supplies.rawTokens).toUINT128();
        } else {
            accounts[_owner].balance = _amount.add(accounts[_owner].balance).toUINT112();
        }

        accounts[_owner].lastMintedTimestamp = timestamp;

        supplies.total = _amount.add(supplies.total).toUINT128();
        Transfer(0, _owner, _amount);
    }
    
    // Offer bonus to raw tokens holder
    function offerBonus(uint256 _bonus) onlyOwner { 
        bonusOffered = bonusOffered.add(_bonus);
        supplies.total = _bonus.add(supplies.total).toUINT128();
        Transfer(0, this, _bonus);
    }

    // Set owner to zero address, to disable mint, and enable token transfer
    function seal() onlyOwner {
        setOwner(0);
    }
}

contract ApprovalReceiver {
    function receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData);
}


// Contract to sell and distribute VEN tokens
contract VENSale is Owned{

    /// chart of stage transition 
    ///
    /// deploy   initialize      startTime                            endTime                 finalize
    ///                              | <-earlyStageLasts-> |             | <- closedStageLasts -> |
    ///  O-----------O---------------O---------------------O-------------O------------------------O------------>
    ///     Created     Initialized           Early             Normal             Closed            Finalized
    enum Stage {
        NotCreated,
        Created,
        Initialized,
        Early,
        Normal,
        Closed,
        Finalized
    }

    using SafeMath for uint256;
    
    uint256 public constant totalSupply         = (10 ** 9) * (10 ** 18); // 1 billion VEN, decimals set to 18

    uint256 constant privateSupply              = totalSupply * 9 / 100;  // 9% for private ICO
    uint256 constant commercialPlan             = totalSupply * 23 / 100; // 23% for commercial plan
    uint256 constant reservedForTeam            = totalSupply * 5 / 100;  // 5% for team
    uint256 constant reservedForOperations      = totalSupply * 22 / 100; // 22 for operations

    // 59%
    uint256 public constant nonPublicSupply     = privateSupply + commercialPlan + reservedForTeam + reservedForOperations;
    // 41%
    uint256 public constant publicSupply = totalSupply - nonPublicSupply;


    uint256 public constant officialLimit = 64371825 * (10 ** 18);
    uint256 public constant channelsLimit = publicSupply - officialLimit;

    // packed to 256bit
    struct SoldOut {
        uint16 placeholder; // placeholder to make struct pre-alloced

        // amount of tokens officially sold out.
        // max value of 120bit is about 1e36, it's enough for token amount
        uint120 official; 

        uint120 channels; // amount of tokens sold out via channels
    }

    SoldOut soldOut;
    
    uint256 constant venPerEth = 3500;  // normal exchange rate
    uint256 constant venPerEthEarlyStage = venPerEth + venPerEth * 15 / 100;  // early stage has 15% reward

    uint constant minBuyInterval = 30 minutes; // each account can buy once in 30 minutes
    uint constant maxBuyEthAmount = 30 ether;
   
    VEN ven; // VEN token contract follows ERC20 standard

    address ethVault; // the account to keep received ether
    address venVault; // the account to keep non-public offered VEN tokens

    uint public constant startTime = 1503057600; // time to start sale
    uint public constant endTime = 1504180800;   // tiem to close sale
    uint public constant earlyStageLasts = 3 days; // early bird stage lasts in seconds

    bool initialized;
    bool finalized;

    function VENSale() {
        soldOut.placeholder = 1;
    }    

    /// @notice calculte exchange rate according to current stage
    /// @return exchange rate. zero if not in sale.
    function exchangeRate() constant returns (uint256){
        if (stage() == Stage.Early) {
            return venPerEthEarlyStage;
        }
        if (stage() == Stage.Normal) {
            return venPerEth;
        }
        return 0;
    }

    /// @notice for test purpose
    function blockTime() constant returns (uint32) {
        return uint32(block.timestamp);
    }

    /// @notice estimate stage
    /// @return current stage
    function stage() constant returns (Stage) { 
        if (finalized) {
            return Stage.Finalized;
        }

        if (!initialized) {
            // deployed but not initialized
            return Stage.Created;
        }

        if (blockTime() < startTime) {
            // not started yet
            return Stage.Initialized;
        }

        if (uint256(soldOut.official).add(soldOut.channels) >= publicSupply) {
            // all sold out
            return Stage.Closed;
        }

        if (blockTime() < endTime) {
            // in sale            
            if (blockTime() < startTime.add(earlyStageLasts)) {
                // early bird stage
                return Stage.Early;
            }
            // normal stage
            return Stage.Normal;
        }

        // closed
        return Stage.Closed;
    }

    function isContract(address _addr) constant internal returns(bool) {
        uint size;
        if (_addr == 0) return false;
        assembly {
            size := extcodesize(_addr)
        }
        return size > 0;
    }

    /// @notice entry to buy tokens
    function () payable {        
        buy();
    }

    /// @notice entry to buy tokens
    function buy() payable {
        // reject contract buyer to avoid breaking interval limit
        require(!isContract(msg.sender));
        require(msg.value >= 0.01 ether);

        uint256 rate = exchangeRate();
        // here don't need to check stage. rate is only valid when in sale
        require(rate > 0);
        // each account is allowed once in minBuyInterval
        require(blockTime() >= ven.lastMintedTimestamp(msg.sender) + minBuyInterval);

        uint256 requested;
        // and limited to maxBuyEthAmount
        if (msg.value > maxBuyEthAmount) {
            requested = maxBuyEthAmount.mul(rate);
        } else {
            requested = msg.value.mul(rate);
        }

        uint256 remained = officialLimit.sub(soldOut.official);
        if (requested > remained) {
            //exceed remained
            requested = remained;
        }

        uint256 ethCost = requested.div(rate);
        if (requested > 0) {
            ven.mint(msg.sender, requested, true, blockTime());
            // transfer ETH to vault
            ethVault.transfer(ethCost);

            soldOut.official = requested.add(soldOut.official).toUINT120();
            onSold(msg.sender, requested, ethCost);        
        }

        uint256 toReturn = msg.value.sub(ethCost);
        if(toReturn > 0) {
            // return over payed ETH
            msg.sender.transfer(toReturn);
        }        
    }

    /// @notice returns tokens sold officially
    function officialSold() constant returns (uint256) {
        return soldOut.official;
    }

    /// @notice returns tokens sold via channels
    function channelsSold() constant returns (uint256) {
        return soldOut.channels;
    } 

    /// @notice manually offer tokens to channel
    function offerToChannel(address _channelAccount, uint256 _venAmount) onlyOwner {
        Stage stg = stage();
        // since the settlement may be delayed, so it's allowed in closed stage
        require(stg == Stage.Early || stg == Stage.Normal || stg == Stage.Closed);

        soldOut.channels = _venAmount.add(soldOut.channels).toUINT120();

        //should not exceed limit
        require(soldOut.channels <= channelsLimit);

        ven.mint(
            _channelAccount,
            _venAmount,
            true,  // unsold tokens can be claimed by channels portion
            blockTime()
            );

        onSold(_channelAccount, _venAmount, 0);
    }

    /// @notice initialize to prepare for sale
    /// @param _ven The address VEN token contract following ERC20 standard
    /// @param _ethVault The place to store received ETH
    /// @param _venVault The place to store non-publicly supplied VEN tokens
    function initialize(
        VEN _ven,
        address _ethVault,
        address _venVault) onlyOwner {
        require(stage() == Stage.Created);

        // ownership of token contract should already be this
        require(_ven.owner() == address(this));

        require(address(_ethVault) != 0);
        require(address(_venVault) != 0);      

        ven = _ven;
        
        ethVault = _ethVault;
        venVault = _venVault;    
        
        ven.mint(
            venVault,
            reservedForTeam.add(reservedForOperations),
            false, // team and operations reserved portion can't share unsold tokens
            blockTime()
        );

        ven.mint(
            venVault,
            privateSupply.add(commercialPlan),
            true, // private ICO and commercial plan can share unsold tokens
            blockTime()
        );

        initialized = true;
        onInitialized();
    }

    /// @notice finalize
    function finalize() onlyOwner {
        // only after closed stage
        require(stage() == Stage.Closed);       

        uint256 unsold = publicSupply.sub(soldOut.official).sub(soldOut.channels);

        if (unsold > 0) {
            // unsold VEN as bonus
            ven.offerBonus(unsold);        
        }
        ven.seal();

        finalized = true;
        onFinalized();
    }

    event onInitialized();
    event onFinalized();

    event onSold(address indexed buyer, uint256 venAmount, uint256 ethCost);
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"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,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"seal","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_bonus","type":"uint256"}],"name":"offerBonus","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isSealed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lastMintedTimestamp","outputs":[{"name":"","type":"uint32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_isRaw","type":"bool"},{"name":"timestamp","type":"uint32"}],"name":"mint","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":false,"type":"fallback"},{"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"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000c57fe5b5b5b60008054600160a060020a03191633600160a060020a03161790555b5b5b6111ab8061003b6000396000f300606060405236156100d55763ffffffff60e060020a60003504166306fdde0381146100eb578063095ea7b31461017b57806313af4035146101ae57806318160ddd146101cc57806323b872dd146101ee578063313ce567146102275780633fb27b851461024d578063534eb1d41461025f578063631f98521461027457806370a08231146102985780637ba49b81146102c65780638da5cb5b146102fb57806395d89b4114610327578063a9059cbb146103b7578063b5e73249146103ea578063cae9ca5114610419578063dd62ed3e14610490575b34156100dd57fe5b6100e95b60006000fd5b565b005b34156100f357fe5b6100fb6104c4565b604080516020808252835181830152835191928392908301918501908083838215610141575b80518252602083111561014157601f199092019160209182019101610121565b505050905090810190601f16801561016d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018357fe5b61019a600160a060020a03600435166024356104fb565b604080519115158252519081900360200190f35b34156101b657fe5b6100e9600160a060020a0360043516610566565b005b34156101d457fe5b6101dc6105af565b60408051918252519081900360200190f35b34156101f657fe5b61019a600160a060020a03600435811690602435166044356105bf565b604080519115158252519081900360200190f35b341561022f57fe5b610237610748565b6040805160ff9092168252519081900360200190f35b341561025557fe5b6100e961074d565b005b341561026757fe5b6100e9600435610777565b005b341561027c57fe5b61019a61082d565b604080519115158252519081900360200190f35b34156102a057fe5b6101dc600160a060020a036004351661083e565b60408051918252519081900360200190f35b34156102ce57fe5b6102e2600160a060020a03600435166109a6565b6040805163ffffffff9092168252519081900360200190f35b341561030357fe5b61030b6109d2565b60408051600160a060020a039092168252519081900360200190f35b341561032f57fe5b6100fb6109e1565b604080516020808252835181830152835191928392908301918501908083838215610141575b80518252602083111561014157601f199092019160209182019101610121565b505050905090810190601f16801561016d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103bf57fe5b61019a600160a060020a0360043516602435610a18565b604080519115158252519081900360200190f35b34156103f257fe5b6100e9600160a060020a0360043516602435604435151563ffffffff60643516610b56565b005b341561042157fe5b604080516020600460443581810135601f810184900484028501840190955284845261019a948235600160a060020a0316946024803595606494929391909201918190840183828082843750949650610dc095505050505050565b604080519115158252519081900360200190f35b341561049857fe5b6101dc600160a060020a0360043581169060243516610f2e565b60408051918252519081900360200190f35b60408051808201909152600d81527f5665436861696e20546f6b656e00000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260036020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60005433600160a060020a039081169116146105825760006000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6001546001608060020a03165b90565b60006105c961082d565b15156105d55760006000fd5b6105de84610f5b565b6105e783610f5b565b600160a060020a0384166000908152600260205260409020546001607060020a03168290108015906106405750600160a060020a0380851660009081526003602090815260408083203390941683529290522054829010155b801561064c5750600082115b1561073c57600160a060020a03848116600090815260026020818152604080842080546dffffffffffffffffffffffffffff1981166001607060020a039182168a900382161790915560038352818520338716865283528185208054899003905594881684529190529020546106cd916106c8918591166110aa565b6110c4565b600160a060020a0384811660008181526002602090815260409182902080546dffffffffffffffffffffffffffff19166001607060020a0396909616959095179094558051868152905191939288169260008051602061116083398151915292918290030190a3506001610740565b5060005b5b9392505050565b601281565b60005433600160a060020a039081169116146107695760006000fd5b6100e76000610566565b5b5b565b60005433600160a060020a039081169116146107935760006000fd5b6004546107a6908263ffffffff6110aa16565b6004556001546107cf906107ca9083906001608060020a031663ffffffff6110aa16565b6110e0565b600180546fffffffffffffffffffffffffffffffff19166001608060020a039290921691909117905560408051828152905130600160a060020a031691600091600080516020611160833981519152916020908290030190a35b5b50565b600054600160a060020a0316155b90565b600160a060020a0381166000908152600260205260408120548190607060020a90046001607060020a0316151561089857600160a060020a0383166000908152600260205260409020546001607060020a031691506109a0565b6000600454111561096157600154600160a060020a03841660009081526002602052604090205460045461090a9270010000000000000000000000000000000090046001608060020a0316916108fe9190607060020a90046001607060020a03166110fc565b9063ffffffff61112b16565b600160a060020a03841660009081526002602052604090205490915061095a906001607060020a03607060020a820481169161094e9185911663ffffffff6110aa16565b9063ffffffff6110aa16565b91506109a0565b600160a060020a03831660009081526002602052604090205461099d906001607060020a0380821691607060020a90041663ffffffff6110aa16565b91505b50919050565b600160a060020a03811660009081526002602052604090205460e060020a900463ffffffff165b919050565b600054600160a060020a031681565b60408051808201909152600381527f56454e0000000000000000000000000000000000000000000000000000000000602082015281565b6000610a2261082d565b1515610a2e5760006000fd5b610a3733610f5b565b610a4083610f5b565b600160a060020a0333166000908152600260205260409020546001607060020a0316829010801590610a725750600082115b15610b475733600160a060020a0390811660009081526002602052604080822080546dffffffffffffffffffffffffffff1981166001607060020a039182168890038216179091559286168252902054610ad7916106c8918591166110aa565b6110c4565b600160a060020a0384811660008181526002602090815260409182902080546dffffffffffffffffffffffffffff19166001607060020a039690961695909517909455805186815290519193339093169260008051602061116083398151915292918290030190a3506001610560565b506000610560565b5b92915050565b60005433600160a060020a03908116911614610b725760006000fd5b8115610c7257600160a060020a038416600090815260026020526040902054610bb5906106c8908590607060020a90046001607060020a03166110aa565b6110c4565b600160a060020a038516600090815260026020526040902080546001607060020a0392909216607060020a027bffffffffffffffffffffffffffff000000000000000000000000000019909216919091179055600154610c43906107ca9085906001608060020a037001000000000000000000000000000000009091041663ffffffff6110aa16565b6110e0565b600180546001608060020a03928316700100000000000000000000000000000000029216919091179055610cec565b600160a060020a038416600090815260026020526040902054610cae906106c89085906001607060020a031663ffffffff6110aa16565b6110c4565b600160a060020a038516600090815260026020526040902080546dffffffffffffffffffffffffffff19166001607060020a03929092169190911790555b600160a060020a0384166000908152600260205260409020805463ffffffff80841660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90921691909117909155600154610d5f916107ca9186916001608060020a03909116906110aa16565b6110e0565b600180546fffffffffffffffffffffffffffffffff19166001608060020a0392909216919091179055604080518481529051600160a060020a03861691600091600080516020611160833981519152916020908290030190a35b5b50505050565b600160a060020a03338116600081815260036020908152604080832094881680845294825280832087905580518781529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a383600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360008314610ec7575b805182526020831115610ec757601f199092019160209182019101610ea7565b505050905090810190601f168015610ef35780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515610f1157fe5b6102c65a03f11515610f1f57fe5b505050600190505b9392505050565b600160a060020a038083166000908152600360209081526040808320938516835292905220545b92915050565b60006000610f6761082d565b1515610f735760006000fd5b600160a060020a038316600090815260026020526040902054607060020a90046001607060020a0316156110a357610faa8361083e565b600160a060020a038416600090815260026020526040902054909250610ffa906001607060020a03607060020a8204811691610fee9186911663ffffffff61114816565b9063ffffffff61114816565b9050611005826110c4565b600160a060020a038416600090815260026020526040812080546dffffffffffffffffffffffffffff19166001607060020a0393909316929092177bffffffffffffffffffffffffffff000000000000000000000000000019169091558111156110a35782600160a060020a031630600160a060020a0316600080516020611160833981519152836040518082815260200191505060405180910390a35b5b5b505050565b6000828201838110156110b957fe5b8091505b5092915050565b60006001607060020a03821682146110d857fe5b50805b919050565b60006001608060020a03821682146110d857fe5b50805b919050565b6000828202831580611118575082848281151561111557fe5b04145b15156110b957fe5b8091505b5092915050565b60006000828481151561113a57fe5b0490508091505b5092915050565b60008282111561115457fe5b508082035b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820fa35cb6d9fd595f5020f436c343eb13b8bbbc3984f4c28bc7b89d36062d268a60029

   Swarm Source:
bzzr://fa35cb6d9fd595f5020f436c343eb13b8bbbc3984f4c28bc7b89d36062d268a6
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.