Contract 0x28d7f432d24ba6020d1cbd4f28bedc5a82f24320

 
Txn Hash
Block
From
To
Value
0x4a3786d0c3c5bf9221c6ac330ca757cec89ae81ecbb7c18dc76c8ef2f572c006116852492021-01-19 10:41:0245 days 15 hrs ago0x4c70eaa1663fa6f7f655305ca2e14e00d569eab3 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.002126808687.15
0x07d8d76f36c1855fc394c944853bcc55adf1d0e2e2aeed665ffd8eaf519d0f19116851362021-01-19 10:15:1245 days 16 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.0048952890
0xd38e64fcfb7086b764afebb33eb7a1134f1e657f675a760a21ddb61b4ea2f6e3116670142021-01-16 15:24:0248 days 11 hrs ago0xf4d301fc9c9441fd3c8dcc02c7c68d51aa1ffeb3 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.0021963690
0x601c5695d679f0c0ad425ff1278428b4825decab7ecc31231ca3e80278845e55116668012021-01-16 14:34:4748 days 12 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00416190611976.500002189
0x440923ec576055b77976bc1e0173a217c8fbd0b173b7ab4c00a74cedf496fec0116667482021-01-16 14:23:3648 days 12 hrs ago0xf4d301fc9c9441fd3c8dcc02c7c68d51aa1ffeb3 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00186690605376.500002188
0x8aa67869cc265c032866d96a3ceb79bc96b3bf1cbd9d9255ef83e20ffd218169116666742021-01-16 14:07:5348 days 12 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00389980899
0x8dc66ff7e4dbe843c7686ee32b3bd9084e511aa2f053c948689f3644a21f15f7116664372021-01-16 13:08:4448 days 13 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.0042153877.5
0xadeb8907f1fbe1247a5e51cc02f3c26235ceb16c97de81352a1e9846febb7a95115824552021-01-03 15:52:4161 days 10 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.021539232396
0x1ff900414dc8858d9f3f0eaebd1307598e8f0ec2d4ce91965fbf97f7b5e43967115549792020-12-30 11:01:2565 days 15 hrs ago0x9e82fcbf60ad7ad6c628db9afe79ea418de35eb8 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00203263204283.250001758
0x5059464a6753cac01e430a293e7bee12d29ef9d9e556643122d6538c8c4cbbb7115546442020-12-30 9:46:3665 days 16 hrs ago0x97e12bd75bdee72d4975d6df410d2d145b3d8457 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.006910832127
0xdf93d16c6b6ea4955373d969eb638fbcb59779342d6fc8b045d6b2a272dd5573115047522020-12-22 17:53:0073 days 8 hrs ago0x97e12bd75bdee72d4975d6df410d2d145b3d8457 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00224671257
0x5c6859c1020c8e7f55356961e5ba0820f50a2f74e1626467e5b203c788bd1721114059372020-12-07 13:25:1788 days 13 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00233885643
0x899d1c34c9444befba90f289ce3b614fe607efac06331d66e7c7992b87c04092114033462020-12-07 3:58:4288 days 22 hrs ago0xb823e7ed731c9cebacedf8e49ede999aaf0c1c54 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.000718132813.2
0xf62927c27eabe49b4c74e16fbb0bf1b687b1acdee720e4feb7e6ef166de62687111836752020-11-03 10:29:35122 days 16 hrs ago0xa24792d7bd1fff54ca484fb918c29cbb431c6ce4 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00107219244
0xe2d72af2b68c11cd6c606198c3aa994167fa5c5e269be363436d02633ef53e93111834982020-11-03 9:54:42122 days 16 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00239219244
0xb855a75d245a71e1dc7bcd961029348e76d3dedb62f15b6570636d6e78e53a8c111644972020-10-31 11:55:37125 days 14 hrs ago0xa83acdfaea0e19343be77c73846ba23196f888bb IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.0007317630
0x3aab6b1036489c8f85061ac0e4e4840ab75f8962d3891a3ed86b9c53ec5d717f111642452020-10-31 11:02:06125 days 15 hrs ago0xa83acdfaea0e19343be77c73846ba23196f888bb IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00179414433
0xd4eb104387284e2dcc233a305bb92ba68dc6875ab951f9e2bbe1763f387ca095107270672020-08-25 2:59:25192 days 23 hrs ago0x27bc9c14534c0ec0addd6fbdf86662769b2719a8 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00200014482
0x9da7bd0227b7f9d980f96257c539de4b44cb27a0ce12bdf7679f11ac5ae9321e107266502020-08-25 1:24:13193 days 1 hr ago0x4243306a10c6179deb93e7ab909557d283631934 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.0025604865
0xb034660e500d498fa5e10e9ed9a0a5b22a91bc4706c6d74e13599c086ead3029106439852020-08-12 8:23:08205 days 18 hrs ago0x119a5bfd376585b9b0734fc261d36c2b235b4e5a IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00500282205
0x26c5fca49702a4e36ef9bd7775129b84810acc99c0fa73de37b60db81e8022ae106434982020-08-12 6:31:16205 days 20 hrs ago0x97e12bd75bdee72d4975d6df410d2d145b3d8457 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.010663184196
0xb860cb9a52144f4392f0f71cd192e33834fc55a3ced985ca0478016f2e393d3b105309752020-07-25 21:21:13223 days 5 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00259987266
0xb72a530df2e31f46a543dc13b0809b6e6072fd9a816bc0f8c205baac7f1b2250105274172020-07-25 8:02:01223 days 18 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.0033881059286.01
0xe92292733ca5be8169a82cf1734b448d161c8fb73b90faee5f98a6849494543f103814002020-07-02 17:38:33246 days 8 hrs ago0x4c70eaa1663fa6f7f655305ca2e14e00d569eab3 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.0010976445
0x6f44bbb971879782e3fafa7625a6be6a4020307d8150993ad057f042c87ca8c8103810322020-07-02 16:19:59246 days 10 hrs agoBitMart 2 IN  0x28d7f432d24ba6020d1cbd4f28bedc5a82f243200 Ether0.00250148007946.000001459
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TCNXToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-12-10
*/

pragma solidity ^0.4.23;


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



/**
 * @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 c) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    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 a / b;
  }

  /**
  * @dev Subtracts 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 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}



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

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit 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) {
    return balances[_owner];
  }

}


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


/**
 * @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);
    emit 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;
    emit 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));
    emit 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);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}



/**
 * @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 OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() 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 relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @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 {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}


contract FreezableToken is StandardToken {
    // freezing chains
    mapping (bytes32 => uint64) internal chains;
    // freezing amounts for each chain
    mapping (bytes32 => uint) internal freezings;
    // total freezing balance per address
    mapping (address => uint) internal freezingBalance;

    event Freezed(address indexed to, uint64 release, uint amount);
    event Released(address indexed owner, uint amount);

    /**
     * @dev Gets the balance of the specified address include freezing tokens.
     * @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 super.balanceOf(_owner) + freezingBalance[_owner];
    }

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

    function freezingBalanceOf(address _owner) public view returns (uint256 balance) {
        return freezingBalance[_owner];
    }

    /**
     * @dev gets freezing count
     * @param _addr Address of freeze tokens owner.
     */
    function freezingCount(address _addr) public view returns (uint count) {
        uint64 release = chains[toKey(_addr, 0)];
        while (release != 0) {
            count++;
            release = chains[toKey(_addr, release)];
        }
    }

    /**
     * @dev gets freezing end date and freezing balance for the freezing portion specified by index.
     * @param _addr Address of freeze tokens owner.
     * @param _index Freezing portion index. It ordered by release date descending.
     */
    function getFreezing(address _addr, uint _index) public view returns (uint64 _release, uint _balance) {
        for (uint i = 0; i < _index + 1; i++) {
            _release = chains[toKey(_addr, _release)];
            if (_release == 0) {
                return;
            }
        }
        _balance = freezings[toKey(_addr, _release)];
    }

    /**
     * @dev freeze your tokens to the specified address.
     *      Be careful, gas usage is not deterministic,
     *      and depends on how many freezes _to address already has.
     * @param _to Address to which token will be freeze.
     * @param _amount Amount of token to freeze.
     * @param _until Release date, must be in future.
     */
    function freezeTo(address _to, uint _amount, uint64 _until) public {
        require(_to != address(0));
        require(_amount <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(_amount);

        bytes32 currentKey = toKey(_to, _until);
        freezings[currentKey] = freezings[currentKey].add(_amount);
        freezingBalance[_to] = freezingBalance[_to].add(_amount);

        freeze(_to, _until);
        emit Transfer(msg.sender, _to, _amount);
        emit Freezed(_to, _until, _amount);
    }

    /**
     * @dev release first available freezing tokens.
     */
    function releaseOnce() public {
        bytes32 headKey = toKey(msg.sender, 0);
        uint64 head = chains[headKey];
        require(head != 0);
        require(uint64(block.timestamp) > head);
        bytes32 currentKey = toKey(msg.sender, head);

        uint64 next = chains[currentKey];

        uint amount = freezings[currentKey];
        delete freezings[currentKey];

        balances[msg.sender] = balances[msg.sender].add(amount);
        freezingBalance[msg.sender] = freezingBalance[msg.sender].sub(amount);

        if (next == 0) {
            delete chains[headKey];
        } else {
            chains[headKey] = next;
            delete chains[currentKey];
        }
        emit Released(msg.sender, amount);
    }

    /**
     * @dev release all available for release freezing tokens. Gas usage is not deterministic!
     * @return how many tokens was released
     */
    function releaseAll() public returns (uint tokens) {
        uint release;
        uint balance;
        (release, balance) = getFreezing(msg.sender, 0);
        while (release != 0 && block.timestamp > release) {
            releaseOnce();
            tokens += balance;
            (release, balance) = getFreezing(msg.sender, 0);
        }
    }

    function toKey(address _addr, uint _release) internal pure returns (bytes32 result) {
        // WISH masc to increase entropy
        result = 0x5749534800000000000000000000000000000000000000000000000000000000;
        assembly {
            result := or(result, mul(_addr, 0x10000000000000000))
            result := or(result, _release)
        }
    }

    function freeze(address _to, uint64 _until) internal {
        require(_until > block.timestamp);
        bytes32 key = toKey(_to, _until);
        bytes32 parentKey = toKey(_to, uint64(0));
        uint64 next = chains[parentKey];

        if (next == 0) {
            chains[parentKey] = _until;
            return;
        }

        bytes32 nextKey = toKey(_to, next);
        uint parent;

        while (next != 0 && _until > next) {
            parent = next;
            parentKey = nextKey;

            next = chains[nextKey];
            nextKey = toKey(_to, next);
        }

        if (_until == next) {
            return;
        }

        if (next != 0) {
            chains[key] = next;
        }

        chains[parentKey] = _until;
    }
}


/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is BasicToken {

  event Burn(address indexed burner, uint256 value);

  /**
   * @dev Burns a specific amount of tokens.
   * @param _value The amount of token to be burned.
   */
  function burn(uint256 _value) public {
    _burn(msg.sender, _value);
  }

  function _burn(address _who, uint256 _value) internal {
    require(_value <= balances[_who]);
    // no need to require value <= totalSupply, since that would imply the
    // sender's balance is greater than the totalSupply, which *should* be an assertion failure

    balances[_who] = balances[_who].sub(_value);
    totalSupply_ = totalSupply_.sub(_value);
    emit Burn(_who, _value);
    emit Transfer(_who, address(0), _value);
  }
}



/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    emit Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    emit Unpause();
  }
}


contract TCNXToken is  FreezableToken, BurnableToken, Pausable
{
    
    address public fundsWallet = 0x368E1ED074e2F6bBEca5731C8BaE8460d1cA2529;

    // 20B total supply
    uint256 public totalSupply = 20 * 1000000000 ether;

    uint256 public blockDate = 1561852800;

    constructor() public {
        transferOwnership(fundsWallet);
        balances[fundsWallet] = totalSupply;
        Transfer(0x0, fundsWallet, totalSupply);
    }
    

    function name() public pure returns (string _name) {
        return "Tercet Network";
    }

    function symbol() public pure returns (string _symbol) {
        return "TCNX";
    }

    function decimals() public pure returns (uint8 _decimals) {
        return 18;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool _success) {
        require(!paused);
        require(!isBlocked(_from, _value));

        return super.transferFrom(_from, _to, _value);
    }

    function transfer(address _to, uint256 _value) public returns (bool _success) {
        require(!paused);
        require(!isBlocked(msg.sender, _value));
        return super.transfer(_to, _value);
    }

    function isBlocked(address _from, uint256 _value) returns(bool _blocked){
        if(_from != fundsWallet || now > blockDate){
            return false;
        }
        if(balances[_from].sub(_value) < totalSupply.mul(50).div(100)){
            return true;
        }
        return false;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_addr","type":"address"},{"name":"_index","type":"uint256"}],"name":"getFreezing","outputs":[{"name":"_release","type":"uint64"},{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"pure","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":"_owner","type":"address"}],"name":"actualBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundsWallet","outputs":[{"name":"","type":"address"}],"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":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_until","type":"uint64"}],"name":"freezeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"releaseAll","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","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":false,"inputs":[],"name":"releaseOnce","outputs":[],"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":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"blockDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"freezingCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","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":"freezingBalanceOf","outputs":[{"name":"balance","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":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"isBlocked","outputs":[{"name":"_blocked","type":"bool"}],"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":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"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":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"release","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Freezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Released","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"}]

60806040526006805460a060020a60ff021916905560078054600160a060020a03191673368e1ed074e2f6bbeca5731c8bae8460d1ca25291790556b409f9cbc7c4a04c220000000600855635d17fb8060095534801561005e57600080fd5b5060068054600160a060020a0319163317905560075461008f90600160a060020a03166401000000006100f3810204565b60085460078054600160a060020a03908116600090815260208181526040808320869055935484519586529351939092169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3610190565b600654600160a060020a0316331461010a57600080fd5b61011c8164010000000061011f810204565b50565b600160a060020a038116151561013457600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360068054600160a060020a031916600160a060020a0392909216919091179055565b6116078061019f6000396000f3006080604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302d6f730811461016e57806306fdde03146101b6578063095ea7b31461024057806317a950ac1461027857806318160ddd146102ab5780632194f3a2146102c057806323b872dd146102f1578063313ce5671461031b5780633be1e952146103465780633f4ba83a1461037957806342966c681461038e5780635be7fde8146103a65780635c975abb146103bb57806366188463146103d057806366a92cda146103f457806370a0823114610409578063715018a61461042a5780638456cb591461043f5780638da5cb5b1461045457806395d89b4114610469578063a9059cbb1461047e578063bdd0d7fb146104a2578063ca63b5b8146104b7578063d73dd623146104d8578063d8aeedf5146104fc578063dd62ed3e1461051d578063e86e52ec14610544578063f2fde38b14610568575b600080fd5b34801561017a57600080fd5b50610192600160a060020a0360043516602435610589565b6040805167ffffffffffffffff909316835260208301919091528051918290030190f35b3480156101c257600080fd5b506101cb610616565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102055781810151838201526020016101ed565b50505050905090810190601f1680156102325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024c57600080fd5b50610264600160a060020a036004351660243561064d565b604080519115158252519081900360200190f35b34801561028457600080fd5b50610299600160a060020a03600435166106b4565b60408051918252519081900360200190f35b3480156102b757600080fd5b506102996106bf565b3480156102cc57600080fd5b506102d56106c5565b60408051600160a060020a039092168252519081900360200190f35b3480156102fd57600080fd5b50610264600160a060020a03600435811690602435166044356106d4565b34801561032757600080fd5b50610330610715565b6040805160ff9092168252519081900360200190f35b34801561035257600080fd5b50610377600160a060020a036004351660243567ffffffffffffffff6044351661071a565b005b34801561038557600080fd5b5061037761088e565b34801561039a57600080fd5b50610377600435610906565b3480156103b257600080fd5b50610299610913565b3480156103c757600080fd5b50610264610978565b3480156103dc57600080fd5b50610264600160a060020a0360043516602435610988565b34801561040057600080fd5b50610377610a78565b34801561041557600080fd5b50610299600160a060020a0360043516610c1b565b34801561043657600080fd5b50610377610c44565b34801561044b57600080fd5b50610377610cb2565b34801561046057600080fd5b506102d5610d2f565b34801561047557600080fd5b506101cb610d3e565b34801561048a57600080fd5b50610264600160a060020a0360043516602435610d75565b3480156104ae57600080fd5b50610299610db4565b3480156104c357600080fd5b50610299600160a060020a0360043516610dba565b3480156104e457600080fd5b50610264600160a060020a0360043516602435610e40565b34801561050857600080fd5b50610299600160a060020a0360043516610ed9565b34801561052957600080fd5b50610299600160a060020a0360043581169060243516610ef4565b34801561055057600080fd5b50610264600160a060020a0360043516602435610f1f565b34801561057457600080fd5b50610377600160a060020a0360043516610fb4565b600080805b836001018110156105e257600360006105b1878667ffffffffffffffff16610fd4565b815260208101919091526040016000205467ffffffffffffffff1692508215156105da5761060e565b60010161058e565b600460006105fa878667ffffffffffffffff16610fd4565b815260208101919091526040016000205491505b509250929050565b60408051808201909152600e81527f546572636574204e6574776f726b000000000000000000000000000000000000602082015290565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60006106ae82611008565b60085481565b600754600160a060020a031681565b60065460009060a060020a900460ff16156106ee57600080fd5b6106f88483610f1f565b1561070257600080fd5b61070d848484611023565b949350505050565b601290565b6000600160a060020a038416151561073157600080fd5b3360009081526020819052604090205483111561074d57600080fd5b3360009081526020819052604090205461076d908463ffffffff61118816565b336000908152602081905260409020556107918467ffffffffffffffff8416610fd4565b6000818152600460205260409020549091506107b3908463ffffffff61119a16565b600082815260046020908152604080832093909355600160a060020a03871682526005905220546107ea908463ffffffff61119a16565b600160a060020a03851660009081526005602052604090205561080d84836111a7565b604080518481529051600160a060020a0386169133916000805160206115bc8339815191529181900360200190a36040805167ffffffffffffffff84168152602081018590528151600160a060020a038716927f2ecd071e4d10ed2221b04636ed0724cce66a873aa98c1a31b4bb0e6846d3aab4928290030190a250505050565b600654600160a060020a031633146108a557600080fd5b60065460a060020a900460ff1615156108bd57600080fd5b6006805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6109103382611341565b50565b6000806000610923336000610589565b67ffffffffffffffff909116925090505b811580159061094257508142115b156109735761094f610a78565b9182019161095e336000610589565b67ffffffffffffffff90911692509050610934565b505090565b60065460a060020a900460ff1681565b336000908152600260209081526040808320600160a060020a0386168452909152812054808311156109dd57336000908152600260209081526040808320600160a060020a0388168452909152812055610a12565b6109ed818463ffffffff61118816565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000806000806000610a8b336000610fd4565b60008181526003602052604090205490955067ffffffffffffffff169350831515610ab557600080fd5b8367ffffffffffffffff164267ffffffffffffffff16111515610ad757600080fd5b610aeb338567ffffffffffffffff16610fd4565b600081815260036020908152604080832054600483528184208054908590553385529284905292205492955067ffffffffffffffff90911693509150610b37908263ffffffff61119a16565b3360009081526020818152604080832093909355600590522054610b61908263ffffffff61118816565b3360009081526005602052604090205567ffffffffffffffff82161515610ba4576000858152600360205260409020805467ffffffffffffffff19169055610bde565b600085815260036020526040808220805467ffffffffffffffff861667ffffffffffffffff19918216179091558583529120805490911690555b60408051828152905133917fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e919081900360200190a25050505050565b600160a060020a038116600090815260056020526040812054610c3d83611008565b0192915050565b600654600160a060020a03163314610c5b57600080fd5b600654604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26006805473ffffffffffffffffffffffffffffffffffffffff19169055565b600654600160a060020a03163314610cc957600080fd5b60065460a060020a900460ff1615610ce057600080fd5b6006805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600654600160a060020a031681565b60408051808201909152600481527f54434e5800000000000000000000000000000000000000000000000000000000602082015290565b60065460009060a060020a900460ff1615610d8f57600080fd5b610d993383610f1f565b15610da357600080fd5b610dad8383611430565b9392505050565b60095481565b60008060036000610dcc856000610fd4565b815260208101919091526040016000205467ffffffffffffffff1690505b67ffffffffffffffff811615610e3a5760019091019060036000610e188567ffffffffffffffff8516610fd4565b815260208101919091526040016000205467ffffffffffffffff169050610dea565b50919050565b336000908152600260209081526040808320600160a060020a0386168452909152812054610e74908363ffffffff61119a16565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a031660009081526005602052604090205490565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600754600090600160a060020a038481169116141580610f40575060095442115b15610f4d575060006106ae565b610f746064610f6860326008546114ff90919063ffffffff16565b9063ffffffff61152816565b600160a060020a038416600090815260208190526040902054610f9d908463ffffffff61118816565b1015610fab575060016106ae565b50600092915050565b600654600160a060020a03163314610fcb57600080fd5b6109108161153d565b6801000000000000000091909102177f57495348000000000000000000000000000000000000000000000000000000001790565b600160a060020a031660009081526020819052604090205490565b6000600160a060020a038316151561103a57600080fd5b600160a060020a03841660009081526020819052604090205482111561105f57600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561108f57600080fd5b600160a060020a0384166000908152602081905260409020546110b8908363ffffffff61118816565b600160a060020a0380861660009081526020819052604080822093909355908516815220546110ed908363ffffffff61119a16565b600160a060020a0380851660009081526020818152604080832094909455918716815260028252828120338252909152205461112f908363ffffffff61118816565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391926000805160206115bc833981519152929181900390910190a35060019392505050565b60008282111561119457fe5b50900390565b818101828110156106ae57fe5b6000808080804267ffffffffffffffff8716116111c357600080fd5b6111d7878767ffffffffffffffff16610fd4565b94506111e4876000610fd4565b60008181526003602052604090205490945067ffffffffffffffff169250821515611237576000848152600360205260409020805467ffffffffffffffff191667ffffffffffffffff8816179055611338565b61124b878467ffffffffffffffff16610fd4565b91505b67ffffffffffffffff83161580159061127a57508267ffffffffffffffff168667ffffffffffffffff16115b156112b3575060008181526003602052604090205490925067ffffffffffffffff908116918391166112ac8784610fd4565b915061124e565b8267ffffffffffffffff168667ffffffffffffffff1614156112d457611338565b67ffffffffffffffff83161561130e576000858152600360205260409020805467ffffffffffffffff191667ffffffffffffffff85161790555b6000848152600360205260409020805467ffffffffffffffff191667ffffffffffffffff88161790555b50505050505050565b600160a060020a03821660009081526020819052604090205481111561136657600080fd5b600160a060020a03821660009081526020819052604090205461138f908263ffffffff61118816565b600160a060020a0383166000908152602081905260409020556001546113bb908263ffffffff61118816565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206115bc8339815191529181900360200190a35050565b6000600160a060020a038316151561144757600080fd5b3360009081526020819052604090205482111561146357600080fd5b33600090815260208190526040902054611483908363ffffffff61118816565b3360009081526020819052604080822092909255600160a060020a038516815220546114b5908363ffffffff61119a16565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233926000805160206115bc8339815191529281900390910190a350600192915050565b6000821515611510575060006106ae565b5081810281838281151561152057fe5b04146106ae57fe5b6000818381151561153557fe5b049392505050565b600160a060020a038116151561155257600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820e888d016d026b0919c0f3b599e64a6bc9bd488c99527fcbcb8abf3fb7afef85c0029

Swarm Source

bzzr://e888d016d026b0919c0f3b599e64a6bc9bd488c99527fcbcb8abf3fb7afef85c
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.