Address Contract Partially Verified
Address
0xbf68b3756F82b522588511da682DFd7E3bf34deE
Balance
0 ETH
Nonce
1
Code Size
3196 bytes
Creator
0x9e6202e9...813d at tx 0x81b4ad06...e9172b
Indexed Transactions
0
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 →Recent Transactions
No transactions found for this address