ETH Price: $2,800.36 (+2.17%)

Token

Alkion Token (ALK)
 

Overview

Max Total Supply

50,000,000,000 ALK

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
72,500,000 ALK

Value
$0.00
0x870c80562feb03b9e6839f3b3976ba24699ce7f6
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AlkionToken

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-01-24
*/

pragma solidity ^0.5.0;

// File: openzeppelin-solidity/contracts/access/Roles.sol

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}

// File: openzeppelin-solidity/contracts/access/roles/PauserRole.sol

contract PauserRole {
    using Roles for Roles.Role;

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

    Roles.Role private _pausers;

    constructor () internal {
        _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);
    }
}

// File: openzeppelin-solidity/contracts/lifecycle/Pausable.sol

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is PauserRole {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () internal {
        _paused = false;
    }

    /**
     * @return true if the contract is paused, false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

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

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

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyPauser whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyPauser whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

// File: openzeppelin-solidity/contracts/ownership/Ownable.sol

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, 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 unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 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 unsigned integers, 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 unsigned integers, 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 unsigned integers 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;
    }
}

// File: contracts/AlkionToken.sol

/**
 * @title Alkion Token
 * Note they can later distribute these tokens as they wish using `transfer` and other
 * `ERC20` functions.
 */
contract AlkionToken is Pausable, Ownable {
  	using SafeMath for uint256;
  	
	string internal constant ALREADY_LOCKED = 'Tokens already locked';
	string internal constant NOT_LOCKED = 'No tokens locked';
	string internal constant AMOUNT_ZERO = 'Amount can not be 0';
	string internal constant NOT_OWNER = 'You are not owner';
	string internal constant NOT_ADMIN = 'You are not admin';
	string internal constant NOT_ENOUGH_TOKEN = 'Not enough token';
	string internal constant NOT_ENOUGH_ALLOWED = 'Not enough allowed';
	string internal constant INVALID_TARGET_ADDRESS = 'Invalid target address';
	string internal constant UNABLE_DEPOSIT = 'Unable to deposit';

	string 	public constant name 		= "Alkion Token";
	string 	public constant symbol 		= "ALK";
	uint8 	public constant decimals 	= 18;
  
	uint256 internal constant INITIAL_SUPPLY = 50000000000 * (10 ** uint256(decimals));
	    
    mapping (address => uint256) internal _balances;

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

    uint256 internal _totalSupply;
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);    		
	
	// -----
	
	mapping(address => bytes32[]) internal lockReason;
	
	uint256 internal sellingTime = 99999999999999;

    struct lockToken {
        uint256 amount;
        uint256 validity;
        bool claimed;
    }
    
    mapping(address => mapping(bytes32 => lockToken)) internal locked;
        
    event Locked(
        address indexed _of,
        bytes32 indexed _reason,
        uint256 _amount,
        uint256 _validity
    );

    event Unlocked(
        address indexed _of,
        bytes32 indexed _reason,
        uint256 _amount
    );
    
    // --
    
	modifier onlyOwner() {
		require(isOwner(), NOT_OWNER);
		_;
	}
	
	// --
  
	constructor() 
		public 
	{	
		_mint(msg.sender, INITIAL_SUPPLY);	
	}
		
	function startSelling(uint256 _time)
		onlyOwner
		public 
	{
		require(_time != 0);
		sellingTime = _time;
	}
	
	function whenSelling()
		public
		view
		returns (uint256) 	
	{
		if(!isOwner()) return 0;
		return sellingTime;
	}
	
    function totalSupply() 
    	public 
    	view 
    	returns (uint256) 
    {
        return _totalSupply;
    }

    function balanceOf(address owner) 
    	public 
    	view 
    	returns (uint256 amount) 
    {
        amount = _balances[owner];
        for (uint256 i = 0; i < lockReason[owner].length; i++) {
            amount = amount.add(tokensLocked(owner, lockReason[owner][i]));
        }        
    }
    
    function lockedBalanceOf(address _of)
        public
        view
        returns (uint256 amount)
    {
        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            amount = amount.add(tokensLocked(_of, lockReason[_of][i]));
        }
    }    

    function allowance(address owner, address spender) 
    	public 
    	view 
    	returns (uint256) 
    {
        return _allowed[owner][spender];
    }	
	
	function approve(address spender, uint256 value)
		whenNotPaused 
		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)
		whenNotPaused 
		public 
		returns (bool) 
	{
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        emit Approval(from, msg.sender, _allowed[from][msg.sender]);
        return true;		
	}	

	function transfer(address to, uint256 value)
		whenNotPaused
		public
		returns (bool) 
	{
        _transfer(msg.sender, to, value);
        return true;		
	}
	
    function transferWithLock(address _from, address _to, bytes32 _reason, uint256 _amount, uint256 _time)
    	whenNotPaused
    	onlyOwner
        public
        returns (bool)
    {	        
	    require(_amount <= _balances[_from], NOT_ENOUGH_TOKEN);
	    require(_to != address(0), INVALID_TARGET_ADDRESS);
        require(tokensLocked(_to, _reason) == 0, ALREADY_LOCKED);	            
        require(_amount != 0, AMOUNT_ZERO);
            
        uint256 validUntil = _time; 

        if (locked[_to][_reason].amount == 0)
            lockReason[_to].push(_reason);
	
	    _balances[_from] = _balances[_from].sub(_amount);
        locked[_to][_reason] = lockToken(_amount, validUntil, false);
        
        emit Locked(_to, _reason, _amount, validUntil);
        return true;
    }
    
    function transferCancelWithLock(address _from, address _to, bytes32 _reason)
        whenNotPaused
        onlyOwner
        public
        returns (bool)
    {
    	uint256 l = tokensLocked(_from, _reason);
		require(l > 0, NOT_LOCKED);
		
		locked[_from][_reason].claimed = true;
		_balances[_to] = _balances[_to].add(l);
		return true;
    }
    
    function tokensLocked(address _of, bytes32 _reason)
        public
        view
        returns (uint256 amount)
    {
        if (!locked[_of][_reason].claimed)
            amount = locked[_of][_reason].amount;
    }    
    
    function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time)
        public
        view
        returns (uint256 amount)
    {
        uint256 t = sellingTime.add(locked[_of][_reason].validity);
        if (t > _time)
            amount = locked[_of][_reason].amount;        
	}
        
    function extendLock(address _to, bytes32 _reason, uint256 _time)
    	whenNotPaused
    	onlyOwner
        public
        returns (bool)
    {
        require(tokensLocked(_to, _reason) > 0, NOT_LOCKED);

        locked[_to][_reason].validity = locked[_to][_reason].validity.add(_time);

        emit Locked(_to, _reason, locked[_to][_reason].amount, locked[_to][_reason].validity);
        return true;
    } 
    
    function tokensUnlockable(address _of, bytes32 _reason)
        public
        view
        returns (uint256 amount)
    {
		uint256 t = sellingTime.add(locked[_of][_reason].validity);
        if (t <= now && !locked[_of][_reason].claimed)
            amount = locked[_of][_reason].amount;		        
    }
    
    function unlock(address _of)
    	whenNotPaused
    	onlyOwner
        public
        returns (uint256 unlockableTokens)
    {	
        uint256 lockedTokens;

        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            lockedTokens = tokensUnlockable(_of, lockReason[_of][i]);
            if (lockedTokens > 0) {
                unlockableTokens = unlockableTokens.add(lockedTokens);
                locked[_of][lockReason[_of][i]].claimed = true;
                emit Unlocked(_of, lockReason[_of][i], lockedTokens);
            }
        }
        
        if (unlockableTokens > 0) {
			_balances[_of] = _balances[_of].add(unlockableTokens);
        }
    }
    
    function countLockedReasons(address _of)
		public
		view
		returns (uint256)    
    {
    	return lockReason[_of].length;
    }
    
	function lockedReason(address _of, uint256 _idx)
		public
		view
		returns (bytes32)
	{
		if(_idx >= lockReason[_of].length) 
			return bytes32(0);
		return lockReason[_of][_idx];
	}
	
    function lockedTime(address _of, bytes32 _reason)
        public
        view
        returns (uint256 validity)
    {
    	validity = 0;
        if (!locked[_of][_reason].claimed)
            validity = locked[_of][_reason].validity;
    }
    
    function burn(uint256 value)
    	whenNotPaused 
    	public 
    {
        _burn(msg.sender, value);
    }

    function burnFrom(address from, uint256 value)
    	whenNotPaused     
    	public 
    {
        _burnFrom(from, value);
    }
    
    function _mint(address account, uint256 value) 
    	internal 
    {
        require(account != address(0));

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }
        
    function _transfer(address from, address to, uint256 value) 
    	internal 
    {   
    	require(value != 0, AMOUNT_ZERO); 
	    require(value <= _balances[from], NOT_ENOUGH_TOKEN);
	    require(to != address(0), INVALID_TARGET_ADDRESS);	            
        
        uint256 lockedBalance = lockedBalanceOf(to);
        require(lockedBalance == 0, UNABLE_DEPOSIT);

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }    
    
    function _burn(address account, uint256 value) 
    	internal 
    {
        require(account != address(0), INVALID_TARGET_ADDRESS);
        require(value <= _balances[account], NOT_ENOUGH_TOKEN);

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    function _burnFrom(address account, uint256 value) 
    	internal 
    {
    	require(value <= _allowed[account][msg.sender], NOT_ENOUGH_ALLOWED);
        _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value);
        _burn(account, value);
        emit Approval(account, msg.sender, _allowed[account][msg.sender]);
    }            	
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"lockedTime","outputs":[{"name":"validity","type":"uint256"}],"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":"_of","type":"address"}],"name":"countLockedReasons","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_time","type":"uint256"}],"name":"tokensLockedAtTime","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"_of","type":"address"}],"name":"unlock","outputs":[{"name":"unlockableTokens","type":"uint256"}],"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":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensUnlockable","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whenSelling","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"lockedBalanceOf","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensLocked","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_idx","type":"uint256"}],"name":"lockedReason","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_time","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"transferCancelWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_time","type":"uint256"}],"name":"startSelling","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_to","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_time","type":"uint256"}],"name":"extendLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_validity","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Unlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"}]

6080604052655af3107a3fff6006553480156200001b57600080fd5b506200003033640100000000620000ac810204565b60018054600160a860020a0319166101003381029190911791829055604051600160a060020a039190920416906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3620000a6336ba18f07d736b90be550000000640100000000620000fe810204565b6200026c565b620000c7600082640100000000620021f3620001bf82021704565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600160a060020a03821615156200011457600080fd5b600454620001319082640100000000620019e76200021a82021704565b600455600160a060020a038216600090815260026020526040902054620001679082640100000000620019e76200021a82021704565b600160a060020a03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a0381161515620001d557600080fd5b620001ea828264010000000062000234810204565b15620001f557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000828201838110156200022d57600080fd5b9392505050565b6000600160a060020a03821615156200024c57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61228d806200027c6000396000f3fe608060405234801561001057600080fd5b5060043610610223576000357c0100000000000000000000000000000000000000000000000000000000900480636ef8d66d1161013757806395d89b41116100ca578063ce1392b411610099578063ce1392b414610636578063d3d1a2851461066c578063dd62ed3e14610689578063e4d542b6146106b7578063f2fde38b146106e957610223565b806395d89b4114610594578063a053dea51461059c578063a9059cbb146105c8578063bec9ba34146105f457610223565b806382dc1ec41161010657806382dc1ec41461053a5780638456cb59146105605780638da5cb5b146105685780638f32d59b1461058c57610223565b80636ef8d66d146104d857806370a08231146104e0578063715018a61461050657806379cc67901461050e57610223565b8063313ce567116101ba5780635294d0e8116101895780635294d0e81461044a5780635429e9ad14610476578063593557361461047e5780635c975abb146104a45780635ca48d8c146104ac57610223565b8063313ce567146103df5780633f4ba83a146103fd57806342966c681461040757806346fbf68e1461042457610223565b8063179e91f1116101f6578063179e91f11461034957806318160ddd1461037b57806323b872dd146103835780632f6c493c146103b957610223565b806306fdde031461022857806307409b81146102a5578063095ea7b3146102e35780630ad31bbd14610323575b600080fd5b61023061070f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026a578181015183820152602001610252565b50505050905090810190601f1680156102975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d1600480360360408110156102bb57600080fd5b50600160a060020a038135169060200135610746565b60408051918252519081900360200190f35b61030f600480360360408110156102f957600080fd5b50600160a060020a0381351690602001356107a5565b604080519115158252519081900360200190f35b6102d16004803603602081101561033957600080fd5b5035600160a060020a0316610834565b6102d16004803603606081101561035f57600080fd5b50600160a060020a03813516906020810135906040013561084f565b6102d16108c4565b61030f6004803603606081101561039957600080fd5b50600160a060020a038135811691602081013590911690604001356108cb565b6102d1600480360360208110156103cf57600080fd5b5035600160a060020a03166109a7565b6103e7610c1c565b6040805160ff9092168252519081900360200190f35b610405610c21565b005b6104056004803603602081101561041d57600080fd5b5035610c85565b61030f6004803603602081101561043a57600080fd5b5035600160a060020a0316610ca2565b6102d16004803603604081101561046057600080fd5b50600160a060020a038135169060200135610cb4565b6102d1610d5c565b6102d16004803603602081101561049457600080fd5b5035600160a060020a0316610d7b565b61030f610df5565b6102d1600480360360408110156104c257600080fd5b50600160a060020a038135169060200135610dfe565b610405610e57565b6102d1600480360360208110156104f657600080fd5b5035600160a060020a0316610e62565b610405610ed6565b6104056004803603604081101561052457600080fd5b50600160a060020a038135169060200135610fb0565b6104056004803603602081101561055057600080fd5b5035600160a060020a0316610fce565b610405610feb565b610570611050565b60408051600160a060020a039092168252519081900360200190f35b61030f611064565b61023061107a565b6102d1600480360360408110156105b257600080fd5b50600160a060020a0381351690602001356110b1565b61030f600480360360408110156105de57600080fd5b50600160a060020a03813516906020013561110f565b61030f600480360360a081101561060a57600080fd5b50600160a060020a03813581169160208101359091169060408101359060608101359060800135611136565b61030f6004803603606081101561064c57600080fd5b50600160a060020a03813581169160208101359091169060400135611546565b6104056004803603602081101561068257600080fd5b50356116e0565b6102d16004803603604081101561069f57600080fd5b50600160a060020a038135811691602001351661176e565b61030f600480360360608110156106cd57600080fd5b50600160a060020a038135169060208101359060400135611799565b610405600480360360208110156106ff57600080fd5b5035600160a060020a0316611961565b60408051808201909152600c81527f416c6b696f6e20546f6b656e0000000000000000000000000000000000000000602082015281565b600160a060020a038216600090815260076020908152604080832084845290915281206002015460ff16151561079f5750600160a060020a03821660009081526007602090815260408083208484529091529020600101545b92915050565b60015460009060ff16156107b857600080fd5b600160a060020a03831615156107cd57600080fd5b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600160a060020a031660009081526005602052604090205490565b600160a060020a0383166000908152600760209081526040808320858452909152812060010154600654829161088b919063ffffffff6119e716565b9050828111156108bc57600160a060020a038516600090815260076020908152604080832087845290915290205491505b509392505050565b6004545b90565b60015460009060ff16156108de57600080fd5b600160a060020a0384166000908152600360209081526040808320338452909152902054610912908363ffffffff611a0016565b600160a060020a0385166000908152600360209081526040808320338452909152902055610941848484611a15565b600160a060020a0384166000818152600360209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60015460009060ff16156109ba57600080fd5b6109c2611064565b60408051808201909152601181526000805160206122428339815191526020820152901515610a725760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a37578181015183820152602001610a1f565b50505050905090810190601f168015610a645780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000805b600160a060020a038416600090815260056020526040902054811015610bc957600160a060020a03841660009081526005602052604090208054610ad191869184908110610ac157fe5b9060005260206000200154610cb4565b91506000821115610bc157610aec838363ffffffff6119e716565b600160a060020a038516600090815260076020908152604080832060059092528220805493965060019391929185908110610b2357fe5b60009182526020808320919091015483528281019390935260409182018120600201805460ff191694151594909417909355600160a060020a038716835260059091529020805482908110610b7457fe5b906000526020600020015484600160a060020a03167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b600101610a77565b506000821115610c1657600160a060020a038316600090815260026020526040902054610bfc908363ffffffff6119e716565b600160a060020a0384166000908152600260205260409020555b50919050565b601281565b610c2a33610ca2565b1515610c3557600080fd5b60015460ff161515610c4657600080fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b60015460ff1615610c9557600080fd5b610c9f3382611d1f565b50565b600061079f818363ffffffff611ee916565b600160a060020a03821660009081526007602090815260408083208484529091528120600101546006548291610cf0919063ffffffff6119e716565b9050428111158015610d295750600160a060020a038416600090815260076020908152604080832086845290915290206002015460ff16155b15610d5557600160a060020a038416600090815260076020908152604080832086845290915290205491505b5092915050565b6000610d66611064565b1515610d74575060006108c8565b5060065490565b6000805b600160a060020a038316600090815260056020526040902054811015610c1657600160a060020a03831660009081526005602052604090208054610deb91610dde9186919085908110610dce57fe5b9060005260206000200154610dfe565b839063ffffffff6119e716565b9150600101610d7f565b60015460ff1690565b600160a060020a038216600090815260076020908152604080832084845290915281206002015460ff16151561079f5750600160a060020a03919091166000908152600760209081526040808320938352929052205490565b610e6033611f20565b565b600160a060020a038116600090815260026020526040812054905b600160a060020a038316600090815260056020526040902054811015610c1657600160a060020a03831660009081526005602052604090208054610ecc91610dde9186919085908110610dce57fe5b9150600101610e7d565b610ede611064565b60408051808201909152601181526000805160206122428339815191526020820152901515610f525760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b506001546040516000916101009004600160a060020a0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36001805474ffffffffffffffffffffffffffffffffffffffff0019169055565b60015460ff1615610fc057600080fd5b610fca8282611f68565b5050565b610fd733610ca2565b1515610fe257600080fd5b610c9f816120d6565b610ff433610ca2565b1515610fff57600080fd5b60015460ff161561100f57600080fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6001546101009004600160a060020a031690565b6001546101009004600160a060020a0316331490565b60408051808201909152600381527f414c4b0000000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a03821660009081526005602052604081205482106110d85750600061079f565b600160a060020a03831660009081526005602052604090208054839081106110fc57fe5b9060005260206000200154905092915050565b60015460009060ff161561112257600080fd5b61112d338484611a15565b50600192915050565b60015460009060ff161561114957600080fd5b611151611064565b604080518082019091526011815260008051602061224283398151915260208201529015156111c55760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a038616600090815260026020908152604091829020548251808401909352601083527f4e6f7420656e6f75676820746f6b656e00000000000000000000000000000000918301919091528411156112695760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060408051808201909152601681527f496e76616c6964207461726765742061646472657373000000000000000000006020820152600160a060020a03861615156112f95760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b506113048585610dfe565b60408051808201909152601581527f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000602082015290156113895760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060408051808201909152601381527f416d6f756e742063616e206e6f7420626520300000000000000000000000000060208201528315156114105760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a03851660009081526007602090815260408083208784529091529020548290151561146957600160a060020a0386166000908152600560209081526040822080546001810182559083529120018590555b600160a060020a038716600090815260026020526040902054611492908563ffffffff611a0016565b600160a060020a038881166000908152600260208181526040808420959095558451606081018652898152808201878152818701858152958d16808652600784528786208d875284529487902091518255516001820155935193909101805460ff19169315159390931790925582518781529182018490528251889391927fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd92908290030190a35060019695505050505050565b60015460009060ff161561155957600080fd5b611561611064565b604080518082019091526011815260008051602061224283398151915260208201529015156115d55760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060006115e28584610dfe565b60408051808201909152601081527f4e6f20746f6b656e73206c6f636b65640000000000000000000000000000000060208201529091506000821161166c5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a03808616600090815260076020908152604080832087845282528083206002908101805460ff19166001179055938816835292905220546116bb908263ffffffff6119e716565b600160a060020a03851660009081526002602052604090205550600190509392505050565b6116e8611064565b6040805180820190915260118152600080516020612242833981519152602082015290151561175c5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5080151561176957600080fd5b600655565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60015460009060ff16156117ac57600080fd5b6117b4611064565b604080518082019091526011815260008051602061224283398151915260208201529015156118285760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060006118358585610dfe565b60408051808201909152601081527f4e6f20746f6b656e73206c6f636b656400000000000000000000000000000000602082015291106118ba5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a03841660009081526007602090815260408083208684529091529020600101546118f2908363ffffffff6119e716565b600160a060020a03851660008181526007602090815260408083208884528252918290206001810185905554825190815290810193909352805186937fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd92908290030190a35060019392505050565b611969611064565b604080518082019091526011815260008051602061224283398151915260208201529015156119dd5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50610c9f8161211e565b6000828201838110156119f957600080fd5b9392505050565b600082821115611a0f57600080fd5b50900390565b60408051808201909152601381527f416d6f756e742063616e206e6f742062652030000000000000000000000000006020820152811515611a9b5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a038316600090815260026020908152604091829020548251808401909352601083527f4e6f7420656e6f75676820746f6b656e0000000000000000000000000000000091830191909152821115611b3f5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060408051808201909152601681527f496e76616c6964207461726765742061646472657373000000000000000000006020820152600160a060020a0383161515611bcf5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b506000611bdb83610d7b565b60408051808201909152601181527f556e61626c6520746f206465706f73697400000000000000000000000000000060208201529091508115611c635760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a038416600090815260026020526040902054611c8d908363ffffffff611a0016565b600160a060020a038086166000908152600260205260408082209390935590851681522054611cc2908363ffffffff6119e716565b600160a060020a0380851660008181526002602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505050565b60408051808201909152601681527f496e76616c6964207461726765742061646472657373000000000000000000006020820152600160a060020a0383161515611dae5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a038216600090815260026020908152604091829020548251808401909352601083527f4e6f7420656e6f75676820746f6b656e0000000000000000000000000000000091830191909152821115611e525760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600454611e66908263ffffffff611a0016565b600455600160a060020a038216600090815260026020526040902054611e92908263ffffffff611a0016565b600160a060020a0383166000818152600260209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b6000600160a060020a0382161515611f0057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b611f3160008263ffffffff6121a716565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b600160a060020a0382166000908152600360209081526040808320338452825291829020548251808401909352601283527f4e6f7420656e6f75676820616c6c6f7765640000000000000000000000000000918301919091528211156120135760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a0382166000908152600360209081526040808320338452909152902054612048908263ffffffff611a0016565b600160a060020a03831660009081526003602090815260408083203384529091529020556120768282611d1f565b600160a060020a0382166000818152600360209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35050565b6120e760008263ffffffff6121f316565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600160a060020a038116151561213357600080fd5b600154604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360018054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600160a060020a03811615156121bc57600080fd5b6121c68282611ee9565b15156121d157600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561220857600080fd5b6122128282611ee9565b1561221c57600080fd5b600160a060020a0316600090815260209190915260409020805460ff1916600117905556fe596f7520617265206e6f74206f776e6572000000000000000000000000000000a165627a7a723058205dfcac789400b98c6679934101ef305feb4cf432b2de6f13988186f9dfe49d410029

Deployed Bytecode

0x608060405234801561001057600080fd5b5060043610610223576000357c0100000000000000000000000000000000000000000000000000000000900480636ef8d66d1161013757806395d89b41116100ca578063ce1392b411610099578063ce1392b414610636578063d3d1a2851461066c578063dd62ed3e14610689578063e4d542b6146106b7578063f2fde38b146106e957610223565b806395d89b4114610594578063a053dea51461059c578063a9059cbb146105c8578063bec9ba34146105f457610223565b806382dc1ec41161010657806382dc1ec41461053a5780638456cb59146105605780638da5cb5b146105685780638f32d59b1461058c57610223565b80636ef8d66d146104d857806370a08231146104e0578063715018a61461050657806379cc67901461050e57610223565b8063313ce567116101ba5780635294d0e8116101895780635294d0e81461044a5780635429e9ad14610476578063593557361461047e5780635c975abb146104a45780635ca48d8c146104ac57610223565b8063313ce567146103df5780633f4ba83a146103fd57806342966c681461040757806346fbf68e1461042457610223565b8063179e91f1116101f6578063179e91f11461034957806318160ddd1461037b57806323b872dd146103835780632f6c493c146103b957610223565b806306fdde031461022857806307409b81146102a5578063095ea7b3146102e35780630ad31bbd14610323575b600080fd5b61023061070f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026a578181015183820152602001610252565b50505050905090810190601f1680156102975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d1600480360360408110156102bb57600080fd5b50600160a060020a038135169060200135610746565b60408051918252519081900360200190f35b61030f600480360360408110156102f957600080fd5b50600160a060020a0381351690602001356107a5565b604080519115158252519081900360200190f35b6102d16004803603602081101561033957600080fd5b5035600160a060020a0316610834565b6102d16004803603606081101561035f57600080fd5b50600160a060020a03813516906020810135906040013561084f565b6102d16108c4565b61030f6004803603606081101561039957600080fd5b50600160a060020a038135811691602081013590911690604001356108cb565b6102d1600480360360208110156103cf57600080fd5b5035600160a060020a03166109a7565b6103e7610c1c565b6040805160ff9092168252519081900360200190f35b610405610c21565b005b6104056004803603602081101561041d57600080fd5b5035610c85565b61030f6004803603602081101561043a57600080fd5b5035600160a060020a0316610ca2565b6102d16004803603604081101561046057600080fd5b50600160a060020a038135169060200135610cb4565b6102d1610d5c565b6102d16004803603602081101561049457600080fd5b5035600160a060020a0316610d7b565b61030f610df5565b6102d1600480360360408110156104c257600080fd5b50600160a060020a038135169060200135610dfe565b610405610e57565b6102d1600480360360208110156104f657600080fd5b5035600160a060020a0316610e62565b610405610ed6565b6104056004803603604081101561052457600080fd5b50600160a060020a038135169060200135610fb0565b6104056004803603602081101561055057600080fd5b5035600160a060020a0316610fce565b610405610feb565b610570611050565b60408051600160a060020a039092168252519081900360200190f35b61030f611064565b61023061107a565b6102d1600480360360408110156105b257600080fd5b50600160a060020a0381351690602001356110b1565b61030f600480360360408110156105de57600080fd5b50600160a060020a03813516906020013561110f565b61030f600480360360a081101561060a57600080fd5b50600160a060020a03813581169160208101359091169060408101359060608101359060800135611136565b61030f6004803603606081101561064c57600080fd5b50600160a060020a03813581169160208101359091169060400135611546565b6104056004803603602081101561068257600080fd5b50356116e0565b6102d16004803603604081101561069f57600080fd5b50600160a060020a038135811691602001351661176e565b61030f600480360360608110156106cd57600080fd5b50600160a060020a038135169060208101359060400135611799565b610405600480360360208110156106ff57600080fd5b5035600160a060020a0316611961565b60408051808201909152600c81527f416c6b696f6e20546f6b656e0000000000000000000000000000000000000000602082015281565b600160a060020a038216600090815260076020908152604080832084845290915281206002015460ff16151561079f5750600160a060020a03821660009081526007602090815260408083208484529091529020600101545b92915050565b60015460009060ff16156107b857600080fd5b600160a060020a03831615156107cd57600080fd5b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600160a060020a031660009081526005602052604090205490565b600160a060020a0383166000908152600760209081526040808320858452909152812060010154600654829161088b919063ffffffff6119e716565b9050828111156108bc57600160a060020a038516600090815260076020908152604080832087845290915290205491505b509392505050565b6004545b90565b60015460009060ff16156108de57600080fd5b600160a060020a0384166000908152600360209081526040808320338452909152902054610912908363ffffffff611a0016565b600160a060020a0385166000908152600360209081526040808320338452909152902055610941848484611a15565b600160a060020a0384166000818152600360209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60015460009060ff16156109ba57600080fd5b6109c2611064565b60408051808201909152601181526000805160206122428339815191526020820152901515610a725760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a37578181015183820152602001610a1f565b50505050905090810190601f168015610a645780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000805b600160a060020a038416600090815260056020526040902054811015610bc957600160a060020a03841660009081526005602052604090208054610ad191869184908110610ac157fe5b9060005260206000200154610cb4565b91506000821115610bc157610aec838363ffffffff6119e716565b600160a060020a038516600090815260076020908152604080832060059092528220805493965060019391929185908110610b2357fe5b60009182526020808320919091015483528281019390935260409182018120600201805460ff191694151594909417909355600160a060020a038716835260059091529020805482908110610b7457fe5b906000526020600020015484600160a060020a03167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b600101610a77565b506000821115610c1657600160a060020a038316600090815260026020526040902054610bfc908363ffffffff6119e716565b600160a060020a0384166000908152600260205260409020555b50919050565b601281565b610c2a33610ca2565b1515610c3557600080fd5b60015460ff161515610c4657600080fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b60015460ff1615610c9557600080fd5b610c9f3382611d1f565b50565b600061079f818363ffffffff611ee916565b600160a060020a03821660009081526007602090815260408083208484529091528120600101546006548291610cf0919063ffffffff6119e716565b9050428111158015610d295750600160a060020a038416600090815260076020908152604080832086845290915290206002015460ff16155b15610d5557600160a060020a038416600090815260076020908152604080832086845290915290205491505b5092915050565b6000610d66611064565b1515610d74575060006108c8565b5060065490565b6000805b600160a060020a038316600090815260056020526040902054811015610c1657600160a060020a03831660009081526005602052604090208054610deb91610dde9186919085908110610dce57fe5b9060005260206000200154610dfe565b839063ffffffff6119e716565b9150600101610d7f565b60015460ff1690565b600160a060020a038216600090815260076020908152604080832084845290915281206002015460ff16151561079f5750600160a060020a03919091166000908152600760209081526040808320938352929052205490565b610e6033611f20565b565b600160a060020a038116600090815260026020526040812054905b600160a060020a038316600090815260056020526040902054811015610c1657600160a060020a03831660009081526005602052604090208054610ecc91610dde9186919085908110610dce57fe5b9150600101610e7d565b610ede611064565b60408051808201909152601181526000805160206122428339815191526020820152901515610f525760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b506001546040516000916101009004600160a060020a0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36001805474ffffffffffffffffffffffffffffffffffffffff0019169055565b60015460ff1615610fc057600080fd5b610fca8282611f68565b5050565b610fd733610ca2565b1515610fe257600080fd5b610c9f816120d6565b610ff433610ca2565b1515610fff57600080fd5b60015460ff161561100f57600080fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6001546101009004600160a060020a031690565b6001546101009004600160a060020a0316331490565b60408051808201909152600381527f414c4b0000000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a03821660009081526005602052604081205482106110d85750600061079f565b600160a060020a03831660009081526005602052604090208054839081106110fc57fe5b9060005260206000200154905092915050565b60015460009060ff161561112257600080fd5b61112d338484611a15565b50600192915050565b60015460009060ff161561114957600080fd5b611151611064565b604080518082019091526011815260008051602061224283398151915260208201529015156111c55760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a038616600090815260026020908152604091829020548251808401909352601083527f4e6f7420656e6f75676820746f6b656e00000000000000000000000000000000918301919091528411156112695760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060408051808201909152601681527f496e76616c6964207461726765742061646472657373000000000000000000006020820152600160a060020a03861615156112f95760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b506113048585610dfe565b60408051808201909152601581527f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000602082015290156113895760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060408051808201909152601381527f416d6f756e742063616e206e6f7420626520300000000000000000000000000060208201528315156114105760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a03851660009081526007602090815260408083208784529091529020548290151561146957600160a060020a0386166000908152600560209081526040822080546001810182559083529120018590555b600160a060020a038716600090815260026020526040902054611492908563ffffffff611a0016565b600160a060020a038881166000908152600260208181526040808420959095558451606081018652898152808201878152818701858152958d16808652600784528786208d875284529487902091518255516001820155935193909101805460ff19169315159390931790925582518781529182018490528251889391927fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd92908290030190a35060019695505050505050565b60015460009060ff161561155957600080fd5b611561611064565b604080518082019091526011815260008051602061224283398151915260208201529015156115d55760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060006115e28584610dfe565b60408051808201909152601081527f4e6f20746f6b656e73206c6f636b65640000000000000000000000000000000060208201529091506000821161166c5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a03808616600090815260076020908152604080832087845282528083206002908101805460ff19166001179055938816835292905220546116bb908263ffffffff6119e716565b600160a060020a03851660009081526002602052604090205550600190509392505050565b6116e8611064565b6040805180820190915260118152600080516020612242833981519152602082015290151561175c5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5080151561176957600080fd5b600655565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b60015460009060ff16156117ac57600080fd5b6117b4611064565b604080518082019091526011815260008051602061224283398151915260208201529015156118285760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060006118358585610dfe565b60408051808201909152601081527f4e6f20746f6b656e73206c6f636b656400000000000000000000000000000000602082015291106118ba5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a03841660009081526007602090815260408083208684529091529020600101546118f2908363ffffffff6119e716565b600160a060020a03851660008181526007602090815260408083208884528252918290206001810185905554825190815290810193909352805186937fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd92908290030190a35060019392505050565b611969611064565b604080518082019091526011815260008051602061224283398151915260208201529015156119dd5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50610c9f8161211e565b6000828201838110156119f957600080fd5b9392505050565b600082821115611a0f57600080fd5b50900390565b60408051808201909152601381527f416d6f756e742063616e206e6f742062652030000000000000000000000000006020820152811515611a9b5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a038316600090815260026020908152604091829020548251808401909352601083527f4e6f7420656e6f75676820746f6b656e0000000000000000000000000000000091830191909152821115611b3f5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b5060408051808201909152601681527f496e76616c6964207461726765742061646472657373000000000000000000006020820152600160a060020a0383161515611bcf5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b506000611bdb83610d7b565b60408051808201909152601181527f556e61626c6520746f206465706f73697400000000000000000000000000000060208201529091508115611c635760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a038416600090815260026020526040902054611c8d908363ffffffff611a0016565b600160a060020a038086166000908152600260205260408082209390935590851681522054611cc2908363ffffffff6119e716565b600160a060020a0380851660008181526002602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505050565b60408051808201909152601681527f496e76616c6964207461726765742061646472657373000000000000000000006020820152600160a060020a0383161515611dae5760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a038216600090815260026020908152604091829020548251808401909352601083527f4e6f7420656e6f75676820746f6b656e0000000000000000000000000000000091830191909152821115611e525760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600454611e66908263ffffffff611a0016565b600455600160a060020a038216600090815260026020526040902054611e92908263ffffffff611a0016565b600160a060020a0383166000818152600260209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b6000600160a060020a0382161515611f0057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b611f3160008263ffffffff6121a716565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b600160a060020a0382166000908152600360209081526040808320338452825291829020548251808401909352601283527f4e6f7420656e6f75676820616c6c6f7765640000000000000000000000000000918301919091528211156120135760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610a37578181015183820152602001610a1f565b50600160a060020a0382166000908152600360209081526040808320338452909152902054612048908263ffffffff611a0016565b600160a060020a03831660009081526003602090815260408083203384529091529020556120768282611d1f565b600160a060020a0382166000818152600360209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35050565b6120e760008263ffffffff6121f316565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600160a060020a038116151561213357600080fd5b600154604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360018054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600160a060020a03811615156121bc57600080fd5b6121c68282611ee9565b15156121d157600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a038116151561220857600080fd5b6122128282611ee9565b1561221c57600080fd5b600160a060020a0316600090815260209190915260409020805460ff1916600117905556fe596f7520617265206e6f74206f776e6572000000000000000000000000000000a165627a7a723058205dfcac789400b98c6679934101ef305feb4cf432b2de6f13988186f9dfe49d410029

Swarm Source

bzzr://5dfcac789400b98c6679934101ef305feb4cf432b2de6f13988186f9dfe49d41
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.