Sponsored Link: Datum ICO unlocks the $120 Bln User Data Economy. Data is the new Oil. Get Free Tokens worth .05 ETH
Contract Overview | MelonToken
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 14641 txns
Token Tracker Melon
  Latest 25 txns from a total Of 14641 transactions (+1 PendingTxn) View All

TxHash Age From To Value [TxFee]
0x2bb5bf23d63e70cfc8d531059b6d40b15cb6c405c975cbfa11449ae83e3fc91d(pending) 5 secs ago0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98  IN  0xbeb9ef514a379b997e0798fdcc901ee474b6d9a10 Ether(pending)
0xb0ee6e916c4de8ff9cc2ea61be37b3e70f5ca861c488ce9449a8c013794391141 hr 14 mins ago0x00343784fb10bc803c69c75fa32211d82539f6ea  IN   MelonToken0 Ether0.0000075156
0xceb70b1afd544293f39cb7310d8b9d2fe52668ad38a04d8c3fcd1351ab4748c02 hrs 5 mins ago0xf4e1015eb46ea61f1df427b681d9e242f526a94e  IN   MelonToken0 Ether0.000449
0x43c77ede7ec188eaacf640abfdcfff5de5f1eee010c8e7be50cd9ac5f5cde6d82 hrs 9 mins agoBittrex  IN   MelonToken0 Ether0.00162595
0xa6839071e7257c053fe76067e254dfe76c6b229fac4779a6a7978b9518c3cccd2 hrs 20 mins ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.000862822
0x6552c711fb53ac6ec7d611bbe76b95fab12929be8295a857d819ac716aeea4253 hrs 15 mins ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0002415644
0xc14beab1f64e6633b73ee3680cf36e28ee7cdf49872f1bf7ba1fc1a1fdd6f8ff3 hrs 29 mins ago0x66fa2066e9d30d99915a9f547af95f9485ce0f77  IN   MelonToken0 Ether0.000789138
0x6b4565fc9aac16beb3046c89247bfd9cdca83e31117602b81d5c77ef4d9e48214 hrs 27 mins ago0x7a56388733e7e0bc6ce9a6b1eb1d82e98f44a321  IN   MelonToken0 Ether0.000270936
0xca4ad2293d45fe46aedb17227165821869b4a165021eefdfb468b290537d41fa4 hrs 30 mins agoBittrex  IN   MelonToken0 Ether0.001629918
0x54580afba8c7b79bad329cbd64a68c61830e6f9447628843fc3516d4b5ed8c434 hrs 37 mins ago0x5504af69e1d9d9ae01c4c0078b5f584d3c4a1a79  IN   MelonToken0 Ether0.000749
0xcff7dcd0d9b17fa3a4be9f996fbd776c989e04184b842910c73b97e87a7d24c34 hrs 55 mins ago0x5504af69e1d9d9ae01c4c0078b5f584d3c4a1a79  IN   MelonToken0 Ether0.0005898
0x58801989d67b69da7bab5483b2d1b7bfa1c5e0723b3a679b73165e520ff2c8ae5 hrs 1 min ago0x34618aa8a5d06126928c7209dd991048c83bb230  IN   MelonToken0 Ether0.00091514
0x1ef4562e6d393d0b408c9a7d82dbeab6439391b62798b92c84f1f96452ad7a1a5 hrs 11 mins ago0x68cd823dd73422a931459a37c31c68f3b2a9d496  IN   MelonToken0 Ether0.00075028
0x9c48b7172cd03f62b7dd71d7c3c919bd0d08678c080244772e27a806d7ebfe475 hrs 18 mins ago0x6c6cbf2d75b58f76d7b07ada56f8b82761c32357  IN   MelonToken0 Ether0.00033771
0x18c2c38da3d21094559c2b33032e6d9469191881b08dbae83d59497eb81e68045 hrs 22 mins agoBittrex  IN   MelonToken0 Ether0.001627934
0x091bda2e8ee691be1199768814be61f67de71a6412f0fb2f640fd3d6b5638eda5 hrs 55 mins ago0x48eaedfa6ab55f414a433f0778f55ed9b827e822  IN   MelonToken0 Ether0.000365032
0x37835740f276a96f3bf2df3c62131caed9b3297e54661c948df595a15573830e5 hrs 58 mins agoBittrex  IN   MelonToken0 Ether0.001627934
0xead0537a6f6e72a9dc89dd7795215055e3dec65c8c6e1a4487d4698a85b391b56 hrs 39 mins ago0x945805b41eaee35d59f82a2a8214a529bb897757  IN   MelonToken0 Ether0.001102794
0x96de26bb6ee3c4ef0a38797e4af3bc8ce571246e4ebfcc4a358ab28c9436ef176 hrs 44 mins ago0x945805b41eaee35d59f82a2a8214a529bb897757  IN   MelonToken0 Ether0.001102794
0xf139cbbccdd1e36e1ad92df2cefad0adbabc6d641c3630b3a7d72345e2cc801f7 hrs 24 mins ago0x0437ce3c6e4739d3127a533a05c99fa6d3082abd  IN   MelonToken0 Ether0.00131299
0x922c66a696ddb709b88bfc312d8637834f61b66b28f00f1678bd8b46e855bef47 hrs 34 mins ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0003457176
0x60a376ca1646061ac902f779d25ea617c87ba3272c97ad7875d47dac79b622537 hrs 49 mins agoBittrex  IN   MelonToken0 Ether0.001627934
0x4bf2f4899597cf5dcdf8fed208766ecbf4182868e0560e09fc4af67c1b4ee7c77 hrs 51 mins agoBittrex  IN   MelonToken0 Ether0.00162595
0x91cbe8a848ad85d9954dc9c051f478f79bfd6c5d5b975769d9cb83ef958f44be8 hrs 17 mins ago0x0437ce3c6e4739d3127a533a05c99fa6d3082abd  IN   MelonToken0 Ether0.000864045
0x52ed68df876b3ffb2ab48f36322c63f5d57d24b9bbf8413652f34e81a7ec2ae48 hrs 18 mins ago0x0437ce3c6e4739d3127a533a05c99fa6d3082abd  IN   MelonToken0 Ether0.000864045
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0x024ee6228b799a5ce93ccc94a8e3b657e960ae53222fd45e250b2984905f3e223173069247 days 21 hrs ago0x3bf541f87056d134e0109be1be92978b26cb09e0  Contract Creation0 Ether
[ Download CSV Export  ] 
Contract Name: MelonToken
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.8;

/// @title Assertive contract
/// @author Melonport AG <team@melonport.com>
/// @notice Asserts function
contract Assertive {

  function assert(bool assertion) internal {
      if (!assertion) throw;
  }

}

/// @title Overflow aware uint math functions.
/// @author Melonport AG <team@melonport.com>
/// @notice Inspired by https://github.com/MakerDAO/maker-otc/blob/master/contracts/simple_market.sol
contract SafeMath is Assertive{

    function safeMul(uint a, uint b) internal returns (uint) {
        uint c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function safeSub(uint a, uint b) internal returns (uint) {
        assert(b <= a);
        return a - b;
    }

    function safeAdd(uint a, uint b) internal returns (uint) {
        uint c = a + b;
        assert(c>=a && c>=b);
        return c;
    }

}

/// @title ERC20 Token Protocol
/// @author Melonport AG <team@melonport.com>
/// @notice See https://github.com/ethereum/EIPs/issues/20
contract ERC20Protocol {

    function totalSupply() constant returns (uint256 totalSupply) {}
    function balanceOf(address _owner) constant returns (uint256 balance) {}
    function transfer(address _to, uint256 _value) returns (bool success) {}
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}
    function approve(address _spender, uint256 _value) returns (bool success) {}
    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);

}

/// @title ERC20 Token
/// @author Melonport AG <team@melonport.com>
/// @notice Original taken from https://github.com/ethereum/EIPs/issues/20
/// @notice Checked against integer overflow
contract ERC20 is ERC20Protocol {

    function transfer(address _to, uint256 _value) returns (bool success) {
        if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
            balances[msg.sender] -= _value;
            balances[_to] += _value;
            Transfer(msg.sender, _to, _value);
            return true;
        } else { return false; }
    }

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

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

    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

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

    mapping (address => uint256) balances;

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

    uint256 public totalSupply;

}


/// @title Melon Token Contract
/// @author Melonport AG <team@melonport.com>
contract MelonToken is ERC20, SafeMath {

    // FIELDS

    // Constant token specific fields
    string public constant name = "Melon Token";
    string public constant symbol = "MLN";
    uint public constant decimals = 18;
    uint public constant THAWING_DURATION = 2 years; // Time needed for iced tokens to thaw into liquid tokens
    uint public constant MAX_TOTAL_TOKEN_AMOUNT_OFFERED_TO_PUBLIC = 1000000 * 10 ** decimals; // Max amount of tokens offered to the public
    uint public constant MAX_TOTAL_TOKEN_AMOUNT = 1250000 * 10 ** decimals; // Max amount of total tokens raised during all contributions (includes stakes of patrons)

    // Fields that are only changed in constructor
    address public minter; // Contribution contract(s)
    address public melonport; // Can change to other minting contribution contracts but only until total amount of token minted
    uint public startTime; // Contribution start time in seconds
    uint public endTime; // Contribution end time in seconds

    // Fields that can be changed by functions
    mapping (address => uint) lockedBalances;

    // MODIFIERS

    modifier only_minter {
        assert(msg.sender == minter);
        _;
    }

    modifier only_melonport {
        assert(msg.sender == melonport);
        _;
    }

    modifier is_later_than(uint x) {
        assert(now > x);
        _;
    }

    modifier max_total_token_amount_not_reached(uint amount) {
        assert(safeAdd(totalSupply, amount) <= MAX_TOTAL_TOKEN_AMOUNT);
        _;
    }

    // CONSTANT METHODS

    function lockedBalanceOf(address _owner) constant returns (uint balance) {
        return lockedBalances[_owner];
    }

    // METHODS

    /// Pre: All fields, except { minter, melonport, startTime, endTime } are valid
    /// Post: All fields, including { minter, melonport, startTime, endTime } are valid
    function MelonToken(address setMinter, address setMelonport, uint setStartTime, uint setEndTime) {
        minter = setMinter;
        melonport = setMelonport;
        startTime = setStartTime;
        endTime = setEndTime;
    }

    /// Pre: Address of contribution contract (minter) is set
    /// Post: Mints token into tradeable tranche
    function mintLiquidToken(address recipient, uint amount)
        external
        only_minter
        max_total_token_amount_not_reached(amount)
    {
        balances[recipient] = safeAdd(balances[recipient], amount);
        totalSupply = safeAdd(totalSupply, amount);
    }

    /// Pre: Address of contribution contract (minter) is set
    /// Post: Mints Token into iced tranche. Become liquid after completion of the melonproject or two years.
    function mintIcedToken(address recipient, uint amount)
        external
        only_minter
        max_total_token_amount_not_reached(amount)
    {
        lockedBalances[recipient] = safeAdd(lockedBalances[recipient], amount);
        totalSupply = safeAdd(totalSupply, amount);
    }

    /// Pre: Thawing period has passed - iced funds have turned into liquid ones
    /// Post: All funds available for trade
    function unlockBalance(address recipient)
        is_later_than(endTime + THAWING_DURATION)
    {
        balances[recipient] = safeAdd(balances[recipient], lockedBalances[recipient]);
        lockedBalances[recipient] = 0;
    }

    /// Pre: Prevent transfers until contribution period is over.
    /// Post: Transfer MLN from msg.sender
    /// Note: ERC20 interface
    function transfer(address recipient, uint amount)
        is_later_than(endTime)
        returns (bool success)
    {
        return super.transfer(recipient, amount);
    }

    /// Pre: Prevent transfers until contribution period is over.
    /// Post: Transfer MLN from arbitrary address
    /// Note: ERC20 interface
    function transferFrom(address sender, address recipient, uint amount)
        is_later_than(endTime)
        returns (bool success)
    {
        return super.transferFrom(sender, recipient, amount);
    }

    /// Pre: Melonport address is set. Restricted to melonport.
    /// Post: New minter can now create tokens up to MAX_TOTAL_TOKEN_AMOUNT.
    /// Note: This allows additional contribution periods at a later stage, while still using the same ERC20 compliant contract.
    function changeMintingAddress(address newAddress) only_melonport { minter = newAddress; }

    /// Pre: Melonport address is set. Restricted to melonport.
    /// Post: New address set. This address controls the setting of the minter address
    function changeMelonportAddress(address newAddress) only_melonport { melonport = newAddress; }
}


/// @title Contribution Contract
/// @author Melonport AG <team@melonport.com>
/// @notice This follows Condition-Orientated Programming as outlined here:
/// @notice   https://medium.com/@gavofyork/condition-orientated-programming-969f6ba0161a#.saav3bvva
contract Contribution is SafeMath {

    // FIELDS

    // Constant fields
    uint public constant ETHER_CAP = 227000 ether; // Max amount raised during first contribution; targeted amount CHF 2.5MN
    uint public constant MAX_CONTRIBUTION_DURATION = 4 weeks; // Max amount in seconds of contribution period
    uint public constant BTCS_ETHER_CAP = ETHER_CAP * 25 / 100; // Max melon token allocation for btcs before contribution period starts
    // Price Rates
    uint public constant PRICE_RATE_FIRST = 2200; // Four price tiers, each valid for two weeks
    uint public constant PRICE_RATE_SECOND = 2150;
    uint public constant PRICE_RATE_THIRD = 2100;
    uint public constant PRICE_RATE_FOURTH = 2050;
    uint public constant DIVISOR_PRICE = 1000; // Price rates are divided by this number
    // Addresses of Patrons
    address public constant FOUNDER_ONE = 0x009beAE06B0c0C536ad1eA43D6f61DCCf0748B1f;
    address public constant FOUNDER_TWO = 0xB1EFca62C555b49E67363B48aE5b8Af3C7E3e656;
    address public constant EXT_COMPANY_ONE = 0x00779e0e4c6083cfd26dE77B4dbc107A7EbB99d2;
    address public constant EXT_COMPANY_TWO = 0x1F06B976136e94704D328D4d23aae7259AaC12a2;
    address public constant EXT_COMPANY_THREE = 0xDD91615Ea8De94bC48231c4ae9488891F1648dc5;
    address public constant ADVISOR_ONE = 0x0001126FC94AE0be2B685b8dE434a99B2552AAc3;
    address public constant ADVISOR_TWO = 0x4f2AF8d2614190Cc80c6E9772B0C367db8D9753C;
    address public constant ADVISOR_THREE = 0x715a70a7c7d76acc8d5874862e381c1940c19cce;
    address public constant ADVISOR_FOUR = 0x8615F13C12c24DFdca0ba32511E2861BE02b93b2;
    address public constant AMBASSADOR_ONE = 0xd3841FB80CE408ca7d0b41D72aA91CA74652AF47;
    address public constant AMBASSADOR_TWO = 0xDb775577538018a689E4Ad2e8eb5a7Ae7c34722B;
    address public constant AMBASSADOR_THREE = 0xaa967e0ce6A1Ff5F9c124D15AD0412F137C99767;
    address public constant AMBASSADOR_FOUR = 0x910B41a6568a645437bC286A5C733f3c501d8c88;
    address public constant AMBASSADOR_FIVE = 0xb1d16BFE840E66E3c81785551832aAACB4cf69f3;
    address public constant AMBASSADOR_SIX = 0x5F6ff16364BfEf546270325695B6e90cc89C497a;
    address public constant AMBASSADOR_SEVEN = 0x58656e8872B0d266c2acCD276cD23F4C0B5fEfb9;
    address public constant SPECIALIST_ONE = 0x8a815e818E617d1f93BE7477D179258aC2d25310;
    address public constant SPECIALIST_TWO = 0x1eba6702ba21cfc1f6c87c726364b60a5e444901;
    address public constant SPECIALIST_THREE = 0x82eae6c30ed9606e2b389ae65395648748c6a17f;
    // Stakes of Patrons
    uint public constant MELONPORT_COMPANY_STAKE = 1000; // 10% of all created melon token allocated to melonport company
    uint public constant FOUNDER_STAKE = 445; // 4.45% of all created melon token allocated to founder
    uint public constant EXT_COMPANY_STAKE_ONE = 150; // 1.5% of all created melon token allocated to external company
    uint public constant EXT_COMPANY_STAKE_TWO = 100; // 1% of all created melon token allocated to external company
    uint public constant EXT_COMPANY_STAKE_THREE = 50; // 0.5% of all created melon token allocated to external company
    uint public constant ADVISOR_STAKE_ONE = 150; // 1.5% of all created melon token allocated to advisor
    uint public constant ADVISOR_STAKE_TWO = 50; // 0.5% of all created melon token allocated to advisor
    uint public constant ADVISOR_STAKE_THREE = 25; // 0.25% of all created melon token allocated to advisor
    uint public constant ADVISOR_STAKE_FOUR = 10; // 0.1% of all created melon token allocated to advisor
    uint public constant AMBASSADOR_STAKE = 5; // 0.05% of all created melon token allocated to ambassadors
    uint public constant SPECIALIST_STAKE_ONE = 25; // 0.25% of all created melon token allocated to specialist
    uint public constant SPECIALIST_STAKE_TWO = 10; // 0.1% of all created melon token allocated to specialist
    uint public constant SPECIALIST_STAKE_THREE = 5; // 0.05% of all created melon token allocated to specialist
    uint public constant DIVISOR_STAKE = 10000; // Stakes are divided by this number; Results to one basis point

    // Fields that are only changed in constructor
    address public melonport; // All deposited ETH will be instantly forwarded to this address.
    address public btcs; // Bitcoin Suisse address for their allocation option
    address public signer; // Signer address as on https://contribution.melonport.com
    uint public startTime; // Contribution start time in seconds
    uint public endTime; // Contribution end time in seconds
    MelonToken public melonToken; // Contract of the ERC20 compliant melon token

    // Fields that can be changed by functions
    uint public etherRaised; // This will keep track of the Ether raised during the contribution
    bool public halted; // The melonport address can set this to true to halt the contribution due to an emergency

    // EVENTS

    event TokensBought(address indexed sender, uint eth, uint amount);

    // MODIFIERS

    modifier is_signer_signature(uint8 v, bytes32 r, bytes32 s) {
        bytes32 hash = sha256(msg.sender);
        assert(ecrecover(hash, v, r, s) == signer);
        _;
    }

    modifier only_melonport {
        assert(msg.sender == melonport);
        _;
    }

    modifier only_btcs {
        assert(msg.sender == btcs);
        _;
    }

    modifier is_not_halted {
        assert(!halted);
        _;
    }

    modifier ether_cap_not_reached {
        assert(safeAdd(etherRaised, msg.value) <= ETHER_CAP);
        _;
    }

    modifier btcs_ether_cap_not_reached {
        assert(safeAdd(etherRaised, msg.value) <= BTCS_ETHER_CAP);
        _;
    }

    modifier is_not_earlier_than(uint x) {
        assert(now >= x);
        _;
    }

    modifier is_earlier_than(uint x) {
        assert(now < x);
        _;
    }

    // CONSTANT METHODS

    /// Pre: startTime, endTime specified in constructor,
    /// Post: Price rate at given blockTime; One ether equals priceRate() / DIVISOR_PRICE of melon tokens
    function priceRate() constant returns (uint) {
        // Four price tiers
        if (startTime <= now && now < startTime + 1 weeks)
            return PRICE_RATE_FIRST;
        if (startTime + 1 weeks <= now && now < startTime + 2 weeks)
            return PRICE_RATE_SECOND;
        if (startTime + 2 weeks <= now && now < startTime + 3 weeks)
            return PRICE_RATE_THIRD;
        if (startTime + 3 weeks <= now && now < endTime)
            return PRICE_RATE_FOURTH;
        // Should not be called before or after contribution period
        assert(false);
    }

    // NON-CONSTANT METHODS

    /// Pre: All fields, except { melonport, btcs, signer, startTime } are valid
    /// Post: All fields, including { melonport, btcs, signer, startTime } are valid
    function Contribution(address setMelonport, address setBTCS, address setSigner, uint setStartTime) {
        melonport = setMelonport;
        btcs = setBTCS;
        signer = setSigner;
        startTime = setStartTime;
        endTime = startTime + MAX_CONTRIBUTION_DURATION;
        melonToken = new MelonToken(this, melonport, startTime, endTime); // Create Melon Token Contract
        var maxTotalTokenAmountOfferedToPublic = melonToken.MAX_TOTAL_TOKEN_AMOUNT_OFFERED_TO_PUBLIC();
        uint stakeMultiplier = maxTotalTokenAmountOfferedToPublic / DIVISOR_STAKE;
        // Mint liquid tokens for melonport company, liquid means tradeale
        melonToken.mintLiquidToken(melonport,       MELONPORT_COMPANY_STAKE * stakeMultiplier);
        // Mint iced tokens that are unable to trade for two years and allocate according to relevant stakes
        melonToken.mintIcedToken(FOUNDER_ONE,       FOUNDER_STAKE *           stakeMultiplier);
        melonToken.mintIcedToken(FOUNDER_TWO,       FOUNDER_STAKE *           stakeMultiplier);
        melonToken.mintIcedToken(EXT_COMPANY_ONE,   EXT_COMPANY_STAKE_ONE *   stakeMultiplier);
        melonToken.mintIcedToken(EXT_COMPANY_TWO,   EXT_COMPANY_STAKE_TWO *   stakeMultiplier);
        melonToken.mintIcedToken(EXT_COMPANY_THREE, EXT_COMPANY_STAKE_THREE * stakeMultiplier);
        melonToken.mintIcedToken(ADVISOR_ONE,       ADVISOR_STAKE_ONE *       stakeMultiplier);
        melonToken.mintIcedToken(ADVISOR_TWO,       ADVISOR_STAKE_TWO *       stakeMultiplier);
        melonToken.mintIcedToken(ADVISOR_THREE,     ADVISOR_STAKE_THREE *     stakeMultiplier);
        melonToken.mintIcedToken(ADVISOR_FOUR,      ADVISOR_STAKE_FOUR *      stakeMultiplier);
        melonToken.mintIcedToken(AMBASSADOR_ONE,    AMBASSADOR_STAKE *        stakeMultiplier);
        melonToken.mintIcedToken(AMBASSADOR_TWO,    AMBASSADOR_STAKE *        stakeMultiplier);
        melonToken.mintIcedToken(AMBASSADOR_THREE,  AMBASSADOR_STAKE *        stakeMultiplier);
        melonToken.mintIcedToken(AMBASSADOR_FOUR,   AMBASSADOR_STAKE *        stakeMultiplier);
        melonToken.mintIcedToken(AMBASSADOR_FIVE,   AMBASSADOR_STAKE *        stakeMultiplier);
        melonToken.mintIcedToken(AMBASSADOR_SIX,    AMBASSADOR_STAKE *        stakeMultiplier);
        melonToken.mintIcedToken(AMBASSADOR_SEVEN,  AMBASSADOR_STAKE *        stakeMultiplier);
        melonToken.mintIcedToken(SPECIALIST_ONE,    SPECIALIST_STAKE_ONE *    stakeMultiplier);
        melonToken.mintIcedToken(SPECIALIST_TWO,    SPECIALIST_STAKE_TWO *    stakeMultiplier);
        melonToken.mintIcedToken(SPECIALIST_THREE,  SPECIALIST_STAKE_THREE *  stakeMultiplier);
    }

    /// Pre: Valid signature received from https://contribution.melonport.com
    /// Post: Bought melon tokens according to priceRate() and msg.value
    function buy(uint8 v, bytes32 r, bytes32 s) payable { buyRecipient(msg.sender, v, r, s); }

    /// Pre: Valid signature received from https://contribution.melonport.com
    /// Post: Bought melon tokens according to priceRate() and msg.value on behalf of recipient
    function buyRecipient(address recipient, uint8 v, bytes32 r, bytes32 s)
        payable
        is_signer_signature(v, r, s)
        is_not_earlier_than(startTime)
        is_earlier_than(endTime)
        is_not_halted
        ether_cap_not_reached
    {
        uint amount = safeMul(msg.value, priceRate()) / DIVISOR_PRICE;
        melonToken.mintLiquidToken(recipient, amount);
        etherRaised = safeAdd(etherRaised, msg.value);
        assert(melonport.send(msg.value));
        TokensBought(recipient, msg.value, amount);
    }

    /// Pre: BTCS before contribution period, BTCS has exclusive right to buy up to 25% of all melon tokens
    /// Post: Bought melon tokens according to PRICE_RATE_FIRST and msg.value on behalf of recipient
    function btcsBuyRecipient(address recipient)
        payable
        only_btcs
        is_earlier_than(startTime)
        is_not_halted
        btcs_ether_cap_not_reached
    {
        uint amount = safeMul(msg.value, PRICE_RATE_FIRST) / DIVISOR_PRICE;
        melonToken.mintLiquidToken(recipient, amount);
        etherRaised = safeAdd(etherRaised, msg.value);
        assert(melonport.send(msg.value));
        TokensBought(recipient, msg.value, amount);
    }

    /// Pre: Emergency situation that requires contribution period to stop.
    /// Post: Contributing not possible anymore.
    function halt() only_melonport { halted = true; }

    /// Pre: Emergency situation resolved.
    /// Post: Contributing becomes possible again withing the outlined restrictions.
    function unhalt() only_melonport { halted = false; }

    /// Pre: Restricted to melonport.
    /// Post: New address set. To halt contribution and/or change minter in MelonToken contract.
    function changeMelonportAddress(address newAddress) only_melonport { melonport = newAddress; }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minter","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newAddress","type":"address"}],"name":"changeMelonportAddress","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","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":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOTAL_TOKEN_AMOUNT_OFFERED_TO_PUBLIC","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newAddress","type":"address"}],"name":"changeMintingAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockedBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"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":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"mintIcedToken","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"mintLiquidToken","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOTAL_TOKEN_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"unlockBalance","outputs":[],"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"},{"constant":true,"inputs":[],"name":"melonport","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"THAWING_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"setMinter","type":"address"},{"name":"setMelonport","type":"address"},{"name":"setStartTime","type":"uint256"},{"name":"setEndTime","type":"uint256"}],"payable":false,"type":"constructor"},{"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
60606040523461000057604051608080610bb983398101604090815281516020830151918301516060909301519092905b60038054600160a060020a03808716600160a060020a0319928316179092556004805492861692909116919091179055600582905560068190555b505050505b610b3a8061007f6000396000f3006060604052361561010c5763ffffffff60e060020a60003504166306fdde038114610111578063075461721461019e578063095ea7b3146101c757806318160ddd146101f7578063201453281461021657806323b872dd14610231578063313ce567146102675780633197cbb614610286578063336da059146102a557806351892f07146102c457806359355736146102df57806370a082311461030a57806378e979251461033557806381597d0c146103545780638cae711f1461037257806395d89b4114610390578063a89c5be01461041d578063a9059cbb1461043c578063ce7a60ab1461046c578063dd62ed3e14610487578063fd222745146104b8578063fdee5c22146104e1575b610000565b346100005761011e610500565b604080516020808252835181830152835191928392908301918501908083838215610164575b80518252602083111561016457601f199092019160209182019101610144565b505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576101ab610537565b60408051600160a060020a039092168252519081900360200190f35b34610000576101e3600160a060020a0360043516602435610546565b604080519115158252519081900360200190f35b34610000576102046105b1565b60408051918252519081900360200190f35b346100005761022f600160a060020a03600435166105b7565b005b34610000576101e3600160a060020a03600435811690602435166044356105ff565b604080519115158252519081900360200190f35b3461000057610204610626565b60408051918252519081900360200190f35b346100005761020461062b565b60408051918252519081900360200190f35b3461000057610204610631565b60408051918252519081900360200190f35b346100005761022f600160a060020a036004351661063f565b005b3461000057610204600160a060020a0360043516610687565b60408051918252519081900360200190f35b3461000057610204600160a060020a03600435166106a6565b60408051918252519081900360200190f35b34610000576102046106c5565b60408051918252519081900360200190f35b346100005761022f600160a060020a03600435166024356106cb565b005b346100005761022f600160a060020a036004351660243561075b565b005b346100005761011e6107eb565b604080516020808252835181830152835191928392908301918501908083838215610164575b80518252602083111561016457601f199092019160209182019101610144565b505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610204610822565b60408051918252519081900360200190f35b34610000576101e3600160a060020a0360043516602435610831565b604080519115158252519081900360200190f35b346100005761022f600160a060020a0360043516610856565b005b3461000057610204600160a060020a03600435811690602435166108c2565b60408051918252519081900360200190f35b34610000576101ab6108ef565b60408051600160a060020a039092168252519081900360200190f35b34610000576102046108fe565b60408051918252519081900360200190f35b60408051808201909152600b81527f4d656c6f6e20546f6b656e000000000000000000000000000000000000000000602082015281565b600354600160a060020a031681565b600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60025481565b6004546105d29033600160a060020a03908116911614610906565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600060065461060f814211610906565b61061a858585610916565b91505b5b509392505050565b601281565b60065481565b69d3c21bcecceda100000081565b60045461065a9033600160a060020a03908116911614610906565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0381166000908152600760205260409020545b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60055481565b6003546106e69033600160a060020a03908116911614610906565b806107076012600a0a621312d00261070060025484610a23565b1115610906565b600160a060020a03831660009081526007602052604090205461072a9083610a23565b600160a060020a0384166000908152600760205260409020556002546107509083610a23565b6002555b5b505b5050565b6003546107769033600160a060020a03908116911614610906565b806107976012600a0a621312d00261070060025484610a23565b1115610906565b600160a060020a0383166000908152602081905260409020546107ba9083610a23565b600160a060020a0384166000908152602081905260409020556002546107509083610a23565b6002555b5b505b5050565b60408051808201909152600381527f4d4c4e0000000000000000000000000000000000000000000000000000000000602082015281565b6a0108b2a2c280290940000081565b6000600654610841814211610906565b61084b8484610a4b565b91505b5b5092915050565b6303c267006006540161086a814211610906565b600160a060020a038216600090815260208181526040808320546007909252909120546108979190610a23565b600160a060020a0383166000908152602081815260408083209390935560079052908120555b5b5050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600454600160a060020a031681565b6303c2670081565b8015156105fb57610000565b5b50565b600160a060020a0383166000908152602081905260408120548290108015906109665750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b801561098b5750600160a060020a038316600090815260208190526040902054828101115b15610a1757600160a060020a0380841660008181526020818152604080832080548801905588851680845281842080548990039055600183528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610a1b565b5060005b5b9392505050565b6000828201610a40848210801590610a3b5750838210155b610906565b8091505b5092915050565b600160a060020a033316600090815260208190526040812054829010801590610a8d5750600160a060020a038316600090815260208190526040902054828101115b15610aff57600160a060020a0333811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060016105ab565b5060006105ab565b5b929150505600a165627a7a7230582031ad327722684ad0754a3abefefa220e61d836c0a4f14bcb989ebd3a29f86d2500290000000000000000000000003bf541f87056d134e0109be1be92978b26cb09e000000000000000000000000000ec6379d7186193983e90ba58d3cf169f7e4af30000000000000000000000000000000000000000000000000000000058a434b00000000000000000000000000000000000000000000000000000000058c91eb0

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

-----Decoded View---------------
Found 4 constructor arguments :
Arg [0] : 0000000000000000000000003bf541f87056d134e0109be1be92978b26cb09e0
Arg [1] : 00000000000000000000000000ec6379d7186193983e90ba58d3cf169f7e4af3
Arg [2] : 0000000000000000000000000000000000000000000000000000000058a434b0
Arg [3] : 0000000000000000000000000000000000000000000000000000000058c91eb0


   Swarm Source:
bzzr://31ad327722684ad0754a3abefefa220e61d836c0a4f14bcb989ebd3a29f86d25
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.