Sponsored Link:   Qravity - the only blockchain entertainment production studio and distributor. Learn more.
 Latest 25 txns from a total Of 10418 transactions
View All

TxHash Age From To Value [TxFee]
0xee33d8196c3abed40d85e457d90532ae8d3a80debfa6c3af0db75e1df16770e214 hrs 19 mins ago0x1b299df7ba0c842d4794bb7d57ca5829759a63d0  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00018252
0xeb5b9bae54e7bb10ce5d9938a1f1b3616b8144bcd6034bc6e75e6539b0c44d5416 hrs 18 mins ago0xba621ff6592dd1b4e0bd47a4c8887d6a96fd5b23  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000644612
0x22e022981f4f0155ace8bec748be1b657db5b3b22afee4934393e9cb94515c8521 hrs 12 mins ago0x33f072cee2b543fb73cd7f98d8c54dac32082866  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000149168
0xd5f2dc4fec20775b1a6b74037fb9946f9fb9ea9edc60da7900b6a39d6cabfad921 hrs 18 mins ago0x33f072cee2b543fb73cd7f98d8c54dac32082866  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000209168
0x710e682e49ef9575f75ae3f1f652b9014ad873aaed75b4c533d4d5eb009cc31221 hrs 26 mins ago0x33f072cee2b543fb73cd7f98d8c54dac32082866  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000209168
0xa602c51b9ac23f1c49e67f11515b15bb4a7ace15c3080cc617ce89d1d18372d621 hrs 31 mins ago0x33f072cee2b543fb73cd7f98d8c54dac32082866  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000209168
0xf183a7d7406e3844f5fd36039c4fc728247e4de7e4adc5df4ed7509f25520bb321 hrs 33 mins ago0x33f072cee2b543fb73cd7f98d8c54dac32082866  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000148912
0x716093f32a338decc68f78055b035aef61b386594837249f9f672f1b421a747f21 hrs 46 mins ago0x33f072cee2b543fb73cd7f98d8c54dac32082866  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000209168
0x4d50e6c2c3e447b3309ee99daa4a8dc35aaa97d234c99d2133408880b51fe1ac22 hrs 7 mins ago0x33f072cee2b543fb73cd7f98d8c54dac32082866  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000149168
0xac4c179e4008a7380653c447c2fd96fe3b88911ccd07a43d5d9f81ceb396c05922 hrs 10 mins ago0x33f072cee2b543fb73cd7f98d8c54dac32082866  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000208912
0x6b47ff6bed24af5afbda1e7c34933d030017f41f8f04c5af1c00fc37fd6ef9a41 day 3 hrs ago0xffd2e940fceb714a28c2288fc34a7d80e85e24d5  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00018252
0x0b538893acaa1b8c58610d5a355bb20b306d7b2ca3cd37070d6613427cc876eb1 day 9 hrs ago0x60b08636298a96acc77efa18ed5600380a482946  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0006726
0xb829cf8f9ed235db6ea56823bfa9f2569528dbf5b966aa7275cdca19ca25029f1 day 11 hrs ago0x60b08636298a96acc77efa18ed5600380a482946  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00111876
0xfa0cf633cc50d424ae2d32df5ff0cf210281442e27cce0facab6c5346ef0ae701 day 13 hrs ago0x9c0425cec2c0a69f5350d859fc5ed4c971ee6718  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000182776
0x133650dadc5d82599e09f99dc4a9bcaf330b40ce5bd9dc2b0e7f63902bf72e331 day 13 hrs ago0x0ad88f8753a695435998a5f18d77bb509a29513c  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00074712
0xc03d0f42480608c848c137a7b20286673bf8a0178ebb3d7338348bdd9f6d7d1f2 days 8 hrs ago0x01400217515c2eae12307384c08a55ee4be8d091  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000784476
0x2c917adc5479ac1db707a4df3ac6474c3ec68c2e5d10b606dd73a37734fd8b4c2 days 10 hrs ago0x130a017eeeaa1572d27a563aef4d369abeafb25e  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00033678
0x13f74acb99ca50d8113d3091783a951625feab8e4ff1f318aee15ecc084cba232 days 23 hrs ago0xba621ff6592dd1b4e0bd47a4c8887d6a96fd5b23  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000111876
0xe153bdec66b10e834ef16f43b8a8ff2f158878181e62e2610a16e346cc97d6423 days 3 hrs ago0x8ed665471b42303319a198df06427d5656fa057e  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0005573
0x1ea978829043cf0ba522edb405a4343abf51bbbd8be07dc918a969ea3c3bb5a93 days 9 hrs ago0x3ddcd68862a6bfa94130706a975f4baba061e547  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0004563
0xd8a1dde46008b55c9369a39d50c695e35f93684b18f1c2e19258ce62dd98f5fb3 days 13 hrs ago0xc0bc87316c28c3d70512c6e4049613adb31e40f1  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00018252
0xf636558a08bb334d5b427a164dc121407c9db113e7aa35dd0699f7c802394cd03 days 19 hrs ago0xa4c88494e6c05ad3fe2803fbccc1a83f73320872  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.001462384
0x4c01a7646d502fb0de7ed2296d2c5fa91faeb3958d9089a6d930600fb5372fe16 days 14 hrs ago0x68c056d912c4f4137bced4a06c31ce4c33a16d99  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00036504
0x6afbff3e5b6c3a256fb315dd3d8b24c5d9e060bd545095c456a20a7b2cc1bce36 days 14 hrs ago0x68c056d912c4f4137bced4a06c31ce4c33a16d99  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00004563
0x4897ab076c79ed732ae96fd598577f965941422359cd14bbe0856aa5c6f0162c7 days 18 hrs ago0x85b2fab64de630aabcd62a21820546c918d2bec1  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000182264
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 2 Internal Transactions

ParentTxHash Block Age From To Value
0xfe96811fa22453f195dfd56d9f71e07fb23c4dea251563fbfe6ec98ce8b48bfa4617373210 days 8 hrs ago0xb3bd49e28f8f832b8d1e246106991e546c3235020xa08cc20874fb408077b02b6ed0cad6b7ae22c89a15,779.490688861691672824 Ether
0xc91e05addd78e51f7d57eed3d702d6a6d12601a373886ddefdc28aa20f1881a44555500220 days 8 hrs ago0x1522900b6dafac587d499a862861c0869be6e4280xb3bd49e28f8f832b8d1e246106991e546c3235022 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
Contract Name: GMToken
Compiler Version: v0.4.17+commit.bdeb9e52
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.17;

contract Token {

    /* Total amount of tokens */
    uint256 public totalSupply;

    /*
     * Events
     */
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);

    /*
     * Public functions
     */

    /// @notice send `value` token to `to` from `msg.sender`
    /// @param to The address of the recipient
    /// @param value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address to, uint value) public returns (bool);

    /// @notice send `value` token to `to` from `from` on the condition it is approved by `from`
    /// @param from The address of the sender
    /// @param to The address of the recipient
    /// @param value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address from, address to, uint value) public returns (bool);

    /// @notice `msg.sender` approves `spender` to spend `value` tokens
    /// @param spender The address of the account able to transfer the tokens
    /// @param value The amount of tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address spender, uint value) public returns (bool);

    /// @param owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address owner) public constant returns (uint);

    /// @param owner The address of the account owning tokens
    /// @param spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address owner, address spender) public constant returns (uint);
}

contract StandardToken is Token {
    /*
     *  Storage
    */
    mapping (address => uint) balances;
    mapping (address => mapping (address => uint)) allowances;

    /*
     *  Public functions
    */

    function transfer(address to, uint value) public returns (bool) {
        // Do not allow transfer to 0x0 or the token contract itself
        require((to != 0x0) && (to != address(this)));
        if (balances[msg.sender] < value)
            revert();  // Balance too low
        balances[msg.sender] -= value;
        balances[to] += value;
        Transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) public returns (bool) {
        // Do not allow transfer to 0x0 or the token contract itself
        require((to != 0x0) && (to != address(this)));
        if (balances[from] < value || allowances[from][msg.sender] < value)
            revert(); // Balance or allowance too low
        balances[to] += value;
        balances[from] -= value;
        allowances[from][msg.sender] -= value;
        Transfer(from, to, value);
        return true;
    }

    function approve(address spender, uint value) public returns (bool) {
        allowances[msg.sender][spender] = value;
        Approval(msg.sender, spender, value);
        return true;
    }

    function allowance(address owner, address spender) public constant returns (uint) {
        return allowances[owner][spender];
    }

    function balanceOf(address owner) public constant returns (uint) {
        return balances[owner];
    }
}

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
      uint256 c = a * b;
      assert(a == 0 || c / a == b);
      return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
      // assert(b > 0); // Solidity automatically throws when dividing by 0
      uint256 c = a / b;
      // assert(a == b * c + a % b); // There is no case in which this doesn't hold
      return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
      assert(b <= a);
      return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
      uint256 c = a + b;
      assert(c >= a);
      return c;
    }
}

contract GMToken is StandardToken {

    using SafeMath for uint256;

    /*
    *  Metadata
    */
    string public constant name = "Global Messaging Token";
    string public constant symbol = "GMT";
    uint8 public constant decimals = 18;
    uint256 public constant tokenUnit = 10 ** uint256(decimals);

    /*
    *  Contract owner (Radical App International)
    */
    address public owner;

    /*
    *  Hardware wallets
    */
    address public ethFundAddress;  // Address for ETH owned by Radical App International
    address public gmtFundAddress;  // Address for GMT allocated to Radical App International

    /*
    *  List of registered participants
    */
    mapping (address => bool) public registered;

    /*
    *  List of token purchases per address
    *  Same as balances[], except used for individual cap calculations, 
    *  because users can transfer tokens out during sale and reset token count in balances.
    */
    mapping (address => uint) public purchases;

    /*
    *  Crowdsale parameters
    */
    bool public isFinalized;
    bool public isStopped;
    uint256 public startBlock;  // Block number when sale period begins
    uint256 public endBlock;  // Block number when sale period ends
    uint256 public firstCapEndingBlock;  // Block number when first individual user cap period ends
    uint256 public secondCapEndingBlock;  // Block number when second individual user cap period ends
    uint256 public assignedSupply;  // Total GMT tokens currently assigned
    uint256 public tokenExchangeRate;  // Units of GMT per ETH
    uint256 public baseTokenCapPerAddress;  // Base user cap in GMT tokens
    uint256 public constant baseEthCapPerAddress = 7 ether;  // Base user cap in ETH
    uint256 public constant blocksInFirstCapPeriod = 2105;  // Block length for first cap period
    uint256 public constant blocksInSecondCapPeriod = 1052;  // Block length for second cap period
    uint256 public constant gasLimitInWei = 51000000000 wei; //  Gas price limit during individual cap period 
    uint256 public constant gmtFund = 500 * (10**6) * tokenUnit;  // 500M GMT reserved for development and user growth fund 
    uint256 public constant minCap = 100 * (10**6) * tokenUnit;  // 100M min cap to be sold during sale

    /*
    *  Events
    */
    event RefundSent(address indexed _to, uint256 _value);
    event ClaimGMT(address indexed _to, uint256 _value);

    modifier onlyBy(address _account){
        require(msg.sender == _account);  
        _;
    }

    function changeOwner(address _newOwner) onlyBy(owner) external {
        owner = _newOwner;
    }

    modifier registeredUser() {
        require(registered[msg.sender] == true);  
        _;
    }

    modifier minCapReached() {
        require(assignedSupply >= minCap);
        _;
    }

    modifier minCapNotReached() {
        require(assignedSupply < minCap);
        _;
    }

    modifier respectTimeFrame() {
        require(block.number >= startBlock && block.number < endBlock);
        _;
    }

    modifier salePeriodCompleted() {
        require(block.number >= endBlock || assignedSupply.add(gmtFund) == totalSupply);
        _;
    }

    modifier isValidState() {
        require(!isFinalized && !isStopped);
        _;
    }

    /*
    *  Constructor
    */
    function GMToken(
        address _ethFundAddress,
        address _gmtFundAddress,
        uint256 _startBlock,
        uint256 _endBlock,
        uint256 _tokenExchangeRate) 
        public 
    {
        require(_gmtFundAddress != 0x0);
        require(_ethFundAddress != 0x0);
        require(_startBlock < _endBlock && _startBlock > block.number);

        owner = msg.sender; // Creator of contract is owner
        isFinalized = false; // Controls pre-sale state through crowdsale state
        isStopped = false;  // Circuit breaker (only to be used by contract owner in case of emergency)
        ethFundAddress = _ethFundAddress;
        gmtFundAddress = _gmtFundAddress;
        startBlock = _startBlock;
        endBlock = _endBlock;
        tokenExchangeRate = _tokenExchangeRate;
        baseTokenCapPerAddress = baseEthCapPerAddress.mul(tokenExchangeRate);
        firstCapEndingBlock = startBlock.add(blocksInFirstCapPeriod);
        secondCapEndingBlock = firstCapEndingBlock.add(blocksInSecondCapPeriod);
        totalSupply = 1000 * (10**6) * tokenUnit;  // 1B total GMT tokens
        assignedSupply = 0;  // Set starting assigned supply to 0
    }

    /// @notice Stop sale in case of emergency (i.e. circuit breaker)
    /// @dev Only allowed to be called by the owner
    function stopSale() onlyBy(owner) external {
        isStopped = true;
    }

    /// @notice Restart sale in case of an emergency stop
    /// @dev Only allowed to be called by the owner
    function restartSale() onlyBy(owner) external {
        isStopped = false;
    }

    /// @dev Fallback function can be used to buy tokens
    function () payable public {
        claimTokens();
    }

    /// @notice Create `msg.value` ETH worth of GMT
    /// @dev Only allowed to be called within the timeframe of the sale period
    function claimTokens() respectTimeFrame registeredUser isValidState payable public {
        require(msg.value > 0);

        uint256 tokens = msg.value.mul(tokenExchangeRate);

        require(isWithinCap(tokens));

        // Check that we're not over totals
        uint256 checkedSupply = assignedSupply.add(tokens);

        // Return money if we're over total token supply
        require(checkedSupply.add(gmtFund) <= totalSupply); 

        balances[msg.sender] = balances[msg.sender].add(tokens);
        purchases[msg.sender] = purchases[msg.sender].add(tokens);

        assignedSupply = checkedSupply;
        ClaimGMT(msg.sender, tokens);  // Logs token creation for UI purposes
        // As per ERC20 spec, a token contract which creates new tokens SHOULD trigger a Transfer event with the _from address
        // set to 0x0 when tokens are created (https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md)
        Transfer(0x0, msg.sender, tokens);
    }

    /// @dev Checks if transaction meets individual cap requirements
    function isWithinCap(uint256 tokens) internal view returns (bool) {
        // Return true if we've passed the cap period
        if (block.number >= secondCapEndingBlock) {
            return true;
        }

        // Ensure user is under gas limit
        require(tx.gasprice <= gasLimitInWei);
        
        // Ensure user is not purchasing more tokens than allowed
        if (block.number < firstCapEndingBlock) {
            return purchases[msg.sender].add(tokens) <= baseTokenCapPerAddress;
        } else {
            return purchases[msg.sender].add(tokens) <= baseTokenCapPerAddress.mul(4);
        }
    }


    /// @notice Updates registration status of an address for sale participation
    /// @param target Address that will be registered or deregistered
    /// @param isRegistered New registration status of address
    function changeRegistrationStatus(address target, bool isRegistered) public onlyBy(owner) {
        registered[target] = isRegistered;
    }

    /// @notice Updates registration status for multiple addresses for participation
    /// @param targets Addresses that will be registered or deregistered
    /// @param isRegistered New registration status of addresses
    function changeRegistrationStatuses(address[] targets, bool isRegistered) public onlyBy(owner) {
        for (uint i = 0; i < targets.length; i++) {
            changeRegistrationStatus(targets[i], isRegistered);
        }
    }

    /// @notice Sends the ETH to ETH fund wallet and finalizes the token sale
    function finalize() minCapReached salePeriodCompleted isValidState onlyBy(owner) external {
        // Upon successful completion of sale, send tokens to GMT fund
        balances[gmtFundAddress] = balances[gmtFundAddress].add(gmtFund);
        assignedSupply = assignedSupply.add(gmtFund);
        ClaimGMT(gmtFundAddress, gmtFund);   // Log tokens claimed by Radical App International GMT fund
        Transfer(0x0, gmtFundAddress, gmtFund);
        
        // In the case where not all 500M GMT allocated to crowdfund participants
        // is sold, send the remaining unassigned supply to GMT fund address,
        // which will then be used to fund the user growth pool.
        if (assignedSupply < totalSupply) {
            uint256 unassignedSupply = totalSupply.sub(assignedSupply);
            balances[gmtFundAddress] = balances[gmtFundAddress].add(unassignedSupply);
            assignedSupply = assignedSupply.add(unassignedSupply);

            ClaimGMT(gmtFundAddress, unassignedSupply);  // Log tokens claimed by Radical App International GMT fund
            Transfer(0x0, gmtFundAddress, unassignedSupply);
        }

        ethFundAddress.transfer(this.balance);

        isFinalized = true; // Finalize sale
    }

    /// @notice Allows contributors to recover their ETH in the case of a failed token sale
    /// @dev Only allowed to be called once sale period is over IF the min cap is not reached
    /// @return bool True if refund successfully sent, false otherwise
    function refund() minCapNotReached salePeriodCompleted registeredUser isValidState external {
        require(msg.sender != gmtFundAddress);  // Radical App International not entitled to a refund

        uint256 gmtVal = balances[msg.sender];
        require(gmtVal > 0); // Prevent refund if sender GMT balance is 0

        balances[msg.sender] = balances[msg.sender].sub(gmtVal);
        assignedSupply = assignedSupply.sub(gmtVal); // Adjust assigned supply to account for refunded amount
        
        uint256 ethVal = gmtVal.div(tokenExchangeRate); // Covert GMT to ETH

        msg.sender.transfer(ethVal);
        
        RefundSent(msg.sender, ethVal);  // Log successful refund 
    }

    /*
        NOTE: We explicitly do not define a fallback function, in order to prevent 
        receiving Ether for no reason. As noted in Solidity documentation, contracts 
        that receive Ether directly (without a function call, i.e. using send or transfer)
        but do not define a fallback function throw an exception, sending back the Ether (this was different before Solidity v0.4.0).
    */
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"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":"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":"ethFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondCapEndingBlock","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":"isStopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseTokenCapPerAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"blocksInSecondCapPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"restartSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"targets","type":"address[]"},{"name":"isRegistered","type":"bool"}],"name":"changeRegistrationStatuses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"purchases","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"assignedSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"registered","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blocksInFirstCapPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gmtFundAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gmtFund","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":"baseEthCapPerAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstCapEndingBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stopSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenUnit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"isRegistered","type":"bool"}],"name":"changeRegistrationStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gasLimitInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ethFundAddress","type":"address"},{"name":"_gmtFundAddress","type":"address"},{"name":"_startBlock","type":"uint256"},{"name":"_endBlock","type":"uint256"},{"name":"_tokenExchangeRate","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"RefundSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"ClaimGMT","type":"event"},{"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
606060405234156200001057600080fd5b60405160a080620014c08339810160405280805191906020018051919060200180519190602001805191906020018051915050600160a060020a03841615156200005957600080fd5b600160a060020a03851615156200006f57600080fd5b81831080156200007e57504383115b15156200008a57600080fd5b60038054600160a060020a03338116600160a060020a0319928316179092556008805461ffff191690556004805488841690831617905560058054928716929091169190911790556009839055600a829055600e81905562000103676124fee993bc000082640100000000620011b76200016a82021704565b600f556009546200012590610839640100000000620012846200019882021704565b600b819055620001469061041c640100000000620012846200019882021704565b600c5550506b033b2e3c9fd0803ce80000006000908155600d5550620001a8915050565b60008282028315806200018857508284828115156200018557fe5b04145b15156200019157fe5b9392505050565b6000828201838110156200019157fe5b61130880620001b86000396000f300606060405236156101d55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101df578063083c632314610269578063095ea7b31461028e57806318160ddd146102c457806323b872dd146102d757806324497829146102ff5780632b9131511461032e578063313ce567146103415780633f683b6a1461036a5780633fa615b01461037d5780634172d0801461039057806348c54b9d146101d557806348cd4cb1146103a3578063492b3bf7146103b65780634bb278f3146103c9578063590e1ae3146103dc578063707c6b4d146103ef57806370a082311461040257806374711285146104215780637b9358a014610434578063842a77d3146104875780638d4e4083146104a65780638da5cb5b146104b957806395d89b41146104cc578063a6f9dae1146104df578063a9059cbb146104fe578063b1efeece14610520578063b2dd5c0714610533578063c12ae5e914610552578063d27fcf9614610565578063d9c397f614610578578063dd62ed3e1461058b578063de8a6fa2146105b0578063e2c1f7d7146105c3578063e36b0b37146105d6578063e93c980d146105e9578063f24d2532146105fc578063febb131514610620575b6101dd610633565b005b34156101ea57600080fd5b6101f2610801565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022e578082015183820152602001610216565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027457600080fd5b61027c610838565b60405190815260200160405180910390f35b341561029957600080fd5b6102b0600160a060020a036004351660243561083e565b604051901515815260200160405180910390f35b34156102cf57600080fd5b61027c6108aa565b34156102e257600080fd5b6102b0600160a060020a03600435811690602435166044356108b0565b341561030a57600080fd5b6103126109ba565b604051600160a060020a03909116815260200160405180910390f35b341561033957600080fd5b61027c6109c9565b341561034c57600080fd5b6103546109cf565b60405160ff909116815260200160405180910390f35b341561037557600080fd5b6102b06109d4565b341561038857600080fd5b61027c6109e2565b341561039b57600080fd5b61027c6109f1565b34156103ae57600080fd5b61027c6109f7565b34156103c157600080fd5b61027c6109fd565b34156103d457600080fd5b6101dd610a03565b34156103e757600080fd5b6101dd610cd1565b34156103fa57600080fd5b61027c610e9d565b341561040d57600080fd5b61027c600160a060020a0360043516610ea3565b341561042c57600080fd5b6101dd610ec2565b341561043f57600080fd5b6101dd6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650505050913515159150610eec9050565b341561049257600080fd5b61027c600160a060020a0360043516610f49565b34156104b157600080fd5b6102b0610f5b565b34156104c457600080fd5b610312610f64565b34156104d757600080fd5b6101f2610f73565b34156104ea57600080fd5b6101dd600160a060020a0360043516610faa565b341561050957600080fd5b6102b0600160a060020a0360043516602435610ff6565b341561052b57600080fd5b61027c6110af565b341561053e57600080fd5b6102b0600160a060020a03600435166110b5565b341561055d57600080fd5b61027c6110ca565b341561057057600080fd5b6103126110d0565b341561058357600080fd5b61027c6110df565b341561059657600080fd5b61027c600160a060020a03600435811690602435166110ef565b34156105bb57600080fd5b61027c61111a565b34156105ce57600080fd5b61027c611126565b34156105e157600080fd5b6101dd61112c565b34156105f457600080fd5b61027c61115a565b341561060757600080fd5b6101dd600160a060020a03600435166024351515611166565b341561062b57600080fd5b61027c6111ae565b60008060095443101580156106495750600a5443105b151561065457600080fd5b600160a060020a03331660009081526006602052604090205460ff16151560011461067e57600080fd5b60085460ff161580156106995750600854610100900460ff16155b15156106a457600080fd5b600034116106b157600080fd5b600e546106c590349063ffffffff6111b716565b91506106d0826111e2565b15156106db57600080fd5b600d546106ee908363ffffffff61128416565b600054909150610710826b019d971e4fe8401e7400000063ffffffff61128416565b111561071b57600080fd5b600160a060020a033316600090815260016020526040902054610744908363ffffffff61128416565b600160a060020a033316600090815260016020908152604080832093909355600790522054610779908363ffffffff61128416565b600160a060020a0333166000818152600760205260409081902092909255600d839055907f9b1a78c0e1aca340da6c312fc871707cc8ba3646db00745a1eff364cc8d500469084905190815260200160405180910390a233600160a060020a031660006000805160206112bd8339815191528460405190815260200160405180910390a35050565b60408051908101604052601681527f476c6f62616c204d6573736167696e6720546f6b656e00000000000000000000602082015281565b600a5481565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600160a060020a038316158015906108dc575030600160a060020a031683600160a060020a031614155b15156108e757600080fd5b600160a060020a038416600090815260016020526040902054829010806109345750600160a060020a03808516600090815260026020908152604080832033909416835292905220548290105b1561093e57600080fd5b600160a060020a03808416600081815260016020908152604080832080548801905588851680845281842080548990039055600283528184203390961684529490915290819020805486900390559091906000805160206112bd8339815191529085905190815260200160405180910390a35060019392505050565b600454600160a060020a031681565b600c5481565b601281565b600854610100900460ff1681565b6a52b7d2dcc80cd2e400000081565b600e5481565b60095481565b600f5481565b600d546000906a52b7d2dcc80cd2e4000000901015610a2157600080fd5b600a5443101580610a515750600054600d54610a4f906b019d971e4fe8401e7400000063ffffffff61128416565b145b1515610a5c57600080fd5b60085460ff16158015610a775750600854610100900460ff16155b1515610a8257600080fd5b600354600160a060020a039081169033168114610a9e57600080fd5b600554600160a060020a0316600090815260016020526040902054610ad5906b019d971e4fe8401e7400000063ffffffff61128416565b600554600160a060020a0316600090815260016020526040902055600d54610b0f906b019d971e4fe8401e7400000063ffffffff61128416565b600d55600554600160a060020a03167f9b1a78c0e1aca340da6c312fc871707cc8ba3646db00745a1eff364cc8d500466b019d971e4fe8401e7400000060405190815260200160405180910390a2600554600160a060020a031660006000805160206112bd8339815191526b019d971e4fe8401e7400000060405190815260200160405180910390a3600054600d541015610c8757600d54600054610bb99163ffffffff61129316565b600554600160a060020a0316600090815260016020526040902054909250610be7908363ffffffff61128416565b600554600160a060020a0316600090815260016020526040902055600d54610c15908363ffffffff61128416565b600d55600554600160a060020a03167f9b1a78c0e1aca340da6c312fc871707cc8ba3646db00745a1eff364cc8d500468360405190815260200160405180910390a2600554600160a060020a031660006000805160206112bd8339815191528460405190815260200160405180910390a35b600454600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610cc057600080fd5b50506008805460ff19166001179055565b600d5460009081906a52b7d2dcc80cd2e40000009010610cf057600080fd5b600a5443101580610d205750600054600d54610d1e906b019d971e4fe8401e7400000063ffffffff61128416565b145b1515610d2b57600080fd5b600160a060020a03331660009081526006602052604090205460ff161515600114610d5557600080fd5b60085460ff16158015610d705750600854610100900460ff16155b1515610d7b57600080fd5b60055433600160a060020a0390811691161415610d9757600080fd5b600160a060020a03331660009081526001602052604081205492508211610dbd57600080fd5b600160a060020a033316600090815260016020526040902054610de6908363ffffffff61129316565b600160a060020a033316600090815260016020526040902055600d54610e12908363ffffffff61129316565b600d55600e54610e2990839063ffffffff6112a516565b9050600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610e5c57600080fd5b33600160a060020a03167fe309aa15fd2f6bd8a58603632508694071e7d35e967bdbb827926e429b7ef34d8260405190815260200160405180910390a25050565b61041c81565b600160a060020a0381166000908152600160205260409020545b919050565b600354600160a060020a039081169033168114610ede57600080fd5b506008805461ff0019169055565b600354600090600160a060020a039081169033168114610f0b57600080fd5b600091505b8351821015610f4357610f38848381518110610f2857fe5b9060200190602002015184611166565b600190910190610f10565b50505050565b60076020526000908152604090205481565b60085460ff1681565b600354600160a060020a031681565b60408051908101604052600381527f474d540000000000000000000000000000000000000000000000000000000000602082015281565b600354600160a060020a039081169033168114610fc657600080fd5b506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a03831615801590611022575030600160a060020a031683600160a060020a031614155b151561102d57600080fd5b600160a060020a0333166000908152600160205260409020548290101561105357600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055916000805160206112bd8339815191529085905190815260200160405180910390a350600192915050565b600d5481565b60066020526000908152604090205460ff1681565b61083981565b600554600160a060020a031681565b6b019d971e4fe8401e7400000081565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b676124fee993bc000081565b600b5481565b600354600160a060020a03908116903316811461114857600080fd5b506008805461ff001916610100179055565b670de0b6b3a764000081565b600354600160a060020a03908116903316811461118257600080fd5b50600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b640bdfd63e0081565b60008282028315806111d357508284828115156111d057fe5b04145b15156111db57fe5b9392505050565b600c5460009043106111f657506001610ebd565b640bdfd63e003a111561120857600080fd5b600b5443101561124757600f54600160a060020a03331660009081526007602052604090205461123e908463ffffffff61128416565b11159050610ebd565b600f5461125b90600463ffffffff6111b716565b600160a060020a03331660009081526007602052604090205461123e908463ffffffff61128416565b6000828201838110156111db57fe5b60008282111561129f57fe5b50900390565b60008082848115156112b357fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582060cdbb050721d6d9b8aee213b8082faf3aba445e02f2c3ee31d4e6ea696b85920029000000000000000000000000a08cc20874fb408077b02b6ed0cad6b7ae22c89a0000000000000000000000009a40257c6ee603c98ae645fd8dcfc02f0b62159300000000000000000000000000000000000000000000000000000000004390a900000000000000000000000000000000000000000000000000000000004674930000000000000000000000000000000000000000000000000000000000001b58

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

-----Decoded View---------------
Found 5 constructor arguments :
Arg [0] : 000000000000000000000000a08cc20874fb408077b02b6ed0cad6b7ae22c89a
Arg [1] : 0000000000000000000000009a40257c6ee603c98ae645fd8dcfc02f0b621593
Arg [2] : 00000000000000000000000000000000000000000000000000000000004390a9
Arg [3] : 0000000000000000000000000000000000000000000000000000000000467493
Arg [4] : 0000000000000000000000000000000000000000000000000000000000001b58


   Swarm Source:
bzzr://60cdbb050721d6d9b8aee213b8082faf3aba445e02f2c3ee31d4e6ea696b8592

 

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.