Sponsored Link:   SHIFT.cash - smart-contract based car title lending platform, 30 billion market, 35+ employees. Join NOW.
  Latest 25 txns from a total Of 9390 transactions View All

TxHash Age From To Value [TxFee]
0x51ef0c2872aa52f4aa244d47ed3b32d2b2f788e38b85aabb421b41e79b53924c41 mins ago0xa3cb01275bc5a2232701b7540efeffc7f0364827  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000546792
0x037b650fe0ca1842d0de274d833b5caa4b552b1840bf9aec04438d9002bbfce748 mins ago0x59669b8abba5c12d1a85d6fe61403f7eb872313b  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000446736
0x662f5ea2f8107c7097c4224a64e162405d6b44b2df0119e2ac66c2a97fe709d43 hrs 51 mins ago0x88eb5f4d20606f09be8510f8801d582717d0b599  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000088912
0x78721ac00ed4c7efd4698024fc1542045822c38776b8402a4af7cc662d4910166 hrs 55 mins ago0xe95f6880b6995f46eaeac9dbabd52569ff3ca3d4  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000868186
0xaf4acd49414fbf4c6f0b630d316525035a087cea1f6496e9a5a34a2c4f2ec1387 hrs 55 mins ago0xe95f6880b6995f46eaeac9dbabd52569ff3ca3d4  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00027378
0x6029a00ecd5106f134f4dbdc83c01116a9038690382f650fa40939effc4f7a157 hrs 57 mins ago0x42eeeb8c1d24cf7fafb7d2332468ac9c6f3ac329  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00074584
0x0875288b8b03f9fd618e154d731f1ea7d0279ebe73ebc78897dbf4adb3c966569 hrs 9 mins ago0x09e31c20591ac3895bc26df79f0516f31bc26bb2  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0004563
0xc4427637a53c8204acb4c88d7605ab2aed4c2fead230ec68ab807d4802057d7e9 hrs 10 mins ago0x1c57afcae7f9c5e6f3c833042f71f0d7b69cc2a8  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.002146596
0x1d6790c16a89e677076a766c74599645a84a958508a5d271909d497cdfda6fda9 hrs 43 mins ago0x4bdb4ac41e3e56ef9789bb27876e3ac4681cb05d  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0074584
0x0a055eccf1bfff575f6b83685812af999969dd4378163ae4cb4459c9661db34f9 hrs 54 mins ago0xd7dcbdf23679389caf2776147d986e85602cb681  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0018646
0x18786b7ac56a2b2317f40db53111b3765364a6f6b1e04f6a78c1f3b34ede874310 hrs 16 mins ago0xd7dcbdf23679389caf2776147d986e85602cb681  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0026114
0xfd224e38cd40571a83cf8fbd74099fc77609846b47893329d08d825c2f3bbc0110 hrs 42 mins ago0xb9f2115898b7a6b96b8ee77a0f6b05e37281d7c4  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.001899821
0xccf4d20f39502c24537229ceb0aecc5b068b977abc81fc0bda567c820f3be8ff15 hrs 35 mins ago0x88eb5f4d20606f09be8510f8801d582717d0b599  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000148912
0x46ce67a248d7a06752b3ea27f9ac5740384918da8ce02af790f8ce7eb50e254716 hrs 34 mins ago0x06a0814d4ac1ef98c1354ce2501904f75aae3070  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0013689
0x92e25ba972935d52b13e0b3c6b3b302bf94a5bf46ee7beffbebe198f0291e61c23 hrs 25 mins ago0x45c75c09e217eb42c633fcf566494bc01f509a4d  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000519477
0x079a676f39d7b4a865c4f12d814aec62593fc30fc39b8486e06fd9a56005c67423 hrs 25 mins ago0x45c75c09e217eb42c633fcf566494bc01f509a4d  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000783132
0xf53df9abb89955250161dcc2a71ffb4345fc0c50572073f921f94a08779d9b4b23 hrs 56 mins ago0xeb7ecf9500c1639e8741c2f4fc724d325f9baad7  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000335052
0x8ccc5d3f4272b37467739513a213ac05627588b4a1fa0833b64bfa1ee6ed3bf31 day 1 hr ago0x3795b9f7c7571bf15c26f947bb9aec0878f019f5  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00018252
0xd06e2254cc4b2091f4accb2dd6dec1bc44d0a6cfd78f49b6d00d2a19239dca3e1 day 2 hrs ago0x827d74b20e0ae2f3b0955784d1259f45bf36156a  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000044456
0x4ef076d1284e115255a80e967f54781f876714624c488b8a0bf3221966f880ae1 day 7 hrs ago0xc8d1aa7baae91d9c817cbc90894192f4e86a6064  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00182776
0x1913376d3eae24b3acc3a925f7fcdee5437cdbdb8ebf0592006392ee84a8bdc21 day 8 hrs ago0x88eb5f4d20606f09be8510f8801d582717d0b599  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.000208912
0x80f94f8ebedfb7f05ab72243b1cb0e0c8070b53398f0911ad5f7c6bbeee4ccb01 day 8 hrs ago0xfe3c53a25c360bedadf5c3937c8d7a90104efe74  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00044712
0x0b643fbeecc383bb918ecdce03ff4c333653e078c3542c97d85a44aed2217ad01 day 9 hrs ago0xfe3c53a25c360bedadf5c3937c8d7a90104efe74  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.0009126
0x3bc153f7594d414ca764dc34c7894ea775c2dfe4320dd1d5172a27366ae03f781 day 9 hrs ago0x2172e6db6b82c4e4f60aa430e822676e380fe781  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.001466304
0x524733edac8bfd19252b8551ff80fa81a7dfe999a9be5f93cbc43c16ccd1f4be1 day 10 hrs ago0x051310b26545b842b5b2278e8c3fcbd937c5c5c2  IN   0xb3bd49e28f8f832b8d1e246106991e546c3235020 Ether0.00018252
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 2 Internal Transactions

ParentTxHash Block Age From To Value
0xfe96811fa22453f195dfd56d9f71e07fb23c4dea251563fbfe6ec98ce8b48bfa461737388 days 22 hrs ago0xb3bd49e28f8f832b8d1e246106991e546c3235020xa08cc20874fb408077b02b6ed0cad6b7ae22c89a15,779.490688861691672824 Ether
0xc91e05addd78e51f7d57eed3d702d6a6d12601a373886ddefdc28aa20f1881a4455550098 days 21 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
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.