Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xB9bb08AB7E9Fa0A1356bd4A39eC0ca267E03b0b3
Balance 0 ETH
Nonce 1
Code Size 8318 bytes
Last Active
Indexed Transactions 62 (10,653,02210,702,812)
Gas Used (indexed) 418,988
External Etherscan · Sourcify

Contract Bytecode

8318 bytes
0x608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101a0578063095ea7b31461023057806318160ddd146102955780631a0b1b86146102c057806323b872dd146102eb57806329dcb0cf146103705780633097324c1461039b578063313ce567146103c65780634e054a67146103f1578063521eb2731461043457806359e415d31461048b57806364edfbf0146104b657806368a72fba146104c057806370a08231146104eb57806376802b85146105425780638da5cb5b1461059957806395d89b41146105f05780639622c5fd146106805780639aef319f1461073c578063a58fd85b14610753578063a9059cbb14610782578063aaa7062b146107e7578063be9a655514610812578063bff356181461083d578063c1ce53fc1461086c578063d2161687146108d5578063dd62ed3e14610904578063ea6ef2fe1461097b578063efbe1c1c146109a6578063f2fde38b146109d1578063f72084b214610a14578063f7decfd114610a3f575b61019e610a6e565b005b3480156101ac57600080fd5b506101b5610eb2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f55780820151818401526020810190506101da565b50505050905090810190601f1680156102225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023c57600080fd5b5061027b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f50565b604051808215151515815260200191505060405180910390f35b3480156102a157600080fd5b506102aa6110f4565b6040518082815260200191505060405180910390f35b3480156102cc57600080fd5b506102d56110fa565b6040518082815260200191505060405180910390f35b3480156102f757600080fd5b50610356600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611100565b604051808215151515815260200191505060405180910390f35b34801561037c57600080fd5b506103856113c7565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b06113cd565b6040518082815260200191505060405180910390f35b3480156103d257600080fd5b506103db6113d3565b6040518082815260200191505060405180910390f35b3480156103fd57600080fd5b50610432600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d9565b005b34801561044057600080fd5b50610449611682565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049757600080fd5b506104a06116a8565b6040518082815260200191505060405180910390f35b6104be610a6e565b005b3480156104cc57600080fd5b506104d56116ae565b6040518082815260200191505060405180910390f35b3480156104f757600080fd5b5061052c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b4565b6040518082815260200191505060405180910390f35b34801561054e57600080fd5b50610583600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116fd565b6040518082815260200191505060405180910390f35b3480156105a557600080fd5b506105ae611715565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fc57600080fd5b5061060561173b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561064557808201518184015260208101905061062a565b50505050905090810190601f1680156106725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068c57600080fd5b506106c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107015780820151818401526020810190506106e6565b50505050905090810190601f16801561072e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074857600080fd5b50610751611889565b005b34801561075f57600080fd5b5061078060048036038101908080351515906020019092919050505061193e565b005b34801561078e57600080fd5b506107cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119f2565b604051808215151515815260200191505060405180910390f35b3480156107f357600080fd5b506107fc611bad565b6040518082815260200191505060405180910390f35b34801561081e57600080fd5b50610827611bb3565b6040518082815260200191505060405180910390f35b34801561084957600080fd5b5061086a600480360381019080803515159060200190929190505050611bb9565b005b34801561087857600080fd5b506108d3600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c6d565b005b3480156108e157600080fd5b506108ea611d92565b604051808215151515815260200191505060405180910390f35b34801561091057600080fd5b50610965600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611da5565b6040518082815260200191505060405180910390f35b34801561098757600080fd5b50610990611e2c565b6040518082815260200191505060405180910390f35b3480156109b257600080fd5b506109bb611e32565b6040518082815260200191505060405180910390f35b3480156109dd57600080fd5b50610a12600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e38565b005b348015610a2057600080fd5b50610a29611f0f565b6040518082815260200191505060405180910390f35b348015610a4b57600080fd5b50610a54611f15565b604051808215151515815260200191505060405180910390f35b6000806000600b544211151515610a8457600080fd5b640df84758003a11151515610a9857600080fd5b6009544210151515610aa957600080fd5b34925067016345785d8a00008310151515610ac357600080fd5b610acf60115484611f28565b60118190555060145460115411151515610ae857600080fd5b610b31601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611f28565b9150600a5442111515610b5a5767058d15e1762800008211151515610b5557600080fd5b610b72565b678ac7230489e800008211151515610b7157600080fd5b5b81601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bc283601354611f52565b9050610c0d81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f28565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cbb60026000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611f85565b60026000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610d88573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f3f1cfec7ab004940203f20c0b2592de62030ff6a47b9e0312d5cfcc02cb7107484601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548460405180848152602001838152602001828152602001935050505060405180910390a2505050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f485780601f10610f1d57610100808354040283529160200191610f48565b820191906000526020600020905b815481529060010190602001808311610f2b57829003601f168201915b505050505081565b6000600160009054906101000a900460ff1615610f6c57600080fd5b60008214158015610ffa57506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561100457600080fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b60135481565b600080606060048101600036905014151561111a57600080fd5b600160009054906101000a900460ff161561113457600080fd5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506111bd8285611f85565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611286600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485611f85565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611312600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485611f28565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b600b5481565b600f5481565b60065481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143757600080fd5b601560019054906101000a900460ff16151561145257600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154460026000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611f28565b60026000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f906b403a7519ac9bc0fd466448daa297cf7a5a33f930ba9dfc6c4d0a95b27bb3826040518082815260200191505060405180910390a25050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b60145481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60126020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117d15780601f106117a6576101008083540402835291602001916117d1565b820191906000526020600020905b8154815290600101906020018083116117b457829003601f168201915b505050505081565b60166020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118815780601f1061185657610100808354040283529160200191611881565b820191906000526020600020905b81548152906001019060200180831161186457829003601f168201915b505050505081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118e557600080fd5b6000601560016101000a81548160ff0219169083151502179055507fc83570cc833aff7d6a8b7cf672903df645c8055265bd66f527aa9e3d053d26776000604051808215151515815260200191505060405180910390a1565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199a57600080fd5b80601560006101000a81548160ff0219169083151502179055507f6df4eaa3d8aaf0b7455d0f66db534ec432858a40c60638fab7373d0e8c3cc25181604051808215151515815260200191505060405180910390a150565b60006040600481016000369050141515611a0b57600080fd5b600160009054906101000a900460ff1615611a2557600080fd5b611a6e600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611f85565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611afa600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611f28565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600e5481565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c1557600080fd5b80600160006101000a81548160ff0219169083151502179055507f315845123c6f0549151ca220827f2da26372cb5b8ea113bf30a7af87c51e70f981604051808215151515815260200191505060405180910390a150565b601560009054906101000a900460ff161515611c8857600080fd5b80601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611cdb929190611fad565b503373ffffffffffffffffffffffffffffffffffffffff167feec457a060cac001341b6aa57aef4ab1120201f8771515492d29aa5d193d63d6826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d55578082015181840152602081019050611d3a565b50505050905090810190601f168015611d825780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b601560009054906101000a900460ff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b600a5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611f0c5780600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600d5481565b601560019054906101000a900460ff1681565b6000808284019050611f48848210158015611f435750838210155b611f9e565b8091505092915050565b6000808284029050611f7b6000851480611f765750838583811515611f7357fe5b04145b611f9e565b8091505092915050565b6000611f9383831115611f9e565b818303905092915050565b801515611faa57600080fd5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611fee57805160ff191683800117855561201c565b8280016001018555821561201c579182015b8281111561201b578251825591602001919060010190612000565b5b509050612029919061202d565b5090565b61204f91905b8082111561204b576000816000905550600101612033565b5090565b905600a165627a7a723058206c6483db81383e0885a8976c5b5d16972b432717f06214ed0e481eb6a917802e0029

Verified Source Code Partial Match

Compiler: v0.4.25-nightly.2018.6.8+commit.81c5a6e4 EVM: byzantium Optimization: No
PAIStandardToken.sol 272 lines
pragma solidity ^0.4.23;
/*
 * Ownable
 *
 * Base contract with an owner.
 * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner.
 */
contract Ownable {
  address public owner;
  
  constructor(){ 
    owner = msg.sender;
  }

  modifier onlyOwner() {
    if (msg.sender != owner) {
      revert();
    }
    _;
  }
  //transfer owner to another address
  function transferOwnership(address _newOwner) onlyOwner {
    if (_newOwner != address(0)) {
      owner = _newOwner;
    }
  }
}

/**
 * Math operations with safety checks
 */
contract SafeMath {
  function safeMul(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeDiv(uint256 a, uint256 b) internal returns (uint256) {
    assert(b > 0);
    uint256 c = a / b;
    assert(a == b * c + a % b);
    return c;
  }

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

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

  function assert(bool assertion) internal {
    if (!assertion) {
      revert();
    }
  }
}

contract Token {

  uint256 public totalSupply;
  function balanceOf(address _owner) constant returns (uint256 balance);

  function transfer(address _to, uint256 _value) returns (bool success);

  function transferFrom(address _from, address _to, uint256 _value) returns (bool success);

  function approve(address _spender, uint256 _value) returns (bool success);

  function allowance(address _owner, address _spender) constant returns (uint256 remaining);

  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

contract StandardToken is Token ,SafeMath{

   /**
   *
   * Fix for the ERC20 short address attack
   *
   * http://vessenes.com/the-erc20-short-address-attack-explained/
   */
  modifier onlyPayloadSize(uint size) {   
     if(msg.data.length != size + 4) {
       revert();
     }
     _;
  }

  //transfer lock flag
  bool transferLock = true;
  //transfer modifier
  modifier canTransfer() {
    if (transferLock) {
      revert();
    }
    _;
  }

  mapping (address => uint256) balances;
  mapping (address => mapping (address => uint256)) allowed;
  
  function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) canTransfer returns (bool success) {
    
    balances[msg.sender] = safeSub(balances[msg.sender], _value);
    balances[_to] = safeAdd(balances[_to], _value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3 * 32) canTransfer returns (bool success) {
    uint256 _allowance = allowed[_from][msg.sender];
    allowed[_from][msg.sender] = safeSub(_allowance, _value);
    balances[_from] = safeSub(balances[_from], _value);
    balances[_to] = safeAdd(balances[_to], _value);
    Transfer(_from, _to, _value);
    return true;
  }
  function balanceOf(address _owner) constant returns (uint256 balance) {
      return balances[_owner];
  }

   function approve(address _spender, uint256 _value) canTransfer returns (bool success) {

    // To change the approve amount you first have to reduce the addresses`
    //  allowance to zero by calling `approve(_spender, 0)` if it is not
    //  already 0 to mitigate the race condition described here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) revert();

    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  function allowance(address _owner, address _spender) constant returns (uint remaining) {
    return allowed[_owner][_spender];
  }
}

contract PAIStandardToken is StandardToken,Ownable{

  /* Public variables of the token */

  string public name;                   // name: eg pchain
  uint256 public decimals;              //How many decimals to show.
  string public symbol;                 //An identifier: eg PAI
  address public wallet;                //ETH wallet address
  uint public start;                    //crowd sale start time
  uint public end;                      //Crowd sale first phase end time
  uint public deadline;                 // Crowd sale deadline time


  uint256 public teamShare = 25;        //Team share
  uint256 public foundationShare = 25;  //Foundation share
  uint256 public posShare = 15;         //POS share
  uint256 public saleShare = 35;     //Private share
  
  
  address internal saleAddr;                                 //private sale wallet address
  uint256 public crowdETHTotal = 0;                 //The ETH amount of current crowdsale
  mapping (address => uint256) public crowdETHs;    //record user's balance of crowdsale
  uint256 public crowdPrice = 10000;                //crowdsale price 1(ETH):10000(PAI)
  uint256 public crowdTarget = 5000 ether;          //The total ETH of crowdsale
  bool public reflectSwitch = false;                // Whether to allow user to reflect PAI
  bool public blacklistSwitch = true;               // Whether to allow owner to set blacklist
  mapping(address => string) public reflects;       // reflect token to PAI address
  

  event PurchaseSuccess(address indexed _addr, uint256 _weiAmount,uint256 _crowdsaleEth,uint256 _balance);
  event EthSweepSuccess(address indexed _addr, uint256 _value);
  event SetReflectSwitchEvent(bool _b);
  event ReflectEvent(address indexed _addr,string _paiAddr);
  event BlacklistEvent(address indexed _addr,uint256 _b);
  event SetTransferLockEvent(bool _b);
  event CloseBlacklistSwitchEvent(bool _b);

  constructor(
      address _wallet,
      uint _s,
      uint _e,
      uint _d,
      address _teamAddr,
      address _fundationAddr,
      address _saleAddr,
      address _posAddr
      ) {
      totalSupply = 2100000000000000000000000000;       // Update total supply
      name = "PCHAIN";                  // Set the name for display purposes
      decimals = 18;           // Amount of decimals for display purposes
      symbol = "PAI";              // Set the symbol for display purposes
      wallet = _wallet;                   // Set ETH wallet address
      start = _s;                         // Set start time for crowsale
      end = _e;                           // Set Crowd sale first phase end time
      deadline = _d;                      // Set Crowd sale deadline time
      saleAddr = _saleAddr; // Set sale account address

      balances[_teamAddr] = safeMul(safeDiv(totalSupply,100),teamShare); //Team balance
      balances[_fundationAddr] = safeMul(safeDiv(totalSupply,100),foundationShare); //Foundation balance
      balances[_posAddr] = safeMul(safeDiv(totalSupply,100),posShare); //POS balance
      balances[_saleAddr] = safeMul(safeDiv(totalSupply,100),saleShare) ; //Sale balance  
      Transfer(address(0), _teamAddr,  balances[_teamAddr]);
      Transfer(address(0), _fundationAddr,  balances[_fundationAddr]);
      Transfer(address(0), _posAddr,  balances[_posAddr]);
      Transfer(address(0), _saleAddr,  balances[_saleAddr]);
  }
  //set transfer lock
  function setTransferLock(bool _lock) onlyOwner{
      transferLock = _lock;
      SetTransferLockEvent(_lock);
  }
  //Permanently turn off the blacklist switch 
  function closeBlacklistSwitch() onlyOwner{
    blacklistSwitch = false;
    CloseBlacklistSwitchEvent(false);
  }
  //set blacklist
  function setBlacklist(address _addr) onlyOwner{
      require(blacklistSwitch);
      uint256 tokenAmount = balances[_addr];             //calculate user token amount
      balances[_addr] = 0;//clear user‘s PAI balance
      balances[saleAddr] = safeAdd(balances[saleAddr],tokenAmount);  //add PAI tokenAmount to Sale
      Transfer(_addr, saleAddr, tokenAmount);
      BlacklistEvent(_addr,tokenAmount);
  } 

  //set reflect switch
  function setReflectSwitch(bool _s) onlyOwner{
      reflectSwitch = _s;
      SetReflectSwitchEvent(_s);
  }
  function reflect(string _paiAddress){
      require(reflectSwitch);
      reflects[msg.sender] = _paiAddress;
      ReflectEvent(msg.sender,_paiAddress);
  }

  function purchase() payable{
      require(block.timestamp <= deadline);                                 //the timestamp must be less than the deadline time
      require(tx.gasprice <= 60000000000);
      require(block.timestamp >= start);                                //the timestamp must be greater than the start time
      uint256 weiAmount = msg.value;                                    // The amount purchased by the current user
      require(weiAmount >= 0.1 ether);
      crowdETHTotal = safeAdd(crowdETHTotal,weiAmount);                 // Calculate the total amount purchased by all users
      require(crowdETHTotal <= crowdTarget);                            // The total amount is less than or equal to the target amount
      uint256 userETHTotal = safeAdd(crowdETHs[msg.sender],weiAmount);  // Calculate the total amount purchased by the current user
      if(block.timestamp <= end){                                       // whether the current timestamp is in the first phase
        require(userETHTotal <= 0.4 ether);                             // whether the total amount purchased by the current user is less than 0.4ETH
      }else{
        require(userETHTotal <= 10 ether);                              // whether the total amount purchased by the current user is less than 10ETH
      }      
      
      crowdETHs[msg.sender] = userETHTotal;                             // Record the total amount purchased by the current user

      uint256 tokenAmount = safeMul(weiAmount,crowdPrice);             //calculate user token amount
      balances[msg.sender] = safeAdd(tokenAmount,balances[msg.sender]);//recharge user‘s PAI balance
      balances[saleAddr] = safeSub(balances[saleAddr],tokenAmount);  //sub PAI tokenAmount from  Sale
      wallet.transfer(weiAmount);
      Transfer(saleAddr, msg.sender, tokenAmount);
      PurchaseSuccess(msg.sender,weiAmount,crowdETHs[msg.sender],tokenAmount); 
  }

  function () payable{
      purchase();
  }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
blacklistSwitch 0xf7decfd1 → bool
crowdETHTotal 0x59e415d3 → uint256
crowdETHs 0x76802b85 → uint256
crowdPrice 0x1a0b1b86 → uint256
crowdTarget 0x68a72fba → uint256
deadline 0x29dcb0cf → uint256
decimals 0x313ce567 → uint256
end 0xefbe1c1c → uint256
foundationShare 0xf72084b2 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
posShare 0xaaa7062b → uint256
reflectSwitch 0xd2161687 → bool
reflects 0x9622c5fd → string
saleShare 0x3097324c → uint256
start 0xbe9a6555 → uint256
symbol 0x95d89b41 → string
teamShare 0xea6ef2fe → uint256
totalSupply 0x18160ddd → uint256
wallet 0x521eb273 → address

Write Contract 10 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
closeBlacklistSwitch 0x9aef319f
No parameters
purchase 0x64edfbf0
No parameters
reflect 0xc1ce53fc
string _paiAddress
setBlacklist 0x4e054a67
address _addr
setReflectSwitch 0xa58fd85b
bool _s
setTransferLock 0xbff35618
bool _lock
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
transferOwnership 0xf2fde38b
address _newOwner

Recent Transactions

CSV View All 62 Transactions →
|
Hash Method Block Age From/To Value Txn Fee Type
0xe1e54b5c...023bbd transfer 10,702,812 IN 0x2e7eBe53...f6FE 0 ETH 0.00568115 ETH Legacy
0x23c5614f...398a3b transfer 10,659,217 IN 0xb5EFdb84...6A60 0 ETH 0.00770687 ETH Legacy
0xb1ece080...0ce351 transfer 10,659,027 IN 0x9Cba9734...0de9 0 ETH 0.00724579 ETH Legacy
0xf7db8c7a...f8efe7 transfer 10,658,904 IN 0x95F8B89d...EB9D 0 ETH 0.00897888 ETH Legacy
0x78d2b2fd...10aea6 transfer 10,657,900 IN 0x16C4E97b...F5e3 0 ETH 0.00803842 ETH Legacy
0xef67602f...2eb195 transfer 10,657,316 IN 0xb6ecF461...59F0 0 ETH 0.00605686 ETH Legacy
0xbacf61ba...5140d2 transfer 10,656,696 IN 0xCb34F196...4251 0 ETH 0.01556280 ETH Legacy
0xdf73b76d...85bebe transfer 10,653,258 IN 0x0D070796...92Fe 0 ETH 0.00726264 ETH Legacy
0x1d0be38e...97ff43 transfer 10,653,204 IN 0x0D070796...92Fe 0 ETH 0.00770456 ETH Legacy
0x4770ab65...86991f transfer 10,653,022 IN 0xbc45347d...9d16 0 ETH 0.00542474 ETH Legacy