Contract Overview | CoinFiToken
Balance: 0 Ether
Ether Value: $0
Transactions: 26500 txns
Token Tracker: CoinFi (COFI)
 Latest 25 transactions from a total of 26500 transactions

TxHash Age From To Value [TxFee]
0x4e120aed7413e4644a7e1791fa4acbacec71c94635c2c56f79af244d9ce4c44d11 mins ago0x6a1bce1ee1cead249c972b74d050b7706379076b  IN   CoinFiToken0 Ether0.0002281
0x3d286bca4d669797d4bd74eb8cdba6bdb8fa458d8f7ba659832a236d33406a4026 mins ago0xdd25af713a81aee3fe2781b5498ec7fc8bf44f31  IN   CoinFiToken0 Ether0.00013686
0x9f8a2c1f9cdc775960c24eec6c4a0171913c8969ff28a3c0ce3b504c0f6af1ae30 mins ago0xf9c7c887e090ad2a2c3dc5943d89301a1d86b3f6  IN   CoinFiToken0 Ether0.0002281
0xe62247cb5ce3fe89e4b48a0dd5fbbe2e337f14e9521e2d908d7f11c7162eeec630 mins ago0x223f26c2ee6493052b6cadc4163842246539fb45  IN   CoinFiToken0 Ether0.00022746
0x8aa0c99cb3652742536350ff7b7a099131af53892ef40f5d63f2a87adf63d5b538 mins ago0x4365b4ed1e5007a5ec0a168f15736dd66ab46e9f  IN   CoinFiToken0 Ether0.00022746
0x7e43505f12bbf306915b143207e20bb054b635a57b3d7230f1745d6a4295b7b340 mins ago0x4c24839d64d9c28a2c742d76566e78272aab1fa6  IN   CoinFiToken0 Ether0.00022746
0x285d632dd2a340bb32fc67380700c6147620f233af25db2de60f6e76cbd2801549 mins ago0xec961ede73426833ba5a7c81f9d33ec408c0454e  IN   CoinFiToken0 Ether0.000182992
0x92f62315d988407a7c1d94c9ce1985743f88f6299306d9e4dab3962d89f012151 hr 1 min ago0x7312f4506039e739bebde8fd1ac04e07c5318277  IN   CoinFiToken0 Ether0.00022746
0x26ba5f8a2b0ca3ff74745b0f6afcc531d66cf687674c0fa06285ab5dfc18502d1 hr 11 mins ago0xdfcf519b35781ec3c8d45e52eb4a360bd9a5be1c  IN   CoinFiToken0 Ether0.00022746
0x1aa82cdec362db15f4a2c6325c75f16ef4a5df3f384131d17fa0aa45caa753781 hr 25 mins ago0x2c3ba438eb48aaf0a30484e5464b56a031e0664b  IN   CoinFiToken0 Ether0.00022746
0x5bf8a3b9d2217fbe5d00849f22c458652c422d9f9d202754c0823423ebd799201 hr 47 mins ago0xb37d1ea1d12c00e9d98e10c3eb251b038df45094  IN   CoinFiToken0 Ether0.0002281
0xb141d8b4aa02b0a313eed055a14255ae5c7e45fed58a6232e0f59f94793454692 hrs 15 mins ago0x9594a5926f5c4ecf66cba72748954226e6283490  IN   CoinFiToken0 Ether0.00022746
0x5c45c6d25e97d42d16e8f344700ce48d4f79a35b65825ca073262789832faef82 hrs 34 mins ago0x2124bfce22fa2a779e7a0a34304f7a383cfe09cf  IN   CoinFiToken0 Ether0.00022874
0x3c552653c0c4c046fd53d008507acbdc34856fe39aaf4415aa5cc3b525ddba673 hrs 8 mins ago0x5660c4c97b9c118865a7cbd06fe05c6b79873e16  IN   CoinFiToken0 Ether0.00155021
0x4381ada7d23ec2efe07eeb2bcac064cec6801a933a88b9d001ea23e87e82921a3 hrs 11 mins agoKucoin  IN   CoinFiToken0 Ether0.001029316956
0x807727791c9fa7c40b8c02f6beb0be21a77fa92e1eb681adf02c50ec84c196cd3 hrs 29 mins ago0x5b2652eff54dbaf2523814dd6b9301d747e98a67  IN   CoinFiToken0 Ether0.00022746
0xdf66025c68047feae65a829d584ce80f3604b1ff1ad2c6867204604f0d15fa743 hrs 29 mins ago0xa7152e40022d5389214dd77e81d813d53a01a1d4  IN   CoinFiToken0 Ether0.00022874
0x6317f0c6e86f7c3c83ae8d505f666476d99c710f15c10f164aba1538bbc9a2c64 hrs 2 mins ago0x8338a0c63190d71f9f0a49887ef7ff9adc6f5c2f  IN   CoinFiToken0 Ether0.000181968
0x62831518d881b539979201f25c4e64b4930fc6e2750fc889d75747722edd5e044 hrs 2 mins ago0x6a36361f2e435febd9e19c8ddaf197520efb3995  IN   CoinFiToken0 Ether0.000272952
0x35d40baea88403ea4dd02a1a2fb6c986dcb090ef4c970a34b149ef1fc01456704 hrs 14 mins ago0xd02b2bee4a24d49428aad892ba6909d051e2b69f  IN   CoinFiToken0 Ether0.000295560733
0x74c8b4cd1bf13e14eec70005be7847d3428df9f829b39dc9a86b7896bd65fe844 hrs 27 mins ago0x54721421d5f20df3ac3f052f4d2af45ccc8aa238  IN   CoinFiToken0 Ether0.000181968
0x4e5f47e462e50436c5bbff700b83b8dbd4d0122ec441e6fb66822892a5b2150e4 hrs 27 mins ago0x5ec779d303bb211a7485a29e9690656a82926ba0  IN   CoinFiToken0 Ether0.000184220812
0xa2593414aaa4ac546901063ddb73fdd4856cb469f334d0047d40d1ef5a6a31764 hrs 28 mins ago0x9ad1019bd68d950a547720ddc718f8884157868c  IN   CoinFiToken0 Ether0.000318444
0xecfda3750a7f79b221be87e46c72eaa486ffec138c7d5e896c1d3294d93e0e6c4 hrs 29 mins ago0xc68efd760f36be468f1ea3be92706b69ee766078  IN   CoinFiToken0 Ether0.000182678812
0xea451f78ccdb8b075e43feab52b9d08c66c5fa6bce7f6a623289de18a8855b404 hrs 29 mins ago0xa18e0e4039040cf62e886a8b2223bc0b72188e6e  IN   CoinFiToken0 Ether0.000182678812
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: CoinFiToken
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;


/**
 * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
 * https://github.com/OpenZeppelin/zeppelin-solidity/commit/49b42e86963df7192e7024e0e5bd30fa9d7ccbef
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  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;
  }

  /**
  * @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;
  }
}


/**
 * https://raw.githubusercontent.com/OpenZeppelin/zeppelin-solidity/master/contracts/token/ERC20/ERC20Basic.sol
 * https://github.com/OpenZeppelin/zeppelin-solidity/commit/370e6a882aef6b9600949594d3a3e4854260d51e
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}


/**
 * https://raw.githubusercontent.com/OpenZeppelin/zeppelin-solidity/master/contracts/token/ERC20/ERC20.sol
 * https://github.com/OpenZeppelin/zeppelin-solidity/commit/c5d66183abcb63a90a2528b8333b2b17067629fc
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}


/**
 * https://raw.githubusercontent.com/OpenZeppelin/zeppelin-solidity/master/contracts/token/ERC20/SafeERC20.sol
 * https://github.com/OpenZeppelin/zeppelin-solidity/commit/b67856c69d3536f28d51b75b270dfff79343bf93
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
  function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
    assert(token.transfer(to, value));
  }

  function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal {
    assert(token.transferFrom(from, to, value));
  }

  function safeApprove(ERC20 token, address spender, uint256 value) internal {
    assert(token.approve(spender, value));
  }
}


/**
 * https://raw.githubusercontent.com/OpenZeppelin/zeppelin-solidity/master/contracts/token/ERC20/BasicToken.sol
 * https://github.com/OpenZeppelin/zeppelin-solidity/commit/c5d66183abcb63a90a2528b8333b2b17067629fc
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return balances[_owner];
  }
}


/**
 * https://raw.githubusercontent.com/OpenZeppelin/zeppelin-solidity/master/contracts/token/ERC20/StandardToken.sol
 * https://github.com/OpenZeppelin/zeppelin-solidity/commit/c5d66183abcb63a90a2528b8333b2b17067629fc
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }
}


/**
 * https://raw.githubusercontent.com/OpenZeppelin/zeppelin-solidity/master/contracts/ownership/Ownable.sol
 * https://github.com/OpenZeppelin/zeppelin-solidity/commit/e60aee61f20d25bffa0a1f651247810a8bc8a660
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}


/**
 * https://raw.githubusercontent.com/OpenZeppelin/zeppelin-solidity/master/contracts/token/ERC20/TokenVesting.sol
 * https://github.com/OpenZeppelin/zeppelin-solidity/commit/c5d66183abcb63a90a2528b8333b2b17067629fc
 * @title TokenVesting
 * @dev A token holder contract that can release its token balance gradually like a
 * typical vesting scheme, with a cliff and vesting period. Optionally revocable by the
 * owner.
 */
contract TokenVesting is Ownable {
  using SafeMath for uint256;
  using SafeERC20 for ERC20Basic;

  event Released(uint256 amount);
  event Revoked();

  // beneficiary of tokens after they are released
  address public beneficiary;

  uint256 public cliff;
  uint256 public start;
  uint256 public duration;

  bool public revocable;

  mapping (address => uint256) public released;
  mapping (address => bool) public revoked;

  /**
   * @dev Creates a vesting contract that vests its balance of any ERC20 token to the
   * _beneficiary, gradually in a linear fashion until _start + _duration. By then all
   * of the balance will have vested.
   * @param _beneficiary address of the beneficiary to whom vested tokens are transferred
   * @param _cliff duration in seconds of the cliff in which tokens will begin to vest
   * @param _duration duration in seconds of the period in which the tokens will vest
   * @param _revocable whether the vesting is revocable or not
   */
  function TokenVesting(address _beneficiary, uint256 _start, uint256 _cliff, uint256 _duration, bool _revocable) public {
    require(_beneficiary != address(0));
    require(_cliff <= _duration);

    beneficiary = _beneficiary;
    revocable = _revocable;
    duration = _duration;
    cliff = _start.add(_cliff);
    start = _start;
  }

  /**
   * @notice Transfers vested tokens to beneficiary.
   * @param token ERC20 token which is being vested
   */
  function release(ERC20Basic token) public {
    uint256 unreleased = releasableAmount(token);

    require(unreleased > 0);

    released[token] = released[token].add(unreleased);

    token.safeTransfer(beneficiary, unreleased);

    Released(unreleased);
  }

  /**
   * @notice Allows the owner to revoke the vesting. Tokens already vested
   * remain in the contract, the rest are returned to the owner.
   * @param token ERC20 token which is being vested
   */
  function revoke(ERC20Basic token) public onlyOwner {
    require(revocable);
    require(!revoked[token]);

    uint256 balance = token.balanceOf(this);

    uint256 unreleased = releasableAmount(token);
    uint256 refund = balance.sub(unreleased);

    revoked[token] = true;

    token.safeTransfer(owner, refund);

    Revoked();
  }

  /**
   * @dev Calculates the amount that has already vested but hasn't been released yet.
   * @param token ERC20 token which is being vested
   */
  function releasableAmount(ERC20Basic token) public view returns (uint256) {
    return vestedAmount(token).sub(released[token]);
  }

  /**
   * @dev Calculates the amount that has already vested.
   * @param token ERC20 token which is being vested
   */
  function vestedAmount(ERC20Basic token) public view returns (uint256) {
    uint256 currentBalance = token.balanceOf(this);
    uint256 totalBalance = currentBalance.add(released[token]);

    if (now < cliff) {
      return 0;
    } else if (now >= start.add(duration) || revoked[token]) {
      return totalBalance;
    } else {
      return totalBalance.mul(now.sub(start)).div(duration);
    }
  }
}


contract CoinFiToken is StandardToken, Ownable {
    string public constant name = "CoinFi";
    string public constant symbol = "COFI";
    uint8 public constant decimals = 18;

    // 300 million tokens minted
    uint256 public constant INITIAL_SUPPLY = 300000000 * (10 ** uint256(decimals));

    // Indicates whether token transfer is enabled
    bool public transferEnabled = false;

    // Specifies airdrop contract address which can transfer tokens before unlock
    address public airdropAddress;

    modifier onlyWhenTransferEnabled() {
        if (!transferEnabled) {
            require(msg.sender == owner || msg.sender == airdropAddress);
        }
        _;
    }

    function CoinFiToken() public {
        totalSupply_ = INITIAL_SUPPLY;
        balances[msg.sender] = INITIAL_SUPPLY;
        Transfer(0x0, msg.sender, INITIAL_SUPPLY);
    }

    /**
     * Enables everyone to start transferring their tokens.
     * This can only be called by the token owner.
     */
    function enableTransfer() external onlyOwner {
        transferEnabled = true;
    }

    /**
     * Disables the ability to transfer tokens except by owner.
     * This can only be called by the token owner.
     */
    function disableTransfer() external onlyOwner {
        transferEnabled = false;
    }

    /**
     * Sets the airdrop contract address which is allowed to transfer before unlock.
     * This can only be called by the token owner.
     */
    function setAirdropAddress(address _airdropAddress) external onlyOwner {
        airdropAddress = _airdropAddress;
    }

    /**
     * Overrides the ERC20Basic transfer() function to only allow token transfers after enableTransfer() is called.
     */
    function transfer(address _to, uint256 _value) public onlyWhenTransferEnabled returns (bool) {
        return super.transfer(_to, _value);
    }

    /**
     * Overrides the ERC20Basic transferFrom() function to only allow token transfers after enableTransfer() is called.
     */
    function transferFrom(address _from, address _to, uint256 _value) public onlyWhenTransferEnabled returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }
}


contract CoinFiAirdrop is Ownable {
    uint256 public constant AIRDROP_AMOUNT = 500 * (10**18);

    // Actual token instance to airdrop
    ERC20 public token;

    function CoinFiAirdrop(ERC20 _token) public {
        token = _token;
    }

    function sendAirdrop(address[] airdropRecipients, bool allowDuplicates) external onlyOwner {
        require(airdropRecipients.length > 0);

        for (uint i = 0; i < airdropRecipients.length; i++) {
            if (token.balanceOf(airdropRecipients[i]) == 0 || allowDuplicates) {
                token.transferFrom(owner, airdropRecipients[i], AIRDROP_AMOUNT);
            }
        }
    }
}

    Contract ABI  
[{"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":"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":"INITIAL_SUPPLY","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":"transferEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"airdropAddress","outputs":[{"name":"","type":"address"}],"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":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_airdropAddress","type":"address"}],"name":"setAirdropAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[],"name":"enableTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526003805460a060020a60ff0219169055341561001f57600080fd5b60038054600160a060020a03191633600160a060020a03169081179091556af8277896582678ac000000600181905560008281526020819052604080822083905590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a3610bce806100a26000396000f3006060604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b31461019557806318160ddd146101cb57806323b872dd146101f05780632ff2e9dc14610218578063313ce5671461022b5780634cd412d514610254578063661884631461026757806370a082311461028957806384413b65146102a85780638da5cb5b146102d757806395d89b41146102ea578063a9059cbb146102fd578063ab0eda9e1461031f578063b187984f14610340578063d73dd62314610353578063dd62ed3e14610375578063f1b50c1d1461039a578063f2fde38b146103ad575b600080fd5b341561011657600080fd5b61011e6103cc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561015a578082015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101a057600080fd5b6101b7600160a060020a0360043516602435610403565b604051901515815260200160405180910390f35b34156101d657600080fd5b6101de61046f565b60405190815260200160405180910390f35b34156101fb57600080fd5b6101b7600160a060020a0360043581169060243516604435610475565b341561022357600080fd5b6101de6104d4565b341561023657600080fd5b61023e6104e3565b60405160ff909116815260200160405180910390f35b341561025f57600080fd5b6101b76104e8565b341561027257600080fd5b6101b7600160a060020a03600435166024356104f8565b341561029457600080fd5b6101de600160a060020a03600435166105f2565b34156102b357600080fd5b6102bb61060d565b604051600160a060020a03909116815260200160405180910390f35b34156102e257600080fd5b6102bb61061c565b34156102f557600080fd5b61011e61062b565b341561030857600080fd5b6101b7600160a060020a0360043516602435610662565b341561032a57600080fd5b61033e600160a060020a03600435166106bf565b005b341561034b57600080fd5b61033e610709565b341561035e57600080fd5b6101b7600160a060020a0360043516602435610744565b341561038057600080fd5b6101de600160a060020a03600435811690602435166107e8565b34156103a557600080fd5b61033e610813565b34156103b857600080fd5b61033e600160a060020a0360043516610854565b60408051908101604052600681527f436f696e46690000000000000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60015490565b60035460009060a060020a900460ff1615156104c15760035433600160a060020a03908116911614806104b6575060045433600160a060020a039081169116145b15156104c157600080fd5b6104cc8484846108ef565b949350505050565b6af8277896582678ac00000081565b601281565b60035460a060020a900460ff1681565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561055557600160a060020a03338116600090815260026020908152604080832093881683529290529081205561058c565b610565818463ffffffff610a6f16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526020819052604090205490565b600454600160a060020a031681565b600354600160a060020a031681565b60408051908101604052600481527f434f464900000000000000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff1615156106ae5760035433600160a060020a03908116911614806106a3575060045433600160a060020a039081169116145b15156106ae57600080fd5b6106b88383610a81565b9392505050565b60035433600160a060020a039081169116146106da57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035433600160a060020a0390811691161461072457600080fd5b6003805474ff000000000000000000000000000000000000000019169055565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205461077c908363ffffffff610b9316565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461082e57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a179055565b60035433600160a060020a0390811691161461086f57600080fd5b600160a060020a038116151561088457600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a038316151561090657600080fd5b600160a060020a03841660009081526020819052604090205482111561092b57600080fd5b600160a060020a038085166000908152600260209081526040808320339094168352929052205482111561095e57600080fd5b600160a060020a038416600090815260208190526040902054610987908363ffffffff610a6f16565b600160a060020a0380861660009081526020819052604080822093909355908516815220546109bc908363ffffffff610b9316565b600160a060020a0380851660009081526020818152604080832094909455878316825260028152838220339093168252919091522054610a02908363ffffffff610a6f16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600082821115610a7b57fe5b50900390565b6000600160a060020a0383161515610a9857600080fd5b600160a060020a033316600090815260208190526040902054821115610abd57600080fd5b600160a060020a033316600090815260208190526040902054610ae6908363ffffffff610a6f16565b600160a060020a033381166000908152602081905260408082209390935590851681522054610b1b908363ffffffff610b9316565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b6000828201838110156106b857fe00a165627a7a72305820bb67a0d368128a0d35db065631c0c9d4da2c3ecaa521370d91d0ab2b66c56ebb0029

   Swarm Source:
bzzr://bb67a0d368128a0d35db065631c0c9d4da2c3ecaa521370d91d0ab2b66c56ebb

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.