Contract 0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd0

Contract Overview

Balance:
0 Ether
TxHash Block Age From To Value [TxFee]
0xd3ce76cd76bac912d24d3422139d00170b3c09ff007d93256476b40319a972e33164565156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00045478
0x0fb52047c77f9380a029930c41f20623aa0c4ec01c9efc97ecd6e6464ba185433164542156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00082486
0xf5bee62978c0f221398533cecfab77f3aa4c9020137bfdeb11b737899a205e5a3164531156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00078966
0x9f1ff50f46f2960c7d5c95573519f89ebdd55e2bc9bb240ca72fe289ff6858283164527156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00105834
0x878e204d2c3e39ca4c012fc9e6451d825fc11af39a6f73c60f0bedfe4f0df34a3164517156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00077464
0x4a791ecf450bdcac9c46518afcafecb0318273a8c2795e55843c37c5a77236473164508156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00104204
0xeabcc55963b334536c349cb6e08bba95aacd908b1863e0f2d071b7de27ac35c03164500156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00104332
0xffa4264609da6ee6e410f9bd41b8e5ebb8acab1ef5c105ebc1a9a68f03d81c3d3164491156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00075962
0x86ee7a662e54ca36cd273694978601e2f99563272c47b7b9531d4776dddcc98e3164486156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.0010283
0x7547ca35b449ebf850b75f24f55b67d0e0218456fcd33cb17f90e6a0ea54e20f3164481156 days 7 hrs ago0x033a4464b6339303106162ab18e2d894b2ee5428 IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00102958
0xb8d480d0d118a92148fadfb0dceba1e64e987b8f660ea79a6b04fe152076cbd23164479156 days 7 hrs ago0x749e140ac081a1d193794780bd75955ae6a6a38c IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.000037355
0x8ca29e25a12b94f13e3683c2a8308915f6aac747a5cd76fdadacb8bcbfe1ffaf3164476156 days 7 hrs ago0x749e140ac081a1d193794780bd75955ae6a6a38c IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00002662
0xd81edc6dde1c47e20eb262b6b45826caf76245dcb9e2b41120bcbc8052b504673164476156 days 7 hrs ago0x033a4464b6339303106162ab18e2d894b2ee5428 IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00074588
0xac2f1284cc30bce7605591229ab8c83e973841cdc76ff7df818c65cf99027ac73164473156 days 7 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.0007446
0xa59d5dcf0e1fae574f27e318588d01f1fe752b36650bbfd734f7aca15dd0bb4c3164465156 days 7 hrs ago0x3e0f3a94edaa6aae6ea3ba700b17548a56307ec3 IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00075606
0xb998754adc71d4a16111a220721a62bea47d2643fc58d5992a4e87a6c14572ab3164457156 days 8 hrs ago0x749e140ac081a1d193794780bd75955ae6a6a38c IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.000049913
0x29b72bd5b359daa28fab952c80634ea2dae2416aa54e1c70e2ee84a3b11959ae3164454156 days 8 hrs ago0x749e140ac081a1d193794780bd75955ae6a6a38c IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.000036479
0x06511ad9f170e31cc7c1dc3ae9fbfa4630ad78a712a3eb0b3eefde83f44037043164452156 days 8 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00072958
0xdb72143d43ff0c6d585e58c75b90a34950afa5ea8660817463ea1ce81b1f1a2c3164450156 days 8 hrs ago0xd8e6d403d122d7a5169abb076a080e8bb19299e1 IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.000037803
0xae46b61e0153edd512bcd9fb5f4e9c1fb5ddbf319d3670f873e7edbacb56151b3164446156 days 8 hrs ago0x749e140ac081a1d193794780bd75955ae6a6a38c IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.000036479
0xba0001854d7450da4f42586edf6e1e857f96a4aea5aac660563e55afe93b78e73164442156 days 8 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00072958
0x596431da9e09371c8bf389fa940f87a12dc3e8712edfe1fde616be46ed86b1033164423156 days 8 hrs ago0x185d6b8a4740645a47e2354b3d2494ebf71347eb IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00098324
0x589e65982c9ca3181efba9431445ea1351fbc4a79c3d3349e5909951dbf3c23d3164410156 days 8 hrs ago0x749e140ac081a1d193794780bd75955ae6a6a38c IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.000048411
0xa652cc91c1af8eff29f4690c4c6a45e46cd3368145fab0e3da0ba040c626954c3164407156 days 8 hrs ago0xa63bd419df6db6eae6a356732dd612548651eb5b IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.00069954
0xf6485f769600e9afa41d4c7e0ec2666b1bebb96feb4237c8e4d232a74bb4baca3164406156 days 8 hrs ago0x749e140ac081a1d193794780bd75955ae6a6a38c IN  0xb67ac0ae71529bd9eeb0803e3aec0b19fbb59fd00 Ether0.000034977
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value

Contract Source Code Verified (Exact Match)

Contract Name:
HuaLiToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

pragma solidity ^0.4.25;

library SafeMath {

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring '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;
    }

    uint256 c = a * b;
    require(c / a == b);

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0); // Solidity only automatically asserts 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 Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;

    return c;
  }

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

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
  function totalSupply() external view returns (uint256);

  function balanceOf(address who) external view returns (uint256);

  function allowance(address owner, address spender)
    external view returns (uint256);

  function transfer(address to, uint256 value) external returns (bool);

  function approve(address spender, uint256 value)
    external returns (bool);

  function transferFrom(address from, address to, uint256 value)
    external returns (bool);

  event Transfer(
    address indexed from,
    address indexed to,
    uint256 value
  );

  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

contract Owned {
  address owner;
  constructor () public {
    owner = msg.sender;
  }

  modifier onlyOwner {
    require(msg.sender == owner,"Only owner can do it.");
    _;
  }
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 * Originally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract HuaLiToken is IERC20 , Owned{

  string public constant name = "HuaLiToken";
  string public constant symbol = "HHLC";
  uint8 public constant decimals = 18;

  uint256 private constant INITIAL_SUPPLY = 10000000000 * (10 ** uint256(decimals));

  using SafeMath for uint256;

  mapping (address => uint256) private _balances;

  mapping (address => mapping (address => uint256)) private _allowed;

  uint256 private _totalSupply;

  
  mapping(address => uint256) balances;
  uint256[] public releaseTimeLines=[1539515876,1539516176,1539516476,1539516776,1539517076,1539517376,1539517676,1539517976,1539518276,1539518576,1539518876,1539519176,1539519476,1539519776,1539520076,1539520376,1539520676,1539520976,1539521276,1539521576,1539521876,1539522176,1539522476,1539522776];
    
  struct Role {
    address roleAddress;
    uint256 amount;
    uint256 firstRate;
    uint256 round;
    uint256 rate;
  }
   
  mapping (address => mapping (uint256 => Role)) public mapRoles;
  mapping (address => address) private lockList;
   
  constructor() public {
    _mint(msg.sender, INITIAL_SUPPLY);
  }

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

  /**
  * @dev Gets the balance of the specified address.
  * @param owner The address to query 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];
  }

  /**
   * @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 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) {
    if(_canTransfer(msg.sender,value)){ 
      _transfer(msg.sender, to, value);
      return true;
    } else {
      return false;
    }
  }

  /**
   * @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) {
    require(spender != address(0));

    _allowed[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  /**
   * @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(value <= _allowed[from][msg.sender]);
    
    if (_canTransfer(from, value)) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        return true;
    } else {
        return false;
    }
  }

  /**
   * @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 increaseAllowance(
    address spender,
    uint256 addedValue
  )
    public
    returns (bool)
  {
    require(spender != address(0));

    _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 decreaseAllowance(
    address spender,
    uint256 subtractedValue
  )
    public
    returns (bool)
  {
    require(spender != address(0));

    _allowed[msg.sender][spender] = (
      _allowed[msg.sender][spender].sub(subtractedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }

  /**
  * @dev Transfer token for a specified addresses
  * @param from The address to transfer from.
  * @param to The address to transfer to.
  * @param value The amount to be transferred.
  */
  function _transfer(address from, address to, uint256 value) internal {
    require(value <= _balances[from]);
    require(to != address(0));
    
    _balances[from] = _balances[from].sub(value);
    _balances[to] = _balances[to].add(value);
    emit Transfer(from, to, value);
    
  }

  /**
   * @dev Internal function that mints an amount of the token and assigns it to
   * an account. This encapsulates the modification of balances such that the
   * proper events are emitted.
   * @param account The account that will receive the created tokens.
   * @param value The amount that will be created.
   */
  function _mint(address account, uint256 value) internal {
    require(account != 0);
    _totalSupply = _totalSupply.add(value);
    _balances[account] = _balances[account].add(value);
    emit Transfer(address(0), account, value);
  }
  
  function setTimeLine(uint256[] timeLine) onlyOwner public {
    releaseTimeLines = timeLine;
  }
  
  /**
   * @dev getRoleReleaseSeting
   * @param roleType 1:Seed 2:Angel 3:PE 4:AirDrop
   */
  function getRoleReleaseSeting(uint256 roleType) pure public returns (uint256,uint256,uint256) {
    if(roleType == 1){
      return (50,1,10);
    }else if(roleType == 2){
      return (30,1,10);
    }else if(roleType == 3){
      return (40,3,20);
    }else if(roleType == 4){
      return (5,1,5);
    }else {
      return (0,0,0);
    }
  }
  
  function addLockUser(address roleAddress,uint256 amount,uint256 roleType) onlyOwner public {
    (uint256 firstRate, uint256 round, uint256 rate) = getRoleReleaseSeting(roleType);
    mapRoles[roleAddress][roleType] = Role(roleAddress,amount,firstRate,round,rate);
    lockList[roleAddress] = roleAddress;
  }
  
  function addLockUsers(address[] roleAddress,uint256[] amounts,uint256 roleType) onlyOwner public {
    for(uint i= 0;i<roleAddress.length;i++){
      addLockUser(roleAddress[i],amounts[i],roleType);
    }
  }
  
  function removeLockUser(address roleAddress,uint256 role) onlyOwner public {
    mapRoles[roleAddress][role] = Role(0x0,0,0,0,0);
    lockList[roleAddress] = 0x0;
  }
  
  function getRound() constant public returns (uint) {
    for(uint i= 0;i<releaseTimeLines.length;i++){
      if(now<releaseTimeLines[i]){
        if(i>0){
          return i-1;
        }else{
          return 0;
        }
      }
    }
  }
   
  function isUserInLockList(address from) constant public returns (bool) {
    if(lockList[from]==0x0){
      return false;
    } else {
      return true;
    }
  }
  
  function _canTransfer(address from,uint256 _amount) private returns (bool) {
    if(!isUserInLockList(from)){
      return true;
    }
    uint256 lock = 0;
    if((balanceOf(from))<=0){
      return true;
    }
    
    for(uint i= 1;i<=4;i++){
      if(mapRoles[from][i].roleAddress != 0x0){
        lock = lock.add(getlockAmount(from,i));
      }
    }
    if(lock<=0){
      lockList[from] = 0x0;
    }
    if((balanceOf(from).sub(_amount))<lock){
      return false;
    }
    return true;
  }
  
  function getlockAmount(address from,uint roleType) constant public returns (uint256) {
    uint256 _rount = getRound();
    uint256 round = 0;
    if(_rount>0){
      round = _rount.div(mapRoles[from][roleType].round);
    }
    if(mapRoles[from][roleType].firstRate.add(round.mul(mapRoles[from][roleType].rate))>=100){
      return 0;
    }
    uint256 firstAmount = mapRoles[from][roleType].amount.mul(mapRoles[from][roleType].firstRate).div(100);
    uint256 rountAmount = 0;
    if(round>0){
      rountAmount = mapRoles[from][roleType].amount.mul(mapRoles[from][roleType].rate.mul(round)).div(100);
    }
    return mapRoles[from][roleType].amount.sub(firstAmount.add(rountAmount));
  }
    
}

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":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"timeLine","type":"uint256[]"}],"name":"setTimeLine","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"roleAddress","type":"address"},{"name":"role","type":"uint256"}],"name":"removeLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"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":"","type":"address"},{"name":"","type":"uint256"}],"name":"mapRoles","outputs":[{"name":"roleAddress","type":"address"},{"name":"amount","type":"uint256"},{"name":"firstRate","type":"uint256"},{"name":"round","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"from","type":"address"},{"name":"roleType","type":"uint256"}],"name":"getlockAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"roleType","type":"uint256"}],"name":"getRoleReleaseSeting","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"roleAddress","type":"address"},{"name":"amount","type":"uint256"},{"name":"roleType","type":"uint256"}],"name":"addLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"from","type":"address"}],"name":"isUserInLockList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"releaseTimeLines","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":false,"inputs":[{"name":"roleAddress","type":"address[]"},{"name":"amounts","type":"uint256[]"},{"name":"roleType","type":"uint256"}],"name":"addLockUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

Contract Creation Code

610380604052635bc325e46080908152635bc3271060a052635bc3283c60c052635bc3296860e052635bc32a9461010052635bc32bc061012052635bc32cec61014052635bc32e1861016052635bc32f4461018052635bc330706101a052635bc3319c6101c052635bc332c86101e052635bc333f461020052635bc3352061022052635bc3364c61024052635bc3377861026052635bc338a461028052635bc339d06102a052635bc33afc6102c052635bc33c286102e052635bc33d5461030052635bc33e8061032052635bc33fac61034052635bc340d861036052620000eb90600590601862000211565b50348015620000f957600080fd5b5060008054600160a060020a0319163390811790915562000130906b204fce5e3e2502611000000064010000000062000136810204565b62000289565b600160a060020a03821615156200014c57600080fd5b600354620001699082640100000000620010f4620001f782021704565b600355600160a060020a0382166000908152600160205260409020546200019f9082640100000000620010f4620001f782021704565b600160a060020a03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000828201838110156200020a57600080fd5b9392505050565b82805482825590600052602060002090810192821562000257579160200282015b8281111562000257578251829063ffffffff1690559160200191906001019062000232565b506200026592915062000269565b5090565b6200028691905b8082111562000265576000815560010162000270565b90565b6111fe80620002996000396000f30060806040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610121578063095ea7b3146101ab57806318160ddd146101e357806323b872dd1461020a578063313ce56714610234578063395093511461025f5780634011e6c71461028357806370a08231146102da57806395d89b41146102fb5780639ccb9ea3146103105780639f8743f714610334578063a457c2d714610349578063a9059cbb1461036d578063b4301ef214610391578063b5e8340f146103ea578063baad131b1461040e578063bb9704e014610444578063c8ddc6991461046b578063d6de13a81461048c578063dd62ed3e146104a4578063f23d63d2146104cb575b600080fd5b34801561012d57600080fd5b5061013661055b565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610170578181015183820152602001610158565b50505050905090810190601f16801561019d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101b757600080fd5b506101cf600160a060020a0360043516602435610592565b604080519115158252519081900360200190f35b3480156101ef57600080fd5b506101f8610611565b60408051918252519081900360200190f35b34801561021657600080fd5b506101cf600160a060020a0360043581169060243516604435610618565b34801561024057600080fd5b506102496106cd565b6040805160ff9092168252519081900360200190f35b34801561026b57600080fd5b506101cf600160a060020a03600435166024356106d2565b34801561028f57600080fd5b50604080516020600480358082013583810280860185019096528085526102d8953695939460249493850192918291850190849080828437509497506107829650505050505050565b005b3480156102e657600080fd5b506101f8600160a060020a03600435166107e9565b34801561030757600080fd5b50610136610808565b34801561031c57600080fd5b506102d8600160a060020a036004351660243561083f565b34801561034057600080fd5b506101f861092a565b34801561035557600080fd5b506101cf600160a060020a0360043516602435610981565b34801561037957600080fd5b506101cf600160a060020a03600435166024356109cc565b34801561039d57600080fd5b506103b5600160a060020a03600435166024356109f8565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b3480156103f657600080fd5b506101f8600160a060020a0360043516602435610a3c565b34801561041a57600080fd5b50610426600435610c3a565b60408051938452602084019290925282820152519081900360600190f35b34801561045057600080fd5b506102d8600160a060020a0360043516602435604435610cb3565b34801561047757600080fd5b506101cf600160a060020a0360043516610db8565b34801561049857600080fd5b506101f8600435610deb565b3480156104b057600080fd5b506101f8600160a060020a0360043581169060243516610e0a565b3480156104d757600080fd5b50604080516020600480358082013583810280860185019096528085526102d895369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497505093359450610e359350505050565b60408051808201909152600a81527f4875614c69546f6b656e00000000000000000000000000000000000000000000602082015281565b6000600160a060020a03831615156105a957600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6003545b90565b600160a060020a038316600090815260026020908152604080832033845290915281205482111561064857600080fd5b6106528483610eda565b156106c257600160a060020a038416600090815260026020908152604080832033845290915290205461068b908363ffffffff610fe216565b600160a060020a03851660009081526002602090815260408083203384529091529020556106ba848484611000565b5060016106c6565b5060005b9392505050565b601281565b6000600160a060020a03831615156106e957600080fd5b336000908152600260209081526040808320600160a060020a038716845290915290205461071d908363ffffffff6110f416565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600054600160a060020a031633146107d2576040805160e560020a62461bcd02815260206004820152601560248201526000805160206111b3833981519152604482015290519081900360640190fd5b80516107e5906005906020840190611157565b5050565b600160a060020a0381166000908152600160205260409020545b919050565b60408051808201909152600481527f48484c4300000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a0316331461088f576040805160e560020a62461bcd02815260206004820152601560248201526000805160206111b3833981519152604482015290519081900360640190fd5b6040805160a081018252600080825260208083018281528385018381526060850184815260808601858152600160a060020a03998a1680875260068652888720998752988552878620965187549a1673ffffffffffffffffffffffffffffffffffffffff199a8b1617875592516001870155905160028601555160038501555160049093019290925592835260079052902080549091169055565b6000805b60055481101561097d57600580548290811061094657fe5b906000526020600020015442101561097557600081111561096c5760018103915061097d565b6000915061097d565b60010161092e565b5090565b6000600160a060020a038316151561099857600080fd5b336000908152600260209081526040808320600160a060020a038716845290915290205461071d908363ffffffff610fe216565b60006109d83383610eda565b156109f0576109e8338484611000565b50600161060b565b50600061060b565b600660209081526000928352604080842090915290825290208054600182015460028301546003840154600490940154600160a060020a0390931693919290919085565b6000806000806000610a4c61092a565b9350600092506000841115610a9657600160a060020a0387166000908152600660209081526040808320898452909152902060030154610a9390859063ffffffff61110616565b92505b600160a060020a0387166000908152600660209081526040808320898452909152902060040154606490610b0890610ad590869063ffffffff61112916565b600160a060020a038a1660009081526006602090815260408083208c84529091529020600201549063ffffffff6110f416565b10610b165760009450610c30565b600160a060020a038716600090815260066020908152604080832089845290915290206002810154600190910154610b6091606491610b5491611129565b9063ffffffff61110616565b9150600090506000831115610be757600160a060020a0387166000908152600660209081526040808320898452909152902060040154610be490606490610b5490610bb1908763ffffffff61112916565b600160a060020a038b1660009081526006602090815260408083208d84529091529020600101549063ffffffff61112916565b90505b610c2d610bfa838363ffffffff6110f416565b600160a060020a03891660009081526006602090815260408083208b84529091529020600101549063ffffffff610fe216565b94505b5050505092915050565b60008060008360011415610c5857506032915060019050600a610cac565b8360021415610c715750601e915060019050600a610cac565b8360031415610c8a575060289150600390506014610cac565b8360041415610ca25750600591506001905081610cac565b5060009150819050805b9193909250565b6000805481908190600160a060020a03163314610d08576040805160e560020a62461bcd02815260206004820152601560248201526000805160206111b3833981519152604482015290519081900360640190fd5b610d1184610c3a565b6040805160a081018252600160a060020a039a8b1680825260208083019b8c5282840196875260608301958652608083019485526000828152600682528481209b81529a8152838b20925183549d1673ffffffffffffffffffffffffffffffffffffffff199d8e161783559a516001830155945160028201559251600384015590516004909201919091558186526007909652949093208054909516909317909355505050565b600160a060020a038082166000908152600760205260408120549091161515610de357506000610803565b506001610803565b6005805482908110610df957fe5b600091825260209091200154905081565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60008054600160a060020a03163314610e86576040805160e560020a62461bcd02815260206004820152601560248201526000805160206111b3833981519152604482015290519081900360640190fd5b5060005b8351811015610ed457610ecc8482815181101515610ea457fe5b906020019060200201518483815181101515610ebc57fe5b9060200190602002015184610cb3565b600101610e8a565b50505050565b6000806000610ee885610db8565b1515610ef75760019250610fda565b600091506000610f06866107e9565b11610f145760019250610fda565b5060015b60048111610f7057600160a060020a0380861660009081526006602090815260408083208584529091529020541615610f6857610f65610f588683610a3c565b839063ffffffff6110f416565b91505b600101610f18565b60008211610fac57600160a060020a0385166000908152600760205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b81610fc685610fba886107e9565b9063ffffffff610fe216565b1015610fd55760009250610fda565b600192505b505092915050565b60008083831115610ff257600080fd5b5050808203805b5092915050565b600160a060020a03831660009081526001602052604090205481111561102557600080fd5b600160a060020a038216151561103a57600080fd5b600160a060020a038316600090815260016020526040902054611063908263ffffffff610fe216565b600160a060020a038085166000908152600160205260408082209390935590841681522054611098908263ffffffff6110f416565b600160a060020a0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828201838110156106c657600080fd5b60008080831161111557600080fd5b828481151561112057fe5b04949350505050565b60008083151561113c5760009150610ff9565b5082820282848281151561114c57fe5b04146106c657600080fd5b828054828255906000526020600020908101928215611192579160200282015b82811115611192578251825591602001919060010190611177565b5061097d926106159250905b8082111561097d576000815560010161119e56004f6e6c79206f776e65722063616e20646f2069742e0000000000000000000000a165627a7a7230582073ff1afc2e3f083f32877573a30c5319269b7a8f68e6294246bab4c12c9a0bb50029

Swarm Source

bzzr://73ff1afc2e3f083f32877573a30c5319269b7a8f68e6294246bab4c12c9a0bb5
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward