Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xbf68b3756F82b522588511da682DFd7E3bf34deE
Balance 0 ETH
Nonce 1
Code Size 3196 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

3196 bytes
0x6080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b31461019557806318160ddd146101cd57806323b872dd146101f45780632ff2e9dc1461021e578063313ce56714610233578063395093511461025e5780633f4ba83a1461028257806342966c681461029957806346fbf68e146102b15780635c975abb146102d25780636ef8d66d146102e757806370a08231146102fc57806382dc1ec41461031d5780638456cb591461033e57806395d89b4114610353578063a457c2d714610368578063a9059cbb1461038c578063dd62ed3e146103b0575b600080fd5b34801561011757600080fd5b506101206103d7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a036004351660243561040e565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e2610432565b60408051918252519081900360200190f35b34801561020057600080fd5b506101b9600160a060020a0360043581169060243516604435610438565b34801561022a57600080fd5b506101e261045e565b34801561023f57600080fd5b5061024861046e565b6040805160ff9092168252519081900360200190f35b34801561026a57600080fd5b506101b9600160a060020a0360043516602435610473565b34801561028e57600080fd5b50610297610490565b005b3480156102a557600080fd5b506102976004356104ea565b3480156102bd57600080fd5b506101b9600160a060020a03600435166104f7565b3480156102de57600080fd5b506101b9610510565b3480156102f357600080fd5b50610297610519565b34801561030857600080fd5b506101e2600160a060020a0360043516610524565b34801561032957600080fd5b50610297600160a060020a036004351661053f565b34801561034a57600080fd5b5061029761055c565b34801561035f57600080fd5b506101206105b8565b34801561037457600080fd5b506101b9600160a060020a03600435166024356105ef565b34801561039857600080fd5b506101b9600160a060020a036004351660243561060c565b3480156103bc57600080fd5b506101e2600160a060020a0360043581169060243516610629565b60408051808201909152601481527f43524f53532065786368616e676520746f6b656e000000000000000000000000602082015281565b60045460009060ff161561042157600080fd5b61042b8383610654565b9392505050565b60025490565b60045460009060ff161561044b57600080fd5b6104568484846106d2565b949350505050565b6b204fce5e3e2502611000000081565b601281565b60045460009060ff161561048657600080fd5b61042b8383610847565b610499336104f7565b15156104a457600080fd5b60045460ff1615156104b557600080fd5b6004805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6104f433826108f7565b50565b600061050a60038363ffffffff6109c516565b92915050565b60045460ff1690565b610522336109fc565b565b600160a060020a031660009081526020819052604090205490565b610548336104f7565b151561055357600080fd5b6104f481610a44565b610565336104f7565b151561057057600080fd5b60045460ff161561058057600080fd5b6004805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b60408051808201909152600381527f5845580000000000000000000000000000000000000000000000000000000000602082015281565b60045460009060ff161561060257600080fd5b61042b8383610a8c565b60045460009060ff161561061f57600080fd5b61042b8383610ad7565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000600160a060020a038316151561066b57600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600160a060020a0383166000908152602081905260408120548211156106f757600080fd5b600160a060020a038416600090815260016020908152604080832033845290915290205482111561072757600080fd5b600160a060020a038316151561073c57600080fd5b600160a060020a038416600090815260208190526040902054610765908363ffffffff610bb616565b600160a060020a03808616600090815260208190526040808220939093559085168152205461079a908363ffffffff610bcd16565b600160a060020a038085166000908152602081815260408083209490945591871681526001825282812033825290915220546107dc908363ffffffff610bb616565b600160a060020a03808616600081815260016020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6000600160a060020a038316151561085e57600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610892908363ffffffff610bcd16565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a038216151561090c57600080fd5b600160a060020a03821660009081526020819052604090205481111561093157600080fd5b600254610944908263ffffffff610bb616565b600255600160a060020a038216600090815260208190526040902054610970908263ffffffff610bb616565b600160a060020a038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b6000600160a060020a03821615156109dc57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610a0d60038263ffffffff610bdf16565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610a5560038263ffffffff610c1616565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6000600160a060020a0383161515610aa357600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610892908363ffffffff610bb616565b33600090815260208190526040812054821115610af357600080fd5b600160a060020a0383161515610b0857600080fd5b33600090815260208190526040902054610b28908363ffffffff610bb616565b3360009081526020819052604080822092909255600160a060020a03851681522054610b5a908363ffffffff610bcd16565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60008083831115610bc657600080fd5b5050900390565b60008282018381101561042b57600080fd5b600160a060020a0381161515610bf457600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515610c2b57600080fd5b600160a060020a0316600090815260209190915260409020805460ff191660011790555600a165627a7a7230582018f3b9a9574c3a2cebaa7fd517342849dae8b70ac2edd499a45926c3d66df0770029

Verified Source Code Partial Match

Compiler: v0.4.25+commit.59dbf8f1 EVM: byzantium Optimization: Yes (200 runs)
XEXToken.sol 265 lines
pragma solidity ^0.4.25;

library SafeMath {
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
    if (_a == 0) {
      return 0;
    }
    uint256 c = _a * _b;
    require(c / _a == _b);
    return c;
  }

  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b > 0);
    uint256 c = _a / _b;
    return c;
  }

  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b <= _a);
    uint256 c = _a - _b;
    return c;
  }

  function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
    uint256 c = _a + _b;
    require(c >= _a);
    return c;
  }
}

library Roles {
  struct Role {
    mapping (address => bool) bearer;
  }

  function add(Role storage _role, address _account) internal {
    require(_account != address(0));
    _role.bearer[_account] = true;
  }

  function remove(Role storage _role, address _account) internal {
    require(_account != address(0));
    _role.bearer[_account] = false;
  }

  function has(Role storage _role, address _account) internal view returns (bool)
  {
    require(_account != address(0));
    return _role.bearer[_account];
  }
}

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 ERC20 is IERC20 {
  using SafeMath for uint256;

  mapping(address => uint256) private balances;

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

  uint256 private totalSupply_;

  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  function balanceOf(address _owner) public view returns (uint256) {
    return balances[_owner];
  }

  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_value <= balances[msg.sender]);
    require(_to != address(0));

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

  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;
  }

  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);
    require(_to != address(0));

    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;
  }

  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;
  }

  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;
  }

  function _mint(address _account, uint256 _amount) internal {
    require(_account != 0);

    totalSupply_ = totalSupply_.add(_amount);
    balances[_account] = balances[_account].add(_amount);
    emit Transfer(address(0), _account, _amount);
  }

  function _burn(address _account, uint256 _amount) internal {
    require(_account != 0);
    require(_amount <= balances[_account]);

    totalSupply_ = totalSupply_.sub(_amount);
    balances[_account] = balances[_account].sub(_amount);
    emit Transfer(_account, address(0), _amount);
  }
}

contract PauserRole {
  using Roles for Roles.Role;

  event PauserAdded(address indexed _account);
  event PauserRemoved(address indexed _account);

  Roles.Role private pausers;

  constructor() public {
    addPauser_(msg.sender);
  }

  modifier onlyPauser() {
    require(isPauser(msg.sender));
    _;
  }

  function isPauser(address _account) public view returns (bool) {
    return pausers.has(_account);
  }

  function addPauser(address _account) public onlyPauser {
    addPauser_(_account);
  }

  function renouncePauser() public {
    removePauser_(msg.sender);
  }

  function addPauser_(address _account) internal {
    pausers.add(_account);
    emit PauserAdded(_account);
  }

  function removePauser_(address _account) internal {
    pausers.remove(_account);
    emit PauserRemoved(_account);
  }
}

contract Pausable is PauserRole {
  event Pause();
  event Unpause();

  bool private paused_ = false;

  function paused() public view returns(bool) {
    return paused_;
  }

  modifier whenNotPaused() {
    require(!paused_);
    _;
  }

  modifier whenPaused() {
    require(paused_);
    _;
  }

  function pause() public onlyPauser whenNotPaused {
    paused_ = true;
    emit Pause();
  }

  function unpause() public onlyPauser whenPaused {
    paused_ = false;
    emit Unpause();
  }
}

contract ERC20Pausable is ERC20, Pausable {
  function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }

  function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
    return super.approve(_spender, _value);
  }

  function increaseAllowance(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
    return super.increaseAllowance(_spender, _addedValue);
  }

  function decreaseAllowance(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
    return super.decreaseAllowance(_spender, _subtractedValue);
  }
}

contract ERC20Burnable is ERC20 {
  function burn(uint256 value) public {
    _burn(msg.sender, value);
  }
}

contract XEXToken is ERC20Pausable, ERC20Burnable {
  string public constant name = "CROSS exchange token";
  string public constant symbol = "XEX";
  uint8 public constant decimals = 18;
  uint256 public constant INITIAL_SUPPLY = 10000000000 * (10 ** uint256(decimals));

  constructor() public {
    _mint(msg.sender, INITIAL_SUPPLY);
  }
}

Read Contract

INITIAL_SUPPLY 0x2ff2e9dc → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isPauser 0x46fbf68e → bool
name 0x06fdde03 → string
paused 0x5c975abb → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 10 functions

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

addPauser 0x82dc1ec4
address _account
approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
burn 0x42966c68
uint256 value
decreaseAllowance 0xa457c2d7
address _spender
uint256 _subtractedValue
returns: bool
increaseAllowance 0x39509351
address _spender
uint256 _addedValue
returns: bool
pause 0x8456cb59
No parameters
renouncePauser 0x6ef8d66d
No parameters
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
unpause 0x3f4ba83a
No parameters

Token Balances (1)

View Transfers →
USDT 5

Recent Transactions

No transactions found for this address