More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 29,814 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21207247 | 12 days ago | IN | 0 ETH | 0.00028917 | ||||
Approve | 21207217 | 12 days ago | IN | 0 ETH | 0.00041259 | ||||
Transfer | 21169472 | 18 days ago | IN | 0 ETH | 0.00131249 | ||||
Transfer | 20907595 | 54 days ago | IN | 0 ETH | 0.00114189 | ||||
Approve | 20907306 | 54 days ago | IN | 0 ETH | 0.00095984 | ||||
Approve | 20570425 | 101 days ago | IN | 0 ETH | 0.00033894 | ||||
Approve | 20380205 | 128 days ago | IN | 0 ETH | 0.00045511 | ||||
Transfer | 20188132 | 155 days ago | IN | 0 ETH | 0.00030938 | ||||
Transfer | 20093508 | 168 days ago | IN | 0 ETH | 0.00020295 | ||||
Transfer | 20027190 | 177 days ago | IN | 0 ETH | 0.00141544 | ||||
Approve | 19957386 | 187 days ago | IN | 0 ETH | 0.00009827 | ||||
Transfer | 19595725 | 237 days ago | IN | 0 ETH | 0.00067384 | ||||
Transfer | 19412560 | 263 days ago | IN | 0 ETH | 0.00445645 | ||||
Transfer | 19257462 | 285 days ago | IN | 0 ETH | 0.00108904 | ||||
Approve | 18893865 | 336 days ago | IN | 0 ETH | 0.00088721 | ||||
Transfer | 18893780 | 336 days ago | IN | 0 ETH | 0.00096393 | ||||
Approve | 18868348 | 339 days ago | IN | 0 ETH | 0.00055417 | ||||
Transfer | 18692055 | 364 days ago | IN | 0 ETH | 0.00197169 | ||||
Approve | 18590556 | 378 days ago | IN | 0 ETH | 0.00133924 | ||||
Transfer | 17570490 | 521 days ago | IN | 0 ETH | 0.00057979 | ||||
Approve | 17332709 | 555 days ago | IN | 0 ETH | 0.00120466 | ||||
Transfer | 17311611 | 558 days ago | IN | 0 ETH | 0.00134704 | ||||
Approve | 17295473 | 560 days ago | IN | 0 ETH | 0.00218384 | ||||
Transfer | 16790772 | 631 days ago | IN | 0 ETH | 0.00135487 | ||||
Approve | 16673921 | 648 days ago | IN | 0 ETH | 0.0012877 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
3173069 | 2847 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
MelonToken
Compiler Version
v0.4.8+commit.60cc1668
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-02-13 */ 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 Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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
60606040523461000057604051608080610bb983398101604090815281516020830151918301516060909301519092905b60038054600160a060020a03808716600160a060020a0319928316179092556004805492861692909116919091179055600582905560068190555b505050505b610b3a8061007f6000396000f3006060604052361561010c5763ffffffff60e060020a60003504166306fdde038114610111578063075461721461019e578063095ea7b3146101c757806318160ddd146101f7578063201453281461021657806323b872dd14610231578063313ce567146102675780633197cbb614610286578063336da059146102a557806351892f07146102c457806359355736146102df57806370a082311461030a57806378e979251461033557806381597d0c146103545780638cae711f1461037257806395d89b4114610390578063a89c5be01461041d578063a9059cbb1461043c578063ce7a60ab1461046c578063dd62ed3e14610487578063fd222745146104b8578063fdee5c22146104e1575b610000565b346100005761011e610500565b604080516020808252835181830152835191928392908301918501908083838215610164575b80518252602083111561016457601f199092019160209182019101610144565b505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576101ab610537565b60408051600160a060020a039092168252519081900360200190f35b34610000576101e3600160a060020a0360043516602435610546565b604080519115158252519081900360200190f35b34610000576102046105b1565b60408051918252519081900360200190f35b346100005761022f600160a060020a03600435166105b7565b005b34610000576101e3600160a060020a03600435811690602435166044356105ff565b604080519115158252519081900360200190f35b3461000057610204610626565b60408051918252519081900360200190f35b346100005761020461062b565b60408051918252519081900360200190f35b3461000057610204610631565b60408051918252519081900360200190f35b346100005761022f600160a060020a036004351661063f565b005b3461000057610204600160a060020a0360043516610687565b60408051918252519081900360200190f35b3461000057610204600160a060020a03600435166106a6565b60408051918252519081900360200190f35b34610000576102046106c5565b60408051918252519081900360200190f35b346100005761022f600160a060020a03600435166024356106cb565b005b346100005761022f600160a060020a036004351660243561075b565b005b346100005761011e6107eb565b604080516020808252835181830152835191928392908301918501908083838215610164575b80518252602083111561016457601f199092019160209182019101610144565b505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610204610822565b60408051918252519081900360200190f35b34610000576101e3600160a060020a0360043516602435610831565b604080519115158252519081900360200190f35b346100005761022f600160a060020a0360043516610856565b005b3461000057610204600160a060020a03600435811690602435166108c2565b60408051918252519081900360200190f35b34610000576101ab6108ef565b60408051600160a060020a039092168252519081900360200190f35b34610000576102046108fe565b60408051918252519081900360200190f35b60408051808201909152600b81527f4d656c6f6e20546f6b656e000000000000000000000000000000000000000000602082015281565b600354600160a060020a031681565b600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60025481565b6004546105d29033600160a060020a03908116911614610906565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600060065461060f814211610906565b61061a858585610916565b91505b5b509392505050565b601281565b60065481565b69d3c21bcecceda100000081565b60045461065a9033600160a060020a03908116911614610906565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0381166000908152600760205260409020545b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60055481565b6003546106e69033600160a060020a03908116911614610906565b806107076012600a0a621312d00261070060025484610a23565b1115610906565b600160a060020a03831660009081526007602052604090205461072a9083610a23565b600160a060020a0384166000908152600760205260409020556002546107509083610a23565b6002555b5b505b5050565b6003546107769033600160a060020a03908116911614610906565b806107976012600a0a621312d00261070060025484610a23565b1115610906565b600160a060020a0383166000908152602081905260409020546107ba9083610a23565b600160a060020a0384166000908152602081905260409020556002546107509083610a23565b6002555b5b505b5050565b60408051808201909152600381527f4d4c4e0000000000000000000000000000000000000000000000000000000000602082015281565b6a0108b2a2c280290940000081565b6000600654610841814211610906565b61084b8484610a4b565b91505b5b5092915050565b6303c267006006540161086a814211610906565b600160a060020a038216600090815260208181526040808320546007909252909120546108979190610a23565b600160a060020a0383166000908152602081815260408083209390935560079052908120555b5b5050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600454600160a060020a031681565b6303c2670081565b8015156105fb57610000565b5b50565b600160a060020a0383166000908152602081905260408120548290108015906109665750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b801561098b5750600160a060020a038316600090815260208190526040902054828101115b15610a1757600160a060020a0380841660008181526020818152604080832080548801905588851680845281842080548990039055600183528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610a1b565b5060005b5b9392505050565b6000828201610a40848210801590610a3b5750838210155b610906565b8091505b5092915050565b600160a060020a033316600090815260208190526040812054829010801590610a8d5750600160a060020a038316600090815260208190526040902054828101115b15610aff57600160a060020a0333811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060016105ab565b5060006105ab565b5b929150505600a165627a7a7230582031ad327722684ad0754a3abefefa220e61d836c0a4f14bcb989ebd3a29f86d2500290000000000000000000000003bf541f87056d134e0109be1be92978b26cb09e000000000000000000000000000ec6379d7186193983e90ba58d3cf169f7e4af30000000000000000000000000000000000000000000000000000000058a434b00000000000000000000000000000000000000000000000000000000058c91eb0
Deployed Bytecode
0x6060604052361561010c5763ffffffff60e060020a60003504166306fdde038114610111578063075461721461019e578063095ea7b3146101c757806318160ddd146101f7578063201453281461021657806323b872dd14610231578063313ce567146102675780633197cbb614610286578063336da059146102a557806351892f07146102c457806359355736146102df57806370a082311461030a57806378e979251461033557806381597d0c146103545780638cae711f1461037257806395d89b4114610390578063a89c5be01461041d578063a9059cbb1461043c578063ce7a60ab1461046c578063dd62ed3e14610487578063fd222745146104b8578063fdee5c22146104e1575b610000565b346100005761011e610500565b604080516020808252835181830152835191928392908301918501908083838215610164575b80518252602083111561016457601f199092019160209182019101610144565b505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576101ab610537565b60408051600160a060020a039092168252519081900360200190f35b34610000576101e3600160a060020a0360043516602435610546565b604080519115158252519081900360200190f35b34610000576102046105b1565b60408051918252519081900360200190f35b346100005761022f600160a060020a03600435166105b7565b005b34610000576101e3600160a060020a03600435811690602435166044356105ff565b604080519115158252519081900360200190f35b3461000057610204610626565b60408051918252519081900360200190f35b346100005761020461062b565b60408051918252519081900360200190f35b3461000057610204610631565b60408051918252519081900360200190f35b346100005761022f600160a060020a036004351661063f565b005b3461000057610204600160a060020a0360043516610687565b60408051918252519081900360200190f35b3461000057610204600160a060020a03600435166106a6565b60408051918252519081900360200190f35b34610000576102046106c5565b60408051918252519081900360200190f35b346100005761022f600160a060020a03600435166024356106cb565b005b346100005761022f600160a060020a036004351660243561075b565b005b346100005761011e6107eb565b604080516020808252835181830152835191928392908301918501908083838215610164575b80518252602083111561016457601f199092019160209182019101610144565b505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610204610822565b60408051918252519081900360200190f35b34610000576101e3600160a060020a0360043516602435610831565b604080519115158252519081900360200190f35b346100005761022f600160a060020a0360043516610856565b005b3461000057610204600160a060020a03600435811690602435166108c2565b60408051918252519081900360200190f35b34610000576101ab6108ef565b60408051600160a060020a039092168252519081900360200190f35b34610000576102046108fe565b60408051918252519081900360200190f35b60408051808201909152600b81527f4d656c6f6e20546f6b656e000000000000000000000000000000000000000000602082015281565b600354600160a060020a031681565b600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60025481565b6004546105d29033600160a060020a03908116911614610906565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600060065461060f814211610906565b61061a858585610916565b91505b5b509392505050565b601281565b60065481565b69d3c21bcecceda100000081565b60045461065a9033600160a060020a03908116911614610906565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0381166000908152600760205260409020545b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60055481565b6003546106e69033600160a060020a03908116911614610906565b806107076012600a0a621312d00261070060025484610a23565b1115610906565b600160a060020a03831660009081526007602052604090205461072a9083610a23565b600160a060020a0384166000908152600760205260409020556002546107509083610a23565b6002555b5b505b5050565b6003546107769033600160a060020a03908116911614610906565b806107976012600a0a621312d00261070060025484610a23565b1115610906565b600160a060020a0383166000908152602081905260409020546107ba9083610a23565b600160a060020a0384166000908152602081905260409020556002546107509083610a23565b6002555b5b505b5050565b60408051808201909152600381527f4d4c4e0000000000000000000000000000000000000000000000000000000000602082015281565b6a0108b2a2c280290940000081565b6000600654610841814211610906565b61084b8484610a4b565b91505b5b5092915050565b6303c267006006540161086a814211610906565b600160a060020a038216600090815260208181526040808320546007909252909120546108979190610a23565b600160a060020a0383166000908152602081815260408083209390935560079052908120555b5b5050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600454600160a060020a031681565b6303c2670081565b8015156105fb57610000565b5b50565b600160a060020a0383166000908152602081905260408120548290108015906109665750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b801561098b5750600160a060020a038316600090815260208190526040902054828101115b15610a1757600160a060020a0380841660008181526020818152604080832080548801905588851680845281842080548990039055600183528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610a1b565b5060005b5b9392505050565b6000828201610a40848210801590610a3b5750838210155b610906565b8091505b5092915050565b600160a060020a033316600090815260208190526040812054829010801590610a8d5750600160a060020a038316600090815260208190526040902054828101115b15610aff57600160a060020a0333811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060016105ab565b5060006105ab565b5b929150505600a165627a7a7230582031ad327722684ad0754a3abefefa220e61d836c0a4f14bcb989ebd3a29f86d250029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003bf541f87056d134e0109be1be92978b26cb09e000000000000000000000000000ec6379d7186193983e90ba58d3cf169f7e4af30000000000000000000000000000000000000000000000000000000058a434b00000000000000000000000000000000000000000000000000000000058c91eb0
-----Decoded View---------------
Arg [0] : setMinter (address): 0x3BF541f87056D134E0109BE1Be92978b26Cb09e0
Arg [1] : setMelonport (address): 0x00Ec6379D7186193983e90bA58d3cF169F7e4Af3
Arg [2] : setStartTime (uint256): 1487156400
Arg [3] : setEndTime (uint256): 1489575600
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000003bf541f87056d134e0109be1be92978b26cb09e0
Arg [1] : 00000000000000000000000000ec6379d7186193983e90ba58d3cf169f7e4af3
Arg [2] : 0000000000000000000000000000000000000000000000000000000058a434b0
Arg [3] : 0000000000000000000000000000000000000000000000000000000058c91eb0
Swarm Source
bzzr://31ad327722684ad0754a3abefefa220e61d836c0a4f14bcb989ebd3a29f86d25
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.