Sponsored Link:   trade.io - The Future of Crypto Trading - A Better, Faster, Smarter Crypto Exchange - Pre-Register Now!
 Latest 25 txns from a total Of 24077 transactions

TxHash Age From To Value [TxFee]
0x890afaca5342219743cb5a617d65260b8f98e3a299180d8310697f9adf4f200346 mins ago0x0d580ae50b58fe08514deab4e38c0dfdb0d30adc  IN   MelonToken0 Ether0.0006294
0x9480d42e8a4f9e645f491e51864219f9578eccf7840fc77388f2ae10a6d4f89b48 mins agoliqui.io_Erc20  IN   MelonToken0 Ether0.000577654
0x8b14ee5d26d216d084f5c1f9632bd6001129e9c61fc07b85b1c4b6d213fcb1ad50 mins ago0x0d580ae50b58fe08514deab4e38c0dfdb0d30adc  IN   MelonToken0 Ether0.0006294
0xf46774ea39d3bfd201eef3f02a533affe05514db9e64e3f36df3a11bfc7b4b602 hrs 30 mins ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0007246932
0x20fb60c70bea534ae9f5b9ecbd83387cd3790661c282d3d4f8e3ca161b9977053 hrs 16 mins ago0x00ec6379d7186193983e90ba58d3cf169f7e4af3  IN   MelonToken0 Ether0.00107115
0x77a92740f31e2d52c06e9c9f449f18cde125c674921810f5ffc0599517c843c03 hrs 23 mins ago0x00ec6379d7186193983e90ba58d3cf169f7e4af3  IN   MelonToken0 Ether0.00106731
0xb5089539e603e477843d4bb845f12dae51738e8628c066a23879adfa3ececb234 hrs 45 mins agoliqui.io_Erc20  IN   MelonToken0 Ether0.00085492792
0x544e8c1c98c157e787f3ec32c46c34755f3a388c4b3c914a9b4b1574f812e4735 hrs 22 mins ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0007765398
0x5877921ea3380bf4f8ff19fad93bc33e0cc568fb425b0c414b8275ccf5ff3f6d23 hrs agoBittrex  IN   MelonToken0 Ether0.005245
0xf00a4a06bec7f721ea625a94cc8625509af2ae3d4ca5a8412b909c04b43f870b1 day 3 hrs ago0xb3d4ea70715426ea081baddde32f79bee5b16ccd  IN   MelonToken0 Ether0.00011257
0x3a0311140a78ce62a80148001746eda255ee8931978d6eb2999867fd14dea78e1 day 4 hrs ago0x5d9720de2e4a10dcf3b64c51a2113b6c622c2c09  IN   MelonToken0 Ether0.00206327
0x5043a028ce2cc0a206eb14c510bdee22d8f180d3c177034501f0d49eb0590f801 day 13 hrs ago0xc6c4dbb0c7587d69ea90b2dfc2099919a31efcfe  IN   MelonToken0 Ether0.00022578
0xc42cffcc0c6ea8d2e8243f0d94cd6afd2d972b1b6ff1cbdee6447aa57fa25e341 day 13 hrs agoBittrex  IN   MelonToken0 Ether0.0052578
0x5ad8ad56d2a273bd3fbf8ea9289eaeec709d929d922d73447078636286c252b61 day 15 hrs ago0x7d2f9f48afc0f25a48be47d909d638ddc3af4a9e  IN   MelonToken0 Ether0.00011235
0x0262ef23a3ddca829c2bf3385dede432c02f200ea5028f320c0f6c293f9405261 day 19 hrs agoliqui.io_Erc20  IN   MelonToken0 Ether0.00052514
0x55962d2b7eed43a54c3a13811004464dbedaa1b984c7e7d608126768be2f8e582 days 10 hrs agoBittrex  IN   MelonToken0 Ether0.0037514
0xdf1f15c35c747c3f28c6c07a9f8afe5cadf0a971f2a56959113e0f3ab36a960f2 days 13 hrs ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0003015875
0x92a2ec55339438b86faedb8f6b25cf37dc98729d961052fcac7389d9a85daebc2 days 17 hrs ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.000603911
0x8e81891ac7cb1de599bbd7ea79d33e6dbe234b7782022e6f1332624a446fabbf2 days 17 hrs agoBittrex  IN   MelonToken0 Ether0.0052514
0x226d68decb9d9b336c414d08d92415fc79b91e5a83a05ff92f7e8a49844b90fe2 days 20 hrs ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0006651117
0x02a826a1b6c3e49c14639cac526d26546e82074b9c8d512e835e5fba84a73c9c2 days 20 hrs ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.0006634925
0xe5cf17bdf52e15a3bcb48d54cb85ed22531e76c4255ebc96d6797057160f591b2 days 21 hrs ago0xe990281107fe1955e1bf251100151ed83d8dfcaa  IN   MelonToken0 Ether0.00022514
0x9891fe5999ebf9552cc208382655b2525c7b20e4ec7b22a86bfd42d7ed49c3cd2 days 21 hrs ago0xd56b98fe204c467ae2acdd585f19601a9456790e  IN   MelonToken0 Ether0.0032519
0x1f43854fca7ae82e31328ebd9af13f44cbbf9851488cea0a763abbed47523ec32 days 21 hrs ago0xd56b98fe204c467ae2acdd585f19601a9456790e  IN   MelonToken0 Ether0.003255868
0xb1dcad6ac4cab5f4e64a900726a4e5bdacae1ac0b3659ebd5f40ff0c0613fd9f3 days 6 hrs ago0x1554aa0026292d03cfc8a2769df8dd4d169d590a  IN   MelonToken0 Ether0.00026316071
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0x024ee6228b799a5ce93ccc94a8e3b657e960ae53222fd45e250b2984905f3e223173069525 days 11 hrs ago0x3bf541f87056d134e0109be1be92978b26cb09e0  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
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.