Contract 0x7c6f0F0BB581e479f72C31aBb6a89013cBBa5B7a

 

TxHash Block Age From To Value [TxFee]
0xe3ccde725146236e808ecd791648fa38a5f2b916df03a17be805477ecbd0b62e5349373327 days 9 hrs ago0x1387780788f8e42777075babdf7bf1c49515b130 IN  0x7c6f0f0bb581e479f72c31abb6a89013cbba5b7a0 Ether0.000138489
0xf2b5ec47917a9a53288fe5edd62935aafc58e23109b1cdef6625895c4431fe065348572327 days 12 hrs ago0xc834a1d5be8a80a6cce4b7874bebf87f2dd04ab4 IN  Contract Creation0 Ether0.001015757
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: Moneda
Compiler Version: v0.4.21+commit.dfe3193c
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity 0.4.21;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

contract Moneda {
    using SafeMath for uint256;
    
    string constant public standard = "ERC20";
    string constant public name = "Moneda Token";
    string constant public symbol = "MND";
    uint8 constant public decimals = 18;
    
    uint256 private _totalSupply = 400000000e18; // Total supply tokens 400mil
    uint256 constant public preICOLimit = 20000000e18; // Pre-ICO limit 5%, 20mil
    uint256 constant public icoLimit = 250000000e18; // ICO limit 62.5%, 250mil
    uint256 constant public companyReserve = 80000000e18; // Company Reserve 20%, 80mil
    uint256 constant public teamReserve = 40000000e18; // Team Reserve 10%, 40mil
    uint256 constant public giveawayReserve = 10000000e18; // referral and giving away 2.5%, 10mil

    uint256 public preICOEnds = 1525132799; // Monday, April 30, 2018 11:59:59 PM
    uint256 public icoStarts = 1526342400; // Tuesday, May 15, 2018 12:00:00 AM
    uint256 public icoEnds = 1531699199; // Sunday, July 15, 2018 11:59:59 PM
    
    uint256 constant public startTime = 1532822400; // Two weeks after ICO ends, Sunday, July 29, 2018 12:00:00 AM
    uint256 constant public teamCompanyLock = 1563148800; // One Year after ICO Ends, Reserve Tokens of company and team becomes transferable.  Monday, July 15, 2019 12:00:00 AM

    address public ownerAddr;
    address public companyAddr;
    address public giveawayAddr;
    bool public burned;

    // Array with all balances
    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) internal allowed;

    // Public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Burned(uint256 amount);
    
    // Initializes contract with initial supply tokens to the creator of the contract
    function Moneda(address _ownerAddr, address _companyAddr, address _giveawayAddr) public {
        ownerAddr = _ownerAddr;
        companyAddr = _companyAddr;
        giveawayAddr = _giveawayAddr;
        balances[ownerAddr] = _totalSupply; // Give the owner all initial tokens
    }
    
    // Gets the total token supply
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    // Gets the balance of the specified address.
    function balanceOf(address who) public view returns (uint256) {
        return balances[who];
    }
    
    // Function to check the amount of tokens that an owner allowed to a spender.
    function allowance(address owner, address spender) public view returns (uint256) {
        return allowed[owner][spender];
    }
    
    // Transfer some of your tokens to another address
    function transfer(address to, uint256 value) public returns (bool) {
        require(now >= startTime); // Check if one month lock is passed
        require(value > 0);

        if (msg.sender == ownerAddr || msg.sender == companyAddr)
                require(now >= teamCompanyLock);
                
        balances[msg.sender] = balances[msg.sender].sub(value);
        balances[to] = balances[to].add(value);
        emit Transfer(msg.sender, to, value);
        return true;
    }
    
    // Transfer tokens from one address to another
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        require(value > 0);
        require(to != address(0));
        require(value <= balances[from]);
        require(value <= allowed[from][msg.sender]);
        
        if (now < icoEnds)  // Check if the crowdsale is already over
            require(from == ownerAddr);

        if (msg.sender == ownerAddr || msg.sender == companyAddr)
            require(now >= teamCompanyLock);
            
        balances[from] = balances[from].sub(value);
        balances[to] = balances[to].add(value);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(value);
        emit Transfer(from, to, value);
        return true;
    }
    
    //Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    function approve(address spender, uint256 value) public returns (bool) {
        require((value == 0) || (allowed[msg.sender][spender] == 0));
        allowed[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

   // Called when ICO is closed. Burns the remaining tokens except the tokens reserved:
    // Anybody may burn the tokens after ICO ended, but only once (in case the owner holds more tokens in the future).
    // this ensures that the owner will not posses a majority of the tokens.
    function burn() public {
        // Make sure it's after ICO and hasn't been called before.
        require(!burned && now > icoEnds);
        uint256 totalReserve = teamReserve.add(companyReserve);
        uint256 difference = balances[ownerAddr].sub(totalReserve);
        balances[ownerAddr] = teamReserve;
        balances[companyAddr] = companyReserve;
        balances[giveawayAddr] = giveawayReserve;
        _totalSupply = _totalSupply.sub(difference);
        burned = true;
        emit Burned(difference);
    }
}

Contract ABI
[{"constant":true,"inputs":[],"name":"companyAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamCompanyLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamReserve","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"giveawayReserve","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burned","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoEnds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoStarts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownerAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"giveawayAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"companyReserve","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preICOLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preICOEnds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ownerAddr","type":"address"},{"name":"_companyAddr","type":"address"},{"name":"_giveawayAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burned","type":"event"}]

Contract Creation Code
60606040526b014adf4b7320334b90000000600055635ae7adff600155635afa2300600255635b4bdfff600355341561003757600080fd5b604051606080610c7283398101604052808051919060200180519190602001805160048054600160a060020a0319908116600160a060020a03978816179182905560058054821696881696909617909555600680549095169186169190911790935550506000805491909216825260076020526040822055610bb39081906100bf90396000f3006060604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302587586811461015857806306fdde0314610187578063095ea7b3146102115780630beb90d31461024757806316d4db191461026c57806318160ddd1461027f57806323b872dd1461029257806327e235e3146102ba578063313ce567146102d95780634287f14a1461030257806344df8e7014610315578063538a8c211461032a5780635a3b7e421461033d57806370a082311461035057806373f425611461036f57806378e979251461038257806395d89b41146103955780639a8ca12c146103a85780639c3e0f3f146103bb5780639c675eaa146103ce578063a9059cbb146103e1578063d4f96a0914610403578063d5b5dc4914610416578063dd62ed3e14610429578063ea60e79b1461044e578063fc5fc8ae14610461575b600080fd5b341561016357600080fd5b61016b610474565b604051600160a060020a03909116815260200160405180910390f35b341561019257600080fd5b61019a610483565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d65780820151838201526020016101be565b50505050905090810190601f1680156102035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021c57600080fd5b610233600160a060020a03600435166024356104ba565b604051901515815260200160405180910390f35b341561025257600080fd5b61025a610560565b60405190815260200160405180910390f35b341561027757600080fd5b61025a61056f565b341561028a57600080fd5b61025a610577565b341561029d57600080fd5b610233600160a060020a036004358116906024351660443561057d565b34156102c557600080fd5b61025a600160a060020a0360043516610770565b34156102e457600080fd5b6102ec610782565b60405160ff909116815260200160405180910390f35b341561030d57600080fd5b61025a610787565b341561032057600080fd5b610328610796565b005b341561033557600080fd5b61025a610905565b341561034857600080fd5b61019a610914565b341561035b57600080fd5b61025a600160a060020a036004351661094b565b341561037a57600080fd5b610233610966565b341561038d57600080fd5b61025a610987565b34156103a057600080fd5b61019a61098f565b34156103b357600080fd5b61025a6109c6565b34156103c657600080fd5b61025a6109cc565b34156103d957600080fd5b61016b6109d2565b34156103ec57600080fd5b610233600160a060020a03600435166024356109e1565b341561040e57600080fd5b61016b610b01565b341561042157600080fd5b61025a610b10565b341561043457600080fd5b61025a600160a060020a0360043581169060243516610b1f565b341561045957600080fd5b61025a610b4a565b341561046c57600080fd5b61025a610b59565b600554600160a060020a031681565b60408051908101604052600c81527f4d6f6e65646120546f6b656e0000000000000000000000000000000000000000602082015281565b60008115806104ec5750600160a060020a03338116600090815260086020908152604080832093871683529290522054155b15156104f757600080fd5b600160a060020a03338116600081815260086020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6acecb8f27f4200f3a00000081565b635d2bc20081565b60005490565b600080821161058b57600080fd5b600160a060020a03831615156105a057600080fd5b600160a060020a0384166000908152600760205260409020548211156105c557600080fd5b600160a060020a03808516600090815260086020908152604080832033909416835292905220548211156105f857600080fd5b60035442101561061c57600454600160a060020a0385811691161461061c57600080fd5b60045433600160a060020a0390811691161480610647575060055433600160a060020a039081169116145b1561065d57635d2bc20042101561065d57600080fd5b600160a060020a038416600090815260076020526040902054610686908363ffffffff610b5f16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106bb908363ffffffff610b7116565b600160a060020a03808516600090815260076020908152604080832094909455878316825260088152838220339093168252919091522054610703908363ffffffff610b5f16565b600160a060020a03808616600081815260086020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60076020526000908152604090205481565b601281565b6a211654585005212800000081565b600654600090819074010000000000000000000000000000000000000000900460ff161580156107c7575060035442115b15156107d257600080fd5b6107f86a21165458500521280000006a422ca8b0a00a425000000063ffffffff610b7116565b600454600160a060020a0316600090815260076020526040902054909250610826908363ffffffff610b5f16565b600454600160a060020a039081166000908152600760205260408082206a21165458500521280000009055600554831682528082206a422ca8b0a00a4250000000905560065490921681529081206a084595161401484a000000905554909150610896908263ffffffff610b5f16565b6000556006805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557fd83c63197e8e676d80ab0122beba9a9d20f3828839e9a1d6fe81d242e9cd7e6e8160405190815260200160405180910390a15050565b6a084595161401484a00000081565b60408051908101604052600581527f4552433230000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a031660009081526007602052604090205490565b60065474010000000000000000000000000000000000000000900460ff1681565b635b5d038081565b60408051908101604052600381527f4d4e440000000000000000000000000000000000000000000000000000000000602082015281565b60035481565b60025481565b600454600160a060020a031681565b6000635b5d03804210156109f457600080fd5b60008211610a0157600080fd5b60045433600160a060020a0390811691161480610a2c575060055433600160a060020a039081169116145b15610a4257635d2bc200421015610a4257600080fd5b600160a060020a033316600090815260076020526040902054610a6b908363ffffffff610b5f16565b600160a060020a033381166000908152600760205260408082209390935590851681522054610aa0908363ffffffff610b7116565b600160a060020a0380851660008181526007602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600654600160a060020a031681565b6a422ca8b0a00a425000000081565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b6a108b2a2c2802909400000081565b60015481565b600082821115610b6b57fe5b50900390565b600082820183811015610b8057fe5b93925050505600a165627a7a72305820b2d1f1fde0fc6e7b7a4e835bf9401fa79b798642ea3773ff1b22515f79e8e9ff00290000000000000000000000001387780788f8e42777075babdf7bf1c49515b1300000000000000000000000007bbd1b4cb486cc2efeaed2dd99735c4bbd94541e0000000000000000000000004bde2ae1021c4a89e33144ecf2216e3b260d6940


    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001387780788f8e42777075babdf7bf1c49515b1300000000000000000000000007bbd1b4cb486cc2efeaed2dd99735c4bbd94541e0000000000000000000000004bde2ae1021c4a89e33144ecf2216e3b260d6940

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000001387780788f8e42777075babdf7bf1c49515b130
Arg [1] : 0000000000000000000000007bbd1b4cb486cc2efeaed2dd99735c4bbd94541e
Arg [2] : 0000000000000000000000004bde2ae1021c4a89e33144ecf2216e3b260d6940


   Swarm Source:
bzzr://b2d1f1fde0fc6e7b7a4e835bf9401fa79b798642ea3773ff1b22515f79e8e9ff
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.