Sponsored Link:  Up to 2% Cryptocurrency Cashback - Reserve your card - Monaco App - www.mona.co
Contract Overview | MelonToken
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 17097 txns
Token Tracker Melon
  Latest 25 txns from a total Of 17097 transactions View All

TxHash Age From To Value [TxFee]
0x1d90c258b01ad6eed84f4ed49c09192d55abb9796a307ff7436f72ce8ecf4d3234 mins ago0xc096fa39f931e81d3f72a82bd4c001014b468647  IN   MelonToken0 Ether0.00078645
0x23c7e82bec40c182b38731656ef2ba398a70039c833409eff9fb80226305da351 hr 3 mins ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0009075087
0x50f670e937e4ea7336f96c80b25e5c8bb07049e9c003a6556aed130d134c927c1 hr 58 mins ago0x94fe3ad91dacba8ec4b82f56ff7c122181f1535d  IN   MelonToken0 Ether0.000210056
0x5fa978302f63c7f2acd45b766f451bda4943fed41419955df8e2298eb0010d6d2 hrs 3 mins agoBittrex  IN   MelonToken0 Ether0.00267495
0xec35f3c5fe92f7c04057b4c6fed0af67f815e941e9e125413be394bdfe6a80cb5 hrs 5 mins agoBittrex  IN   MelonToken0 Ether0.001913214
0xd94af9f32e094ebcef26c5daa2966778145090176921967c86fd2f0207b7a4005 hrs 56 mins ago0x55697263bc82eefed7a8d451737d175cd7dbf4c8  IN   MelonToken0 Ether0.00037578
0x2f688db5e6447c9efe58e3b0e6aa9e0cfac244267eeafdb07253915dcf3b18da6 hrs 45 mins ago0x8b1c29c812e3e6ffd82b1fa0029a35bc1bd11fbf  IN   MelonToken0 Ether0.000472794
0x618ff100a443337ddaaf9ba326d5d9f840986e2774eab4d37a22e38e3dd6a3706 hrs 49 mins agoBittrex  IN   MelonToken0 Ether0.002678214
0xdeace2d5301c9154833414ac8688a9b80ed862ff408d683f20c3ed0d23db8bbf7 hrs 23 mins ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0009059631
0x35327a3990c2a54dc7cdd685e40f8bf30ca5685d654819c58ed8e7253a860a8d9 hrs 9 mins ago0x861f09e8376e3671caf399db00201d09fd7715bd  IN   MelonToken0 Ether0.00075028
0x7a55feab7ae3a4f3ca63dd210d1992b52a34e40031f1d656cee3dcacaf755e2a9 hrs 51 mins ago0x76a95d549ca36d955df2c72f693690d8e51a94d0  IN   MelonToken0 Ether0.000787794
0x6b05339d57f6d9091cdd1411cee144efeac9b5f69fa8a8ac902294e2f9b3d4c212 hrs 12 mins ago0x5504af69e1d9d9ae01c4c0078b5f584d3c4a1a79  IN   MelonToken0 Ether0.000620634
0xe446f53b1237fa982ad1beba45574779ede229f51690dd5d63aa746faeacc7a212 hrs 15 mins ago0x280c752c6db3ab8672546b5b8255b660b972bff5  IN   MelonToken0 Ether0.00180624
0x7fb63767ea5b4e48007448fd1e167b28959c689252bb03a13f05a1f5b6c867e912 hrs 20 mins ago0x3ba747c8632b5699d93cc510179df8c69b9bd225  IN   MelonToken0 Ether0.000960897
0x240f52721e08d67a6a2b5d7eea6f198d61609c17c635fd300780767b0413ff6512 hrs 47 mins ago0xb8f45914995a7f65a927265fee3a0cf922bd2580  IN   MelonToken0 Ether0.00075156
0x586af515838f61cca7f49d9857926d67c32aa273416bb75bcaf4805d9df6833513 hrs 57 mins ago0xc00b14c912ad51bf360ac2789523248e7c36e754  IN   MelonToken0 Ether0.00150056
0x6eeaed28f23f4275bef9748518ef07395a106b7b445bdea484e62d80db89554d14 hrs 14 mins ago0xc00b14c912ad51bf360ac2789523248e7c36e754  IN   MelonToken0 Ether0.002098
0x439817e5afd48e4dceb6cd144f4f3708646e0d15022ac97d6ae0aa7a93e1751814 hrs 26 mins ago0x5504af69e1d9d9ae01c4c0078b5f584d3c4a1a79  IN   MelonToken0 Ether0.001102794
0x2786db4127241d59e663aa24d343d9ed8c1effe66baa8c0a07c18eaf2547a01c14 hrs 36 mins agoBittrex  IN   MelonToken0 Ether0.001916478
0xfa829de47ae90aff2313f95af274d02d9efe28a39c7dc339fbcae974e4a35f2514 hrs 46 mins agoBittrex  IN   MelonToken0 Ether0.002671686
0x2339a3dcdee36cf8d087627225b91c1c28c3008ca400600c52a15db827ff951515 hrs 1 min ago0xcf593a66a980e94d6e433cae54bf3423d29d654b  IN   MelonToken0 Ether0.001418382
0x7423ce3cb4abb24522ddd818c00b09f04d5227a41894ed6cc9bdd92d79902e6f15 hrs 27 mins agoBittrex  IN   MelonToken0 Ether0.002681478
0x50c92e7dfa516049acc17d511c552d37cb93c1fd43ea3997d638e758c6cd899e15 hrs 47 mins agoBittrex  IN   MelonToken0 Ether0.002681478
0xac070eb3b01ceb73f8ae09f9a17abfaeadb0b572da05718812add99994a47fa315 hrs 57 mins agoBittrex  IN   MelonToken0 Ether0.002678214
0x66e1738f4eca5b55e246d6c31903ca9455f9213d48f1d3ae55db78b6cacc2fbb16 hrs 2 mins ago0xab2432a4de496b25693107e4b0ba60ee0be803ab  IN   MelonToken0 Ether0.001418382
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0x024ee6228b799a5ce93ccc94a8e3b657e960ae53222fd45e250b2984905f3e223173069308 days 16 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 <[email protected]>
/// @notice Asserts function
contract Assertive {

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

}

/// @title Overflow aware uint math functions.
/// @author Melonport AG <[email protected]>
/// @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 <[email protected]>
/// @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 <[email protected]>
/// @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 <[email protected]>
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 <[email protected]>
/// @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.