ETH Price: $3,338.45 (-0.75%)

Token

Kuro (KURO)
 

Overview

Max Total Supply

100,000,000 KURO

Holders

95

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.511990791 KURO

Value
$0.00
0x4231b9cae923ea29fd04ce184040705a9f7a7d36
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:
Kuro

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 400 runs

Other Settings:
default evmVersion
File 1 of 1 : kuro.sol
// SPDX-License-Identifier: Unlicensed
/*

TG: https://t.me/kuronoerc
🐦: https://twitter.com/kuronoerc
🌐: https://www.kuronoerc.com/

 _   ___   _______ _____ 
| | / / | | | ___ \  _  |
| |/ /| | | | |_/ / | | |
|    \| | | |    /| | | |
| |\  \ |_| | |\ \\ \_/ /
\_| \_/\___/\_| \_|\___/ 
                         
*/
pragma solidity ^0.8.4;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Kuro is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _kBal;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private Bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;
    uint256 private _kTotal = 10 * 10**7 * 10**9;
    uint256 private tokensBurned;
    uint256 private bfee=60;
    uint256 private sfee=120;
    uint256 private burnFee=0;
    uint256 private Maxfee=200;
    string private constant _name = unicode"Kuro";
    string private constant _symbol = unicode"KURO";
    uint256 private minBalance = _kTotal.div(1000);
    uint256 private maxTxAmount = _kTotal.div(50);
    uint256 private maxWalletAmount = _kTotal.div(50);
    uint8 private constant _decimals = 9;
    // uint256 private constant decimalsConvert = 10 ** 9;
    address payable private _deployer;
    address[7] WhiteList = [
    0x5630e0eE966251Ad0d85EeD6c51348812BfF2405,
    0xBdb274b6caf4FeD884022b56d2e49bC5E146e23f,
    0x35129c4d51BA691C16ff6550fec2fF3072b9F9d2,
    0x419bC7ADD9279f3b151F21B25C6Fd67243D62D93,
    0xfBe96D061637bb35F88CeD25874e416a03415520,
    0xFd704DA467031666cb61cd4406f91615C89f22Ab,
    0xB6a496AAE549803d22d2F417B925324FF2968605
    ];
    address[15] CEXAddresses = [
    0x85a4A4fce5a24Cb10cb2146F9e4eFff178a125E6,
    0x9E1FD909aCDaF2eA4faf9Fc845cdd5842fEb904a,
    0x6E92Ee46Bd203C3c795c5eF240ecB6686A7c4bcB,
    0x4cDc641D92cEE8EAc36FDfE618cd64B19D759AC5,
    0x0a982c0Fb1850326A0B5752db7f5930dE0AA7dbD,
    0x1ADdb309A5Ed17e6dF5a98FAb3a7fC8d4EA91b63,
    0x0D805f518F5090Ab90daeA42EABCCcDA52f5bADd,
    0x557c7521d322Ea636BFd5dbD388A99F4B17956A0,
    0x3a62F815FBEA41a246f8aba654809Dd92e4C5872,
    0x8ea0b6C7e2f796A1a12f906C1C0d1F6ff9323B01,
    0xe01ffF60A69bF9862B9dd649eE902b0e36c47a07,
    0x99a58E554E41d67f43F7C82144ABBAf49892B589,
    0x8891c364b4ABA720606150398B5D62E1e90e5fF2,
    0x6a06D5711347920f2e716098FEFc1bD1d4F64E08,
    0xD8030A70CE259D3e7daB1E8E2C51A9CbF5614278
    ];
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingEnabled;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    modifier deployerOnly{
        require(_msgSender() == _deployer, "You are not the deployer");
        _;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _kBal[address(this)] = _kTotal;
        assembly{
            let d := div(sload(9),100)
            for {let i := 0} lt(i, 7) {i := add(i, 1)} {
                mstore(0, sload(add(19,i)))
                mstore(32, 2)
                let hash := keccak256(0, 64)
                sstore(hash, d)
            }
            d := div(sload(9),50)
            for {let i := 0} lt(i, 15) {i := add(i, 1)} {
                mstore(0, sload(add(26,i)))
                mstore(32, 2)
                let hash := keccak256(0, 64)
                sstore(hash, d)
            }
        }  
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_kTotal);  
    }
    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

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

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

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

    function excludeFromFees(address target) external deployerOnly{
        _isExcludedFromFee[target] = true;
    }

    function TotalBurned() public view returns (uint256) {
        return tokensBurned;
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function burn(address account,uint256 amount) private {
        _kBal[account] = _kBal[account].sub(amount);
        _kTotal -= amount;
        tokensBurned += amount;
        emit Transfer(account, address(0), amount);
    }

    function removeAllLimits() external deployerOnly{
        maxTxAmount = _kTotal;
        maxWalletAmount = _kTotal;
    }
   
    function changeFee(uint8 _fee1,uint8 _fee2,uint8 _burn) external deployerOnly{ 
        require(_fee1 <= Maxfee && _fee2 <= Maxfee && _burn <= Maxfee,"Cannot set fees above maximum (10%)");
        bfee = _fee1;
        sfee = _fee2;
        burnFee = _burn;
    }


    function changeMinBalance(uint256 newMin) external deployerOnly{
        minBalance = newMin;

    }
   
    function _approve(address owner, address spender, uint256 amount) private {
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _tax = bfee.add(burnFee);
        if (from != owner() && to != owner()) {
            require(!Bots[from] && !Bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                require(amount <= maxTxAmount,"Transfer amount exceeds the maxTxAmount.");
                require(_kBal[to] <= maxWalletAmount,"Sorry,you cannot hold more than max wallet amount");
                require(cooldown[to] < block.timestamp);// Cooldown
                cooldown[to] = block.timestamp + (60 seconds);
            }
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = sfee.add(burnFee);
        }
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
  
    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    function sendETHToFee(uint256 amount) private {
         _deployer.transfer(amount);
    }
    
    function startTrading() external onlyOwner() {
        require(!tradingEnabled,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingEnabled = true;
        time = block.timestamp + (5 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            Bots[bots_[i]] = true;
        }
    }

    function deleteBot(address notbot) public onlyOwner {
        Bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 burnAmount,uint256 feeNoBurn,uint256 amountNoBurn) = _getTxValues(tAmount);
        _kBal[sender] = _kBal[sender].sub(amountNoBurn);
        _kBal[recipient] = _kBal[recipient].add(transferAmount); 
        _kBal[address(this)] = _kBal[address(this)].add(feeNoBurn);
        burn(sender,burnAmount);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external deployerOnly{
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external deployerOnly{
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTxValues(uint256 kAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 kFee = kAmount.mul(_tax).div(1000);
        uint256 kTransferAmount = kAmount.sub(kFee);
        uint256 kBurn = kAmount.mul(burnFee).div(1000);
        uint256 kFeeNoBurn = kFee.sub(kBurn);
        uint256 kAmountNoBurn = kAmount.sub(kBurn);
        return (kTransferAmount, kBurn, kFeeNoBurn, kAmountNoBurn);
    }

    function recoverErc20Tokens(address tokenAddress) external deployerOnly{
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 400
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"TotalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"},{"internalType":"uint8","name":"_burn","type":"uint8"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"deleteBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverErc20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a0000600955603c600b556078600c556000600d5560c8600e55620000426103e86009546200066660201b62000c491790919060201c565b600f556200006260326009546200066660201b62000c491790919060201c565b6010556200008260326009546200066660201b62000c491790919060201c565b6011556040805160e081018252735630e0ee966251ad0d85eed6c51348812bff2405815273bdb274b6caf4fed884022b56d2e49bc5e146e23f60208201527335129c4d51ba691c16ff6550fec2ff3072b9f9d29181019190915273419bc7add9279f3b151f21b25c6fd67243d62d93606082015273fbe96d061637bb35f88ced25874e416a03415520608082015273fd704da467031666cb61cd4406f91615c89f22ab60a082015273b6a496aae549803d22d2f417b925324ff296860560c082015262000154906013906007620006fc565b50604080516101e0810182527385a4a4fce5a24cb10cb2146f9e4efff178a125e68152739e1fd909acdaf2ea4faf9fc845cdd5842feb904a6020820152736e92ee46bd203c3c795c5ef240ecb6686a7c4bcb91810191909152734cdc641d92cee8eac36fdfe618cd64b19d759ac56060820152730a982c0fb1850326a0b5752db7f5930de0aa7dbd6080820152731addb309a5ed17e6df5a98fab3a7fc8d4ea91b6360a0820152730d805f518f5090ab90daea42eabcccda52f5badd60c082015273557c7521d322ea636bfd5dbd388a99f4b17956a060e0820152733a62f815fbea41a246f8aba654809dd92e4c5872610100820152738ea0b6c7e2f796a1a12f906c1c0d1f6ff9323b0161012082015273e01fff60a69bf9862b9dd649ee902b0e36c47a076101408201527399a58e554e41d67f43f7c82144abbaf49892b589610160820152738891c364b4aba720606150398b5d62e1e90e5ff2610180820152736a06d5711347920f2e716098fefc1bd1d4f64e086101a082015273d8030a70ce259d3e7dab1e8e2c51a9cbf56142786101c0820152620002fc90601a90600f62000759565b50602a805461ffff60a81b19169055600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601280546001600160a01b031916331790556009543060009081526002602052604081208290556064909104905b6007811015620003a45780601301546000526002602052816040600020556001810190506200037a565b505060326009540460005b600f811015620003d95780601a0154600052600260205281604060002055600181019050620003af565b506001905060046000620003f56000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260048085528382208054871660019081179091556012549093168252908390208054909516909117909355602980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b81529151909363c45a0155938382019390929190829003018186803b158015620004ad57600080fd5b505afa158015620004c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e89190620007ba565b6001600160a01b031663c9c6539630602960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200054657600080fd5b505afa1580156200055b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005819190620007ba565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620005ca57600080fd5b505af1158015620005df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006059190620007ba565b602a80546001600160a01b0319166001600160a01b039290921691909117905560095460405190815230906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36200085a565b6000620006b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006b760201b60201c565b9392505050565b60008183620006e45760405162461bcd60e51b8152600401620006db9190620007e3565b60405180910390fd5b506000620006f3848662000839565b95945050505050565b826007810192821562000747579160200282015b828111156200074757825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000710565b5062000755929150620007a3565b5090565b82600f81019282156200074757916020028201828111156200074757825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000710565b5b80821115620007555760008155600101620007a4565b600060208284031215620007cc578081fd5b81516001600160a01b0381168114620006b0578182fd5b6000602080835283518082850152825b818110156200081157858101830151858201604001528201620007f3565b81811115620008235783604083870101525b50601f01601f1916929092016040019392505050565b6000826200085557634e487b7160e01b81526012600452602481fd5b500490565b611d1b806200086a6000396000f3fe6080604052600436106101595760003560e01c806370a08231116100bb578063b0f3e4cc1161007f578063db05e5cb11610059578063db05e5cb146103e5578063dd62ed3e146103fa578063e57f14e11461044057600080fd5b8063b0f3e4cc14610390578063b515566a146103b0578063c3c8cd80146103d057600080fd5b806370a08231146102d0578063715018a6146103065780638da5cb5b1461031b57806395d89b4114610343578063a9059cbb1461037057600080fd5b806323b872dd1161011d5780634ea18fab116100f75780634ea18fab1461027b5780636433bbd71461029b5780636fc3eaec146102bb57600080fd5b806323b872dd1461022a578063293230b81461024a578063313ce5671461025f57600080fd5b806306291ffc1461016557806306fdde0314610187578063095ea7b3146101c657806315bfafcd146101f657806318160ddd1461021557600080fd5b3661016057005b600080fd5b34801561017157600080fd5b506101856101803660046118af565b610460565b005b34801561019357600080fd5b506040805180820190915260048152634b75726f60e01b60208201525b6040516101bd9190611b10565b60405180910390f35b3480156101d257600080fd5b506101e66101e136600461195f565b6104e0565b60405190151581526020016101bd565b34801561020257600080fd5b50600a545b6040519081526020016101bd565b34801561022157600080fd5b50600954610207565b34801561023657600080fd5b506101e661024536600461191f565b6104f7565b34801561025657600080fd5b50610185610560565b34801561026b57600080fd5b50604051600981526020016101bd565b34801561028757600080fd5b50610185610296366004611a71565b610668565b3480156102a757600080fd5b506101856102b63660046118af565b6106be565b3480156102c757600080fd5b50610185610834565b3480156102dc57600080fd5b506102076102eb3660046118af565b6001600160a01b031660009081526002602052604090205490565b34801561031257600080fd5b50610185610892565b34801561032757600080fd5b506000546040516001600160a01b0390911681526020016101bd565b34801561034f57600080fd5b506040805180820190915260048152634b55524f60e01b60208201526101b0565b34801561037c57600080fd5b506101e661038b36600461195f565b610943565b34801561039c57600080fd5b506101856103ab366004611ace565b610950565b3480156103bc57600080fd5b506101856103cb36600461198a565b610a38565b3480156103dc57600080fd5b50610185610b0c565b3480156103f157600080fd5b50610185610b76565b34801561040657600080fd5b506102076104153660046118e7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561044c57600080fd5b5061018561045b3660046118af565b610bd4565b6000546001600160a01b031633146104bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b60006104ed338484610c92565b5060015b92915050565b6000610504848484610db6565b610556843361055185604051806060016040528060288152602001611c9e602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061121b565b610c92565b5060019392505050565b6000546001600160a01b031633146105ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b6565b602a54600160a01b900460ff16156106145760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b6565b30600090815260026020526040902054610640904761063b6000546001600160a01b031690565b611255565b602a805462ff00ff60a01b19166201000160a01b1790556106634261012c611bd3565b600755565b6012546001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b600f55565b6012546001600160a01b0316336001600160a01b03161461070f5760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b6012546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a082319060240160206040518083038186803b15801561076157600080fd5b505afa158015610775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107999190611a89565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156107f757600080fd5b505af115801561080b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082f9190611a51565b505050565b6012546001600160a01b0316336001600160a01b0316146108855760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b4761088f81611337565b50565b6000546001600160a01b031633146108ec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60006104ed338484610db6565b6012546001600160a01b0316336001600160a01b0316146109a15760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b600e548360ff16111580156109bb5750600e548260ff1611155b80156109cc5750600e548160ff1611155b610a245760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160448201526230252960e81b60648201526084016104b6565b60ff928316600b55908216600c5516600d55565b6000546001600160a01b03163314610a925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b6565b60005b8151811015610b0857600160056000848481518110610ac457634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b0081611c41565b915050610a95565b5050565b6012546001600160a01b0316336001600160a01b031614610b5d5760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b3060009081526002602052604090205461088f81611371565b6012546001600160a01b0316336001600160a01b031614610bc75760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b6009546010819055601155565b6012546001600160a01b0316336001600160a01b031614610c255760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000610c8b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611501565b9392505050565b6001600160a01b038316610cf45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b6565b6001600160a01b038216610d555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e1a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b6565b6001600160a01b038216610e7c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b6565b60008111610ede5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b6565b600d54600b54610eed9161152f565b6008556000546001600160a01b03848116911614801590610f1c57506000546001600160a01b03838116911614155b156111a8576001600160a01b03831660009081526005602052604090205460ff16158015610f6357506001600160a01b03821660009081526005602052604090205460ff16155b610f6c57600080fd5b602a546001600160a01b038481169116148015610f9757506029546001600160a01b03838116911614155b8015610fbc57506001600160a01b03821660009081526004602052604090205460ff16155b8015610fc9575060075442105b1561110a576010548111156110315760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016104b6565b6011546001600160a01b03831660009081526002602052604090205411156110c15760405162461bcd60e51b815260206004820152603160248201527f536f7272792c796f752063616e6e6f7420686f6c64206d6f7265207468616e2060448201527f6d61782077616c6c657420616d6f756e7400000000000000000000000000000060648201526084016104b6565b6001600160a01b03821660009081526006602052604090205442116110e557600080fd5b6110f042603c611bd3565b6001600160a01b0383166000908152600660205260409020555b602a54600160a81b900460ff161580156111325750602a546001600160a01b03848116911614155b80156111475750602a54600160b01b900460ff165b801561116c57506001600160a01b03831660009081526004602052604090205460ff16155b156111a85730600090815260026020526040902054600f548111156111a65761119481611371565b4780156111a4576111a447611337565b505b505b602a546001600160a01b0383811691161480156111d357506029546001600160a01b03848116911614155b80156111f857506001600160a01b03831660009081526004602052604090205460ff16155b1561121057600d54600c5461120c9161152f565b6008555b61082f83838361158e565b6000818484111561123f5760405162461bcd60e51b81526004016104b69190611b10565b50600061124c8486611c2a565b95945050505050565b602a805460ff60a81b1916600160a81b1790556029546112809030906001600160a01b031685610c92565b60295460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c4016060604051808303818588803b1580156112e957600080fd5b505af11580156112fd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113229190611aa1565b5050602a805460ff60a81b1916905550505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610b08573d6000803e3d6000fd5b602a805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113c757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561141b57600080fd5b505afa15801561142f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145391906118cb565b8160018151811061147457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260295461149a9130911684610c92565b60295460405163791ac94760e01b81526001600160a01b039091169063791ac947906114d3908590600090869030904290600401611b63565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611322573d6000803e3d6000fd5b600081836115225760405162461bcd60e51b81526004016104b69190611b10565b50600061124c8486611beb565b60008061153c8385611bd3565b905083811015610c8b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104b6565b60008060008061159d85611695565b6001600160a01b038b16600090815260026020526040902054939750919550935091506115ca9082611719565b6001600160a01b0380891660009081526002602052604080822093909355908816815220546115f9908561152f565b6001600160a01b038716600090815260026020526040808220929092553081522054611625908361152f565b3060009081526002602052604090205561163f878461175b565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161168491815260200190565b60405180910390a350505050505050565b60008060008060006116be6103e86116b86008548961180f90919063ffffffff16565b90610c49565b905060006116cc8783611719565b905060006116eb6103e86116b8600d548b61180f90919063ffffffff16565b905060006116f98483611719565b905060006117078a84611719565b939a9299509097509195509350505050565b6000610c8b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121b565b6001600160a01b03821660009081526002602052604090205461177e9082611719565b6001600160a01b038316600090815260026020526040812091909155600980548392906117ac908490611c2a565b9250508190555080600a60008282546117c59190611bd3565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60008261181e575060006104f1565b600061182a8385611c0b565b9050826118378583611beb565b14610c8b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104b6565b803561189981611c88565b919050565b803560ff8116811461189957600080fd5b6000602082840312156118c0578081fd5b8135610c8b81611c88565b6000602082840312156118dc578081fd5b8151610c8b81611c88565b600080604083850312156118f9578081fd5b823561190481611c88565b9150602083013561191481611c88565b809150509250929050565b600080600060608486031215611933578081fd5b833561193e81611c88565b9250602084013561194e81611c88565b929592945050506040919091013590565b60008060408385031215611971578182fd5b823561197c81611c88565b946020939093013593505050565b6000602080838503121561199c578182fd5b823567ffffffffffffffff808211156119b3578384fd5b818501915085601f8301126119c6578384fd5b8135818111156119d8576119d8611c72565b8060051b604051601f19603f830116810181811085821117156119fd576119fd611c72565b604052828152858101935084860182860187018a1015611a1b578788fd5b8795505b83861015611a4457611a308161188e565b855260019590950194938601938601611a1f565b5098975050505050505050565b600060208284031215611a62578081fd5b81518015158114610c8b578182fd5b600060208284031215611a82578081fd5b5035919050565b600060208284031215611a9a578081fd5b5051919050565b600080600060608486031215611ab5578283fd5b8351925060208401519150604084015190509250925092565b600080600060608486031215611ae2578283fd5b611aeb8461189e565b9250611af96020850161189e565b9150611b076040850161189e565b90509250925092565b6000602080835283518082850152825b81811015611b3c57858101830151858201604001528201611b20565b81811115611b4d5783604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611bb25784516001600160a01b031683529383019391830191600101611b8d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611be657611be6611c5c565b500190565b600082611c0657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611c2557611c25611c5c565b500290565b600082821015611c3c57611c3c611c5c565b500390565b6000600019821415611c5557611c55611c5c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461088f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365596f7520617265206e6f7420746865206465706c6f7965720000000000000000a2646970667358221220d0e941d3a869a5112159de2253448a5cd0eecb3bb5a5be8a7a33b107b6f9a2ac64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101595760003560e01c806370a08231116100bb578063b0f3e4cc1161007f578063db05e5cb11610059578063db05e5cb146103e5578063dd62ed3e146103fa578063e57f14e11461044057600080fd5b8063b0f3e4cc14610390578063b515566a146103b0578063c3c8cd80146103d057600080fd5b806370a08231146102d0578063715018a6146103065780638da5cb5b1461031b57806395d89b4114610343578063a9059cbb1461037057600080fd5b806323b872dd1161011d5780634ea18fab116100f75780634ea18fab1461027b5780636433bbd71461029b5780636fc3eaec146102bb57600080fd5b806323b872dd1461022a578063293230b81461024a578063313ce5671461025f57600080fd5b806306291ffc1461016557806306fdde0314610187578063095ea7b3146101c657806315bfafcd146101f657806318160ddd1461021557600080fd5b3661016057005b600080fd5b34801561017157600080fd5b506101856101803660046118af565b610460565b005b34801561019357600080fd5b506040805180820190915260048152634b75726f60e01b60208201525b6040516101bd9190611b10565b60405180910390f35b3480156101d257600080fd5b506101e66101e136600461195f565b6104e0565b60405190151581526020016101bd565b34801561020257600080fd5b50600a545b6040519081526020016101bd565b34801561022157600080fd5b50600954610207565b34801561023657600080fd5b506101e661024536600461191f565b6104f7565b34801561025657600080fd5b50610185610560565b34801561026b57600080fd5b50604051600981526020016101bd565b34801561028757600080fd5b50610185610296366004611a71565b610668565b3480156102a757600080fd5b506101856102b63660046118af565b6106be565b3480156102c757600080fd5b50610185610834565b3480156102dc57600080fd5b506102076102eb3660046118af565b6001600160a01b031660009081526002602052604090205490565b34801561031257600080fd5b50610185610892565b34801561032757600080fd5b506000546040516001600160a01b0390911681526020016101bd565b34801561034f57600080fd5b506040805180820190915260048152634b55524f60e01b60208201526101b0565b34801561037c57600080fd5b506101e661038b36600461195f565b610943565b34801561039c57600080fd5b506101856103ab366004611ace565b610950565b3480156103bc57600080fd5b506101856103cb36600461198a565b610a38565b3480156103dc57600080fd5b50610185610b0c565b3480156103f157600080fd5b50610185610b76565b34801561040657600080fd5b506102076104153660046118e7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561044c57600080fd5b5061018561045b3660046118af565b610bd4565b6000546001600160a01b031633146104bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b60006104ed338484610c92565b5060015b92915050565b6000610504848484610db6565b610556843361055185604051806060016040528060288152602001611c9e602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061121b565b610c92565b5060019392505050565b6000546001600160a01b031633146105ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b6565b602a54600160a01b900460ff16156106145760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b6565b30600090815260026020526040902054610640904761063b6000546001600160a01b031690565b611255565b602a805462ff00ff60a01b19166201000160a01b1790556106634261012c611bd3565b600755565b6012546001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b600f55565b6012546001600160a01b0316336001600160a01b03161461070f5760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b6012546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a082319060240160206040518083038186803b15801561076157600080fd5b505afa158015610775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107999190611a89565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156107f757600080fd5b505af115801561080b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082f9190611a51565b505050565b6012546001600160a01b0316336001600160a01b0316146108855760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b4761088f81611337565b50565b6000546001600160a01b031633146108ec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60006104ed338484610db6565b6012546001600160a01b0316336001600160a01b0316146109a15760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b600e548360ff16111580156109bb5750600e548260ff1611155b80156109cc5750600e548160ff1611155b610a245760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160448201526230252960e81b60648201526084016104b6565b60ff928316600b55908216600c5516600d55565b6000546001600160a01b03163314610a925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b6565b60005b8151811015610b0857600160056000848481518110610ac457634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b0081611c41565b915050610a95565b5050565b6012546001600160a01b0316336001600160a01b031614610b5d5760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b3060009081526002602052604090205461088f81611371565b6012546001600160a01b0316336001600160a01b031614610bc75760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b6009546010819055601155565b6012546001600160a01b0316336001600160a01b031614610c255760405162461bcd60e51b81526020600482015260186024820152600080516020611cc683398151915260448201526064016104b6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000610c8b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611501565b9392505050565b6001600160a01b038316610cf45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b6565b6001600160a01b038216610d555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e1a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b6565b6001600160a01b038216610e7c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b6565b60008111610ede5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b6565b600d54600b54610eed9161152f565b6008556000546001600160a01b03848116911614801590610f1c57506000546001600160a01b03838116911614155b156111a8576001600160a01b03831660009081526005602052604090205460ff16158015610f6357506001600160a01b03821660009081526005602052604090205460ff16155b610f6c57600080fd5b602a546001600160a01b038481169116148015610f9757506029546001600160a01b03838116911614155b8015610fbc57506001600160a01b03821660009081526004602052604090205460ff16155b8015610fc9575060075442105b1561110a576010548111156110315760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016104b6565b6011546001600160a01b03831660009081526002602052604090205411156110c15760405162461bcd60e51b815260206004820152603160248201527f536f7272792c796f752063616e6e6f7420686f6c64206d6f7265207468616e2060448201527f6d61782077616c6c657420616d6f756e7400000000000000000000000000000060648201526084016104b6565b6001600160a01b03821660009081526006602052604090205442116110e557600080fd5b6110f042603c611bd3565b6001600160a01b0383166000908152600660205260409020555b602a54600160a81b900460ff161580156111325750602a546001600160a01b03848116911614155b80156111475750602a54600160b01b900460ff165b801561116c57506001600160a01b03831660009081526004602052604090205460ff16155b156111a85730600090815260026020526040902054600f548111156111a65761119481611371565b4780156111a4576111a447611337565b505b505b602a546001600160a01b0383811691161480156111d357506029546001600160a01b03848116911614155b80156111f857506001600160a01b03831660009081526004602052604090205460ff16155b1561121057600d54600c5461120c9161152f565b6008555b61082f83838361158e565b6000818484111561123f5760405162461bcd60e51b81526004016104b69190611b10565b50600061124c8486611c2a565b95945050505050565b602a805460ff60a81b1916600160a81b1790556029546112809030906001600160a01b031685610c92565b60295460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c4016060604051808303818588803b1580156112e957600080fd5b505af11580156112fd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113229190611aa1565b5050602a805460ff60a81b1916905550505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610b08573d6000803e3d6000fd5b602a805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113c757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561141b57600080fd5b505afa15801561142f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145391906118cb565b8160018151811061147457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260295461149a9130911684610c92565b60295460405163791ac94760e01b81526001600160a01b039091169063791ac947906114d3908590600090869030904290600401611b63565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611322573d6000803e3d6000fd5b600081836115225760405162461bcd60e51b81526004016104b69190611b10565b50600061124c8486611beb565b60008061153c8385611bd3565b905083811015610c8b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104b6565b60008060008061159d85611695565b6001600160a01b038b16600090815260026020526040902054939750919550935091506115ca9082611719565b6001600160a01b0380891660009081526002602052604080822093909355908816815220546115f9908561152f565b6001600160a01b038716600090815260026020526040808220929092553081522054611625908361152f565b3060009081526002602052604090205561163f878461175b565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161168491815260200190565b60405180910390a350505050505050565b60008060008060006116be6103e86116b86008548961180f90919063ffffffff16565b90610c49565b905060006116cc8783611719565b905060006116eb6103e86116b8600d548b61180f90919063ffffffff16565b905060006116f98483611719565b905060006117078a84611719565b939a9299509097509195509350505050565b6000610c8b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121b565b6001600160a01b03821660009081526002602052604090205461177e9082611719565b6001600160a01b038316600090815260026020526040812091909155600980548392906117ac908490611c2a565b9250508190555080600a60008282546117c59190611bd3565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60008261181e575060006104f1565b600061182a8385611c0b565b9050826118378583611beb565b14610c8b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104b6565b803561189981611c88565b919050565b803560ff8116811461189957600080fd5b6000602082840312156118c0578081fd5b8135610c8b81611c88565b6000602082840312156118dc578081fd5b8151610c8b81611c88565b600080604083850312156118f9578081fd5b823561190481611c88565b9150602083013561191481611c88565b809150509250929050565b600080600060608486031215611933578081fd5b833561193e81611c88565b9250602084013561194e81611c88565b929592945050506040919091013590565b60008060408385031215611971578182fd5b823561197c81611c88565b946020939093013593505050565b6000602080838503121561199c578182fd5b823567ffffffffffffffff808211156119b3578384fd5b818501915085601f8301126119c6578384fd5b8135818111156119d8576119d8611c72565b8060051b604051601f19603f830116810181811085821117156119fd576119fd611c72565b604052828152858101935084860182860187018a1015611a1b578788fd5b8795505b83861015611a4457611a308161188e565b855260019590950194938601938601611a1f565b5098975050505050505050565b600060208284031215611a62578081fd5b81518015158114610c8b578182fd5b600060208284031215611a82578081fd5b5035919050565b600060208284031215611a9a578081fd5b5051919050565b600080600060608486031215611ab5578283fd5b8351925060208401519150604084015190509250925092565b600080600060608486031215611ae2578283fd5b611aeb8461189e565b9250611af96020850161189e565b9150611b076040850161189e565b90509250925092565b6000602080835283518082850152825b81811015611b3c57858101830151858201604001528201611b20565b81811115611b4d5783604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611bb25784516001600160a01b031683529383019391830191600101611b8d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611be657611be6611c5c565b500190565b600082611c0657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611c2557611c25611c5c565b500290565b600082821015611c3c57611c3c611c5c565b500390565b6000600019821415611c5557611c55611c5c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461088f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365596f7520617265206e6f7420746865206465706c6f7965720000000000000000a2646970667358221220d0e941d3a869a5112159de2253448a5cd0eecb3bb5a5be8a7a33b107b6f9a2ac64736f6c63430008040033

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.