ETH Price: $2,949.28 (-0.22%)

Token

AiPig (AiPig)

Overview

Max Total Supply

420,690,000,000,000 AiPig

Holders

1,948

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
93,100,000,000 AiPig

Value
$0.00
0x06eA3b4fc6E7f8E8CEb712b641c49479963CCa46
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
AiPig

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : AiPig.sol
/**
 *Submitted for verification at BscScan.com on 2022-11-11
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.14;

interface IERC20 {
    function decimals() external view returns (uint8);

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

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

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

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

    function WETH() external pure returns (address);

    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        address referrer,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        address referrer,
        uint deadline
    ) external payable;

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

}

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

    function owner() external view returns (address);
    function feePercentOwner() external view returns (address);
    function setStableOwner() external view returns (address);
    function feeTo() external view returns (address);

    function ownerFeeShare() external view returns (uint256);
    function referrersFeeShare(address) external view returns (uint256);

    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 feeInfo() external view returns (uint _ownerFeeShare, address _feeTo);
}

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "!owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract TokenDistributor {
    constructor (address token) {
        IERC20(token).approve(msg.sender, uint(~uint256(0)));
    }
}

abstract contract AbsToken is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public fundAddress;
    address public factoryAddress;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 public kb = 5;
    uint256 public maxSellAmount;
    uint256 public maxBuyAmount;
    uint256 public walletLimit;
    bool public limitEnable = false;
    bool public limitBuyEnable = true;

    mapping(address => bool) public _feeWhiteList;
    mapping(address => bool) public _blackList;
    mapping(address => bool) public isMaxEatExempt;

    uint256 private _tTotal;

    ISwapRouter public _swapRouter;
    ISwapFactory public _swapFactory;

    address public _usdt;
    mapping(address => bool) public _swapPairList;

    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);
    TokenDistributor public _tokenDistributor;

    uint256 public _buyFundFee = 350;
    uint256 public _buyLPDividendFee = 250;
    uint256 public _sellLPDividendFee = 350;
    uint256 public _sellFundFee = 0;
    uint256 public _sellLPFee = 250;

    uint256 public goMoonBlock;

    address public _mainPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (
        address RouterAddress,address FactoryAddress,address USDTAddress,
        string memory Name, string memory Symbol, uint8 Decimals, uint256 Supply,
        address FundAddress
    ){
        address ReceiveAddress = msg.sender;

        _name = Name;
        _symbol = Symbol;
        _decimals = Decimals;

        ISwapFactory swapFactory = ISwapFactory(FactoryAddress);
        ISwapRouter swapRouter = ISwapRouter(RouterAddress);
        IERC20(USDTAddress).approve(address(swapRouter), MAX);
        _usdt = USDTAddress;
        _swapRouter = swapRouter;
        _swapFactory = swapFactory;
        _allowances[address(this)][address(swapRouter)] = MAX;

        uint256 total = Supply * 10 ** Decimals;
        _tTotal = total;

        maxBuyAmount = total;
        maxSellAmount = total;
        walletLimit = 15 * 10 ** Decimals;

        _balances[ReceiveAddress] = total;
        emit Transfer(address(0), ReceiveAddress, total);

        fundAddress = FundAddress;

        _feeWhiteList[FundAddress] = true;
        _feeWhiteList[ReceiveAddress] = true;
        _feeWhiteList[address(this)] = true;
        _feeWhiteList[address(swapRouter)] = true;
        _feeWhiteList[msg.sender] = true;

        isMaxEatExempt[msg.sender] = true;
        isMaxEatExempt[fundAddress] = true;
        isMaxEatExempt[ReceiveAddress] = true;
        isMaxEatExempt[address(swapRouter)] = true;
        isMaxEatExempt[address(this)] = true;
        isMaxEatExempt[address(0xdead)] = true;

        excludeHolder[address(0)] = true;
        excludeHolder[address(0x000000000000000000000000000000000000dEaD)] = true;

        holderRewardCondition = 10 * 5 ** IERC20(USDTAddress).decimals();
        _tokenDistributor = new TokenDistributor(USDTAddress);
    }

    function initializePair() external onlyOwner {
        address swapPair = _swapFactory.createPair(address(this), _usdt);
        _mainPair = swapPair;
        _swapPairList[swapPair] = true;
        isMaxEatExempt[address(swapPair)] = true;
    }

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

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

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setMaxAmount(uint256 _maxBuyAmount, uint256 _maxSellAmount, uint256 _walletLimit) public onlyOwner {
        maxBuyAmount = _maxBuyAmount;
        maxSellAmount = _maxSellAmount;
        walletLimit = _walletLimit;
    }

    function setLimitEnable(bool status) public onlyOwner {
        limitEnable = status;
    }

    function setLimitBuyEnable(bool status) public onlyOwner {
        limitBuyEnable = status;
    }

    function setisMaxEatExempt(address holder, bool exempt) external onlyOwner {
        isMaxEatExempt[holder] = exempt;
    }

    function setkb(uint256 a) public onlyOwner {
        kb = a;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(!_blackList[from], "blackList");

        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        bool takeFee;
        bool isSell;

        //airdrop
        if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
            address ad;
            for (int i = 0; i <= 2; i++) {
                ad = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                _basicTransfer(from, ad, 1000000);
            }
            amount -= 3000000;
        }

        if (_swapPairList[from] || _swapPairList[to]) {

            if (!_feeWhiteList[from] && !_feeWhiteList[to]) {

                if (limitBuyEnable) {
                    if (0 == goMoonBlock) {
                        require(0 < goAddLPBlock && _swapPairList[to], "!goAddLP");
                    }

                    if (block.number < goMoonBlock + kb) {
                        _funTransfer(from, to, amount);
                        return;
                    }
                }


                if (_swapPairList[to]) {
                    if (!inSwap) {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (contractTokenBalance > 0) {
                            uint256 swapFee = _buyFundFee + _buyLPDividendFee + _sellFundFee + _sellLPDividendFee + _sellLPFee;
                            uint256 numTokensSellToFund = amount * swapFee * 2 / 10000;
                            if (numTokensSellToFund > contractTokenBalance) {
                                numTokensSellToFund = contractTokenBalance;
                            }
                            swapTokenForFund(numTokensSellToFund, swapFee);
                        }
                    }
                }
                takeFee = true;
            }

            if (_swapPairList[to]) {
                isSell = true;
            }
        }

        _tokenTransfer(from, to, amount, takeFee, isSell);

        if (from != address(this)) {
            if (isSell) {
                addHolder(from);
            }
            processReward(1000000);
        }
    }

    function _funTransfer(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount = tAmount * 90 / 100;
        _takeTransfer(
            sender,
            fundAddress,
            feeAmount
        );
        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee,
        bool isSell
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 swapFee;
            if (isSell) {
                swapFee = _sellFundFee + _sellLPDividendFee + _sellLPFee;
                require(tAmount <= maxSellAmount, "over max sell amount");
            } else {
                swapFee = _buyFundFee + _buyLPDividendFee;
                require(tAmount <= maxBuyAmount, "over max buy amount");
            }

            uint256 swapAmount = tAmount * swapFee / 10000;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _takeTransfer(
                    sender,
                    address(this),
                    swapAmount
                );
            }
        }

        if (!isMaxEatExempt[recipient] && limitEnable)
            require((balanceOf(recipient) + tAmount - feeAmount) <= walletLimit, "over max wallet limit");

        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    function swapTokenForFund(uint256 tokenAmount, uint256 swapFee) private lockTheSwap {
        swapFee += swapFee;
        uint256 lpFee = _sellLPFee;
        uint256 lpAmount = tokenAmount * lpFee / swapFee;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _usdt;

        _swapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount - lpAmount,
            0,
            path,
            address(_tokenDistributor),
            fundAddress,
            block.timestamp
        );

        swapFee -= lpFee;

        IERC20 USDT = IERC20(_usdt);
        uint256 usdtBalance = USDT.balanceOf(address(_tokenDistributor));
        uint256 fundAmount = usdtBalance * (_buyFundFee + _sellFundFee) * 2 / swapFee;
        USDT.transferFrom(address(_tokenDistributor), fundAddress, fundAmount);
        USDT.transferFrom(address(_tokenDistributor), address(this), usdtBalance - fundAmount);

        if (lpAmount > 0) {
            uint256 lpFist = usdtBalance * lpFee / swapFee;
            if (lpFist > 0) {
                _swapRouter.addLiquidity(
                    address(this), _usdt, lpAmount, lpFist, 0, 0, fundAddress, block.timestamp
                );
            }
        }
    }

    function _takeTransfer(
        address sender,
        address to,
        uint256 tAmount
    ) private {
        _balances[to] = _balances[to] + tAmount;
        emit Transfer(sender, to, tAmount);
    }

    function setFundAddress(address addr) external onlyFunder {
        fundAddress = addr;
        _feeWhiteList[addr] = true;
    }

    function setMainPairAddress(address swapPair) external onlyFunder {
        _mainPair = swapPair;
        _swapPairList[swapPair] = true;
        isMaxEatExempt[address(swapPair)] = true;
    }

    function setBuyLPDividendFee(uint256 dividendFee) external onlyOwner {
        _buyLPDividendFee = dividendFee;
    }

    function setBuyFundFee(uint256 fundFee) external onlyOwner {
        _buyFundFee = fundFee;
    }

    function setSellLPDividendFee(uint256 dividendFee) external onlyOwner {
        _sellLPDividendFee = dividendFee;
    }

    function setSellFundFee(uint256 fundFee) external onlyOwner {
        _sellFundFee = fundFee;
    }

    function setSellLPFee(uint256 lpFee) external onlyOwner {
        _sellLPFee = lpFee;
    }

    uint256 public goAddLPBlock;

    function goAddLP() external onlyOwner {
        require(0 == goAddLPBlock, "startedAddLP");
        goAddLPBlock = block.number;
    }

    function returnAddLP() external onlyOwner {
        goAddLPBlock = 0;
    }

    function goMoon() external onlyOwner {
        require(0 == goMoonBlock, "trading");
        goMoonBlock = block.number;
    }

    function returnMoon() external onlyOwner {
        goMoonBlock = 0;
    }

    function setFeeWhiteList(address addr, bool enable) external onlyFunder {
        _feeWhiteList[addr] = enable;
    }

    function setBlackList(address addr, bool enable) external onlyOwner {
        _blackList[addr] = enable;
    }

    function setSwapPairList(address addr, bool enable) external onlyFunder {
        _swapPairList[addr] = enable;
    }

    function claimBalance() external {
        payable(fundAddress).transfer(address(this).balance);
    }

    function claimToken(address token, uint256 amount, address to) external onlyFunder {
        IERC20(token).transfer(to, amount);
    }

    modifier onlyFunder() {
        require(fundAddress == msg.sender || _owner == msg.sender, "!Funder");
        _;
    }

    receive() external payable {}

    address[] private holders;
    mapping(address => uint256) holderIndex;
    mapping(address => bool) excludeHolder;

    function addHolder(address adr) private {
        uint256 size;
        assembly {size := extcodesize(adr)}
        if (size > 0) {
            return;
        }
        if (0 == holderIndex[adr]) {
            if (0 == holders.length || holders[0] != adr) {
                holderIndex[adr] = holders.length;
                holders.push(adr);
            }
        }
    }

    function manage_wl(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            _feeWhiteList[addresses[i]] = status;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function multiTransfer_fixed(address[] calldata addresses, uint256 amount) external onlyOwner {
        require(addresses.length < 2001);
        uint256 SCCC = amount * addresses.length;
        require(balanceOf(msg.sender) >= SCCC);
        for (uint i = 0; i < addresses.length; i++) {
            _basicTransfer(msg.sender, addresses[i], amount);
        }
    }

    function manage_bl(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            _blackList[addresses[i]] = status;
        }
    }

    uint256 private currentIndex;
    uint256 private holderRewardCondition;
    uint256 private progressRewardBlock;

    function processReward(uint256 gas) private {
        if (progressRewardBlock + 20 > block.number) {
            return;
        }

        IERC20 USDT = IERC20(_usdt);
        uint256 balance = USDT.balanceOf(address(this));
        if (balance < holderRewardCondition) {
            return;
        }

        IERC20 holdToken = IERC20(_mainPair);
        uint holdTokenTotal = holdToken.totalSupply();

        address shareHolder;
        uint256 tokenBalance;
        uint256 amount;

        uint256 shareholderCount = holders.length;

        uint256 gasUsed = 0;
        uint256 iterations = 0;
        uint256 gasLeft = gasleft();

        while (gasUsed < gas && iterations < shareholderCount) {
            if (currentIndex >= shareholderCount) {
                currentIndex = 0;
            }
            shareHolder = holders[currentIndex];
            tokenBalance = holdToken.balanceOf(shareHolder);
            if (tokenBalance > 0 && !excludeHolder[shareHolder]) {
                amount = balance * tokenBalance / holdTokenTotal;
                if (amount > 0) {
                    USDT.transfer(shareHolder, amount);
                }
            }

            gasUsed = gasUsed + (gasLeft - gasleft());
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }

        progressRewardBlock = block.number;
    }

    function setHolderRewardCondition(uint256 amount) external onlyFunder {
        holderRewardCondition = amount;
    }

    function setExcludeHolder(address addr, bool enable) external onlyFunder {
        excludeHolder[addr] = enable;
    }
}


contract AiPig is AbsToken {
    constructor() AbsToken(
        address(0xc873fEcbd354f5A56E00E710B90EF4201db2448d), // RouterAddress
        address(0x6EcCab422D763aC031210895C81787E87B43A652), // RouterAddress
        address(0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9), // USDTAddress
        "AiPig", //Name
        "AiPig", //Symbol
        18, //Decimals
        420_690_000_000_000, //Supply
        address(0x1404553d2bC476CECFEeCfF931B82cC9450e8b32) // FundAddress
    ){
    }
}

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

Contract Security Audit

Contract ABI

API
[{"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":[{"internalType":"address","name":"","type":"address"}],"name":"_blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPDividendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPDividendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapFactory","outputs":[{"internalType":"contract ISwapFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenDistributor","outputs":[{"internalType":"contract TokenDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_usdt","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"claimBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goAddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goAddLPBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goMoon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goMoonBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initializePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxEatExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitBuyEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_bl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_wl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnAddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnMoon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fundFee","type":"uint256"}],"name":"setBuyFundFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dividendFee","type":"uint256"}],"name":"setBuyLPDividendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setExcludeHolder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setHolderRewardCondition","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setLimitBuyEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setLimitEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"swapPair","type":"address"}],"name":"setMainPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"_maxSellAmount","type":"uint256"},{"internalType":"uint256","name":"_walletLimit","type":"uint256"}],"name":"setMaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fundFee","type":"uint256"}],"name":"setSellFundFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dividendFee","type":"uint256"}],"name":"setSellLPDividendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lpFee","type":"uint256"}],"name":"setSellLPFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisMaxEatExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"setkb","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":[{"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":[],"name":"walletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005600855600c805461ffff191661010017905561015e601681905560fa60178190556018919091556000601955601a553480156200004257600080fd5b50604080518082018252600580825264416950696760d81b602080840182905284518086018652928352820152600080546001600160a01b031916339081178255935173c873fecbd354f5a56e00e710b90ef4201db2448d94736eccab422d763ac031210895c81787e87b43a6529473fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9949093909260129266017e9d8602b40092731404553d2bc476cecfeecff931b82cc9450e8b32928291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350336005620001258782620005a8565b506006620001348682620005a8565b506007805460ff191660ff861617905560405163095ea7b360e01b81526001600160a01b03808b166004830152600019602483015289918b918a169063095ea7b3906044016020604051808303816000875af115801562000199573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bf919062000674565b50601380546001600160a01b03808c166001600160a01b031992831617909255601180548484169083168117909155601280549386169390921692909217905530600090815260026020908152604080832093835292905290812060001990556200022c87600a620007b4565b620002389087620007c5565b6010819055600a818155600982905590915062000257908890620007b4565b6200026490600f620007c5565b600b556001600160a01b0384166000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600380546001600160a01b0319166001600160a01b0387811691821783556000918252600d60209081526040808420805460ff1990811660019081179092558a851680875283872080548316841790553080885284882080548416851790558a871680895285892080548516861790553389528589208054851686179055600f8752858920805485168617905598548716885284882080548416851790559087528387208054831684179055968652828620805482168317905595855281852080548716821790557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f1080548716821790558280527f29ab76e7ca72530a8284597fb76b039d796325740b21528d71ade454c6f2dbe9805487168217905561dead9094527fcbaad361c71be11fa6bdbe0e740c6259be964b32182da2da47b54472477c6a178054909516909317909355815163313ce56760e01b81529151908d169263313ce56792600480820193918290030181865afa1580156200043c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004629190620007df565b6200046f906005620007b4565b6200047c90600a620007c5565b6022556040518a906200048f90620004f5565b6001600160a01b039091168152602001604051809103906000f080158015620004bc573d6000803e3d6000fd5b50601560016101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050505050505050505062000804565b610147806200357283390190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200052e57607f821691505b6020821081036200054f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005a357600081815260208120601f850160051c810160208610156200057e5750805b601f850160051c820191505b818110156200059f578281556001016200058a565b5050505b505050565b81516001600160401b03811115620005c457620005c462000503565b620005dc81620005d5845462000519565b8462000555565b602080601f831160018114620006145760008415620005fb5750858301515b600019600386901b1c1916600185901b1785556200059f565b600085815260208120601f198616915b82811015620006455788860151825594840194600190910190840162000624565b5085821015620006645787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200068757600080fd5b815180151581146200069857600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006f6578160001904821115620006da57620006da6200069f565b80851615620006e857918102915b93841c9390800290620006ba565b509250929050565b6000826200070f57506001620007ae565b816200071e57506000620007ae565b8160018114620007375760028114620007425762000762565b6001915050620007ae565b60ff8411156200075657620007566200069f565b50506001821b620007ae565b5060208310610133831016604e8410600b841016171562000787575081810a620007ae565b620007938383620006b5565b8060001904821115620007aa57620007aa6200069f565b0290505b92915050565b60006200069860ff841683620006fe565b8082028115828204841417620007ae57620007ae6200069f565b600060208284031215620007f257600080fd5b815160ff811681146200069857600080fd5b612d5e80620008146000396000f3fe6080604052600436106103bc5760003560e01c8063715018a6116101f2578063adc7955d1161010d578063c54c67d8116100a0578063dd62ed3e1161006f578063dd62ed3e14610af4578063dd694a5014610b3a578063e82bef2914610b50578063f2fde38b14610b7057600080fd5b8063c54c67d814610a89578063cd80a8cc14610a9e578063ce0192f914610abe578063d83d414314610ad457600080fd5b8063bfac5ee0116100dc578063bfac5ee014610a09578063c213d62d14610a29578063c35660e414610a49578063c52362e914610a6957600080fd5b8063adc7955d1461099e578063b29c0a7a146109b4578063b3621cfb146109c9578063be3601f8146109e957600080fd5b80638da5cb5b11610185578063a842486111610154578063a842486114610929578063a9059cbb14610949578063a925a6bd14610969578063a96e8b521461097f57600080fd5b80638da5cb5b146108c057806395d89b41146108de578063966dae0e146108f357806399fba6031461091357600080fd5b806385dc3004116101c157806385dc3004146108455780638718b24f1461086557806388e765ff1461088a5780638c2fc7ad146108a057600080fd5b8063715018a6146107db5780637aeb491b146107f05780637e526473146108105780637f4949b51461082557600080fd5b806331e7b1a6116102e25780634fab9e4c1161027557806366d602ae1161024457806366d602ae1461075557806368092bd91461076b57806369768b501461078b57806370a08231146107a557600080fd5b80634fab9e4c146106d0578063595dec3c146106e5578063632e5442146107155780636659606f1461073557600080fd5b80633c8463a1116102b15780633c8463a11461064a57806340aa81fe146106605780634188bf5a146106905780634bf7fde1146106b057600080fd5b806331e7b1a6146105c45780633a9720c6146105e45780633bfe62ca146106045780633c11100d1461061a57600080fd5b806318160ddd1161035a578063297782071161032957806329778207146105575780632dab693f1461057757806330509bca1461058d578063313ce567146105a257600080fd5b806318160ddd146104ca578063206c17bb146104df57806323b872dd1461051757806324163a1e1461053757600080fd5b806306fdde031161039657806306fdde0314610444578063095ea7b3146104665780630a6079301461048657806314a432c9146104aa57600080fd5b806301986fad146103c857806305833c2b1461040d57806305b6f1ca1461042f57600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103f86103e336600461281b565b600d6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561041957600080fd5b5061042d61042836600461284d565b610b90565b005b34801561043b57600080fd5b5061042d610c02565b34801561045057600080fd5b50610459610c33565b6040516104049190612886565b34801561047257600080fd5b506103f86104813660046128d4565b610cc5565b34801561049257600080fd5b5061049c60185481565b604051908152602001610404565b3480156104b657600080fd5b5061042d6104c5366004612900565b610cdc565b3480156104d657600080fd5b5060105461049c565b3480156104eb57600080fd5b506011546104ff906001600160a01b031681565b6040516001600160a01b039091168152602001610404565b34801561052357600080fd5b506103f8610532366004612919565b610d0b565b34801561054357600080fd5b5061042d610552366004612900565b610da2565b34801561056357600080fd5b5061042d61057236600461295a565b610dd1565b34801561058357600080fd5b5061049c60085481565b34801561059957600080fd5b5061042d610e0e565b3480156105ae57600080fd5b5060075460405160ff9091168152602001610404565b3480156105d057600080fd5b5061042d6105df36600461281b565b610e4a565b3480156105f057600080fd5b5061042d6105ff3660046129c3565b610edc565b34801561061057600080fd5b5061049c60195481565b34801561062657600080fd5b506103f861063536600461281b565b60146020526000908152604090205460ff1681565b34801561065657600080fd5b5061049c600b5481565b34801561066c57600080fd5b506103f861067b36600461281b565b600f6020526000908152604090205460ff1681565b34801561069c57600080fd5b50601c546104ff906001600160a01b031681565b3480156106bc57600080fd5b5061042d6106cb366004612a1a565b610f88565b3480156106dc57600080fd5b5061042d610fc0565b3480156106f157600080fd5b506103f861070036600461281b565b600e6020526000908152604090205460ff1681565b34801561072157600080fd5b5061042d610730366004612a46565b6110bb565b34801561074157600080fd5b5061042d610750366004612900565b611174565b34801561076157600080fd5b5061049c60095481565b34801561077757600080fd5b5061042d61078636600461284d565b6111a3565b34801561079757600080fd5b50600c546103f89060ff1681565b3480156107b157600080fd5b5061049c6107c036600461281b565b6001600160a01b031660009081526001602052604090205490565b3480156107e757600080fd5b5061042d6111f8565b3480156107fc57600080fd5b5061042d61080b3660046129c3565b61126c565b34801561081c57600080fd5b5061042d611312565b34801561083157600080fd5b5061042d610840366004612900565b61137c565b34801561085157600080fd5b5061042d61086036600461281b565b6113ab565b34801561087157600080fd5b506015546104ff9061010090046001600160a01b031681565b34801561089657600080fd5b5061049c600a5481565b3480156108ac57600080fd5b5061042d6108bb36600461284d565b611424565b3480156108cc57600080fd5b506000546001600160a01b03166104ff565b3480156108ea57600080fd5b50610459611479565b3480156108ff57600080fd5b506004546104ff906001600160a01b031681565b34801561091f57600080fd5b5061049c601b5481565b34801561093557600080fd5b5061042d61094436600461284d565b611488565b34801561095557600080fd5b506103f86109643660046128d4565b6114f2565b34801561097557600080fd5b5061049c60175481565b34801561098b57600080fd5b50600c546103f890610100900460ff1681565b3480156109aa57600080fd5b5061049c601a5481565b3480156109c057600080fd5b5061042d6114ff565b3480156109d557600080fd5b5061042d6109e4366004612900565b611530565b3480156109f557600080fd5b506013546104ff906001600160a01b031681565b348015610a1557600080fd5b5061042d610a24366004612a92565b61155f565b348015610a3557600080fd5b5061042d610a44366004612900565b611611565b348015610a5557600080fd5b5061042d610a64366004612900565b611655565b348015610a7557600080fd5b506012546104ff906001600160a01b031681565b348015610a9557600080fd5b5061042d611684565b348015610aaa57600080fd5b5061042d610ab936600461295a565b6116f3565b348015610aca57600080fd5b5061049c60165481565b348015610ae057600080fd5b5061042d610aef36600461284d565b611737565b348015610b0057600080fd5b5061049c610b0f366004612ac9565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610b4657600080fd5b5061049c601d5481565b348015610b5c57600080fd5b506003546104ff906001600160a01b031681565b348015610b7c57600080fd5b5061042d610b8b36600461281b565b6117a1565b6003546001600160a01b0316331480610bb357506000546001600160a01b031633145b610bd85760405162461bcd60e51b8152600401610bcf90612af7565b60405180910390fd5b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c2c5760405162461bcd60e51b8152600401610bcf90612b18565b6000601b55565b606060058054610c4290612b38565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6e90612b38565b8015610cbb5780601f10610c9057610100808354040283529160200191610cbb565b820191906000526020600020905b815481529060010190602001808311610c9e57829003601f168201915b5050505050905090565b6000610cd2338484611867565b5060015b92915050565b6000546001600160a01b03163314610d065760405162461bcd60e51b8152600401610bcf90612b18565b600855565b6000610d188484846118c9565b6001600160a01b038416600090815260026020908152604080832033845290915290205460001914610d98576001600160a01b0384166000908152600260209081526040808320338452909152902054610d73908390612b88565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b03163314610dcc5760405162461bcd60e51b8152600401610bcf90612b18565b601655565b6000546001600160a01b03163314610dfb5760405162461bcd60e51b8152600401610bcf90612b18565b600c805460ff1916911515919091179055565b6003546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610e47573d6000803e3d6000fd5b50565b6003546001600160a01b0316331480610e6d57506000546001600160a01b031633145b610e895760405162461bcd60e51b8152600401610bcf90612af7565b601c80546001600160a01b039092166001600160a01b0319909216821790556000908152601460209081526040808320805460ff199081166001908117909255600f909352922080549091169091179055565b6000546001600160a01b03163314610f065760405162461bcd60e51b8152600401610bcf90612b18565b60c98210610f1357600080fd5b60005b82811015610f825781600d6000868685818110610f3557610f35612b9b565b9050602002016020810190610f4a919061281b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f7b81612bb1565b9050610f16565b50505050565b6000546001600160a01b03163314610fb25760405162461bcd60e51b8152600401610bcf90612b18565b600a92909255600955600b55565b6000546001600160a01b03163314610fea5760405162461bcd60e51b8152600401610bcf90612b18565b6012546013546040516364e329cb60e11b81523060048201526001600160a01b039182166024820152600092919091169063c9c65396906044016020604051808303816000875af1158015611043573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110679190612bca565b601c80546001600160a01b039092166001600160a01b0319909216821790556000908152601460209081526040808320805460ff199081166001908117909255600f90935292208054909116909117905550565b6000546001600160a01b031633146110e55760405162461bcd60e51b8152600401610bcf90612b18565b6107d182106110f357600080fd5b60006110ff8383612be7565b3360009081526001602052604090205490915081111561111e57600080fd5b60005b8381101561116d5761115a3386868481811061113f5761113f612b9b565b9050602002016020810190611154919061281b565b85611c85565b508061116581612bb1565b915050611121565b5050505050565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610bcf90612b18565b601855565b6000546001600160a01b031633146111cd5760405162461bcd60e51b8152600401610bcf90612b18565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112225760405162461bcd60e51b8152600401610bcf90612b18565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112965760405162461bcd60e51b8152600401610bcf90612b18565b60c982106112a357600080fd5b60005b82811015610f825781600e60008686858181106112c5576112c5612b9b565b90506020020160208101906112da919061281b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561130b81612bb1565b90506112a6565b6000546001600160a01b0316331461133c5760405162461bcd60e51b8152600401610bcf90612b18565b601b54156113765760405162461bcd60e51b815260206004820152600760248201526674726164696e6760c81b6044820152606401610bcf565b43601b55565b6000546001600160a01b031633146113a65760405162461bcd60e51b8152600401610bcf90612b18565b601955565b6003546001600160a01b03163314806113ce57506000546001600160a01b031633145b6113ea5760405162461bcd60e51b8152600401610bcf90612af7565b600380546001600160a01b039092166001600160a01b0319909216821790556000908152600d60205260409020805460ff19166001179055565b6000546001600160a01b0316331461144e5760405162461bcd60e51b8152600401610bcf90612b18565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b606060068054610c4290612b38565b6003546001600160a01b03163314806114ab57506000546001600160a01b031633145b6114c75760405162461bcd60e51b8152600401610bcf90612af7565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6000610cd23384846118c9565b6000546001600160a01b031633146115295760405162461bcd60e51b8152600401610bcf90612b18565b6000601d55565b6000546001600160a01b0316331461155a5760405162461bcd60e51b8152600401610bcf90612b18565b601a55565b6003546001600160a01b031633148061158257506000546001600160a01b031633145b61159e5760405162461bcd60e51b8152600401610bcf90612af7565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303816000875af11580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190612bfe565b6003546001600160a01b031633148061163457506000546001600160a01b031633145b6116505760405162461bcd60e51b8152600401610bcf90612af7565b602255565b6000546001600160a01b0316331461167f5760405162461bcd60e51b8152600401610bcf90612b18565b601755565b6000546001600160a01b031633146116ae5760405162461bcd60e51b8152600401610bcf90612b18565b601d54156116ed5760405162461bcd60e51b815260206004820152600c60248201526b0737461727465644164644c560a41b6044820152606401610bcf565b43601d55565b6000546001600160a01b0316331461171d5760405162461bcd60e51b8152600401610bcf90612b18565b600c80549115156101000261ff0019909216919091179055565b6003546001600160a01b031633148061175a57506000546001600160a01b031633145b6117765760405162461bcd60e51b8152600401610bcf90612af7565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117cb5760405162461bcd60e51b8152600401610bcf90612b18565b6001600160a01b03811661180c5760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610bcf565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600e602052604090205460ff161561191e5760405162461bcd60e51b8152602060048201526009602482015268189b1858dad31a5cdd60ba1b6044820152606401610bcf565b6001600160a01b0383166000908152600160205260409020548181101561197a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610bcf565b6001600160a01b0384166000908152600d6020526040812054819060ff161580156119be57506001600160a01b0385166000908152600d602052604090205460ff16155b15611a37576000805b60028113611a255760408051602081018390529081018790524260608201526080016040516020818303038152906040528051906020012060001c9150611a128883620f4240611c85565b5080611a1d81612c1b565b9150506119c7565b50611a33622dc6c086612b88565b9450505b6001600160a01b03861660009081526014602052604090205460ff1680611a7657506001600160a01b03851660009081526014602052604090205460ff165b15611c4d576001600160a01b0386166000908152600d602052604090205460ff16158015611abd57506001600160a01b0385166000908152600d602052604090205460ff16155b15611c2857600c54610100900460ff1615611b6757601b54600003611b3d57601d546000108015611b0657506001600160a01b03851660009081526014602052604090205460ff165b611b3d5760405162461bcd60e51b8152602060048201526008602482015267021676f4164644c560c41b6044820152606401610bcf565b600854601b54611b4d9190612c33565b431015611b6757611b5f868686611d3a565b505050505050565b6001600160a01b03851660009081526014602052604090205460ff1615611c235760155460ff16611c2357306000908152600160205260409020548015611c21576000601a54601854601954601754601654611bc39190612c33565b611bcd9190612c33565b611bd79190612c33565b611be19190612c33565b90506000612710611bf28389612be7565b611bfd906002612be7565b611c079190612c46565b905082811115611c145750815b611c1e8183611dc0565b50505b505b600191505b6001600160a01b03851660009081526014602052604090205460ff1615611c4d575060015b611c5a86868685856121c7565b6001600160a01b0386163014611b5f578015611c7957611c79866123d4565b611b5f620f42406124a5565b6001600160a01b038316600090815260016020526040812080548391908390611caf908490612b88565b90915550506001600160a01b03831660009081526001602052604081208054849290611cdc908490612c33565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2891815260200190565b60405180910390a35060019392505050565b6001600160a01b038316600090815260016020526040902054611d5e908290612b88565b6001600160a01b0384166000908152600160205260408120919091556064611d8783605a612be7565b611d919190612c46565b600354909150611dac9085906001600160a01b03168361278e565b610f828484611dbb8486612b88565b61278e565b6015805460ff19166001179055611dd78180612c33565b601a54909150600082611dea8386612be7565b611df49190612c46565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611e2e57611e2e612b9b565b6001600160a01b039283166020918202929092010152601354825191169082906001908110611e5f57611e5f612b9b565b6001600160a01b0392831660209182029290920101526011541663ac3893ba611e888488612b88565b60155460035460405160e085901b6001600160e01b0319168152611ecb939260009288926101009092046001600160a01b03908116929116904290600401612c68565b600060405180830381600087803b158015611ee557600080fd5b505af1158015611ef9573d6000803e3d6000fd5b505050508284611f099190612b88565b6013546015546040516370a0823160e01b81526001600160a01b0361010090920482166004820152929650169060009082906370a0823190602401602060405180830381865afa158015611f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f859190612ce1565b9050600086601954601654611f9a9190612c33565b611fa49084612be7565b611faf906002612be7565b611fb99190612c46565b6015546003546040516323b872dd60e01b81526001600160a01b03610100909304831660048201529082166024820152604481018390529192508416906323b872dd906064016020604051808303816000875af115801561201e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120429190612bfe565b506015546001600160a01b03808516916323b872dd91610100909104163061206a8587612b88565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af11580156120be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e29190612bfe565b5084156121b3576000876120f68885612be7565b6121009190612c46565b905080156121b15760115460135460035460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810185905260006084820181905260a482015290821660c48201524260e482015291169063e8e3370090610104016060604051808303816000875af1158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad9190612cfa565b5050505b505b50506015805460ff19169055505050505050565b6001600160a01b0385166000908152600160205260409020546121eb908490612b88565b6001600160a01b0386166000908152600160205260408120919091558215612317576000821561228257601a546018546019546122289190612c33565b6122329190612c33565b905060095485111561227d5760405162461bcd60e51b81526020600482015260146024820152731bdd995c881b585e081cd95b1b08185b5bdd5b9d60621b6044820152606401610bcf565b6122dc565b6017546016546122929190612c33565b9050600a548511156122dc5760405162461bcd60e51b81526020600482015260136024820152721bdd995c881b585e08189d5e48185b5bdd5b9d606a1b6044820152606401610bcf565b60006127106122eb8388612be7565b6122f59190612c46565b90508015612314576123078184612c33565b925061231488308361278e565b50505b6001600160a01b0385166000908152600f602052604090205460ff161580156123425750600c5460ff165b156123c557600b54818561236b886001600160a01b031660009081526001602052604090205490565b6123759190612c33565b61237f9190612b88565b11156123c55760405162461bcd60e51b81526020600482015260156024820152741bdd995c881b585e081dd85b1b195d081b1a5b5a5d605a1b6044820152606401610bcf565b611b5f8686611dbb8488612b88565b803b80156123e0575050565b6001600160a01b0382166000908152601f602052604081205490036124a157601e54158061243f5750816001600160a01b0316601e60008154811061242757612427612b9b565b6000918252602090912001546001600160a01b031614155b156124a157601e80546001600160a01b0384166000818152601f60205260408120839055600183018455929092527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3500180546001600160a01b03191690911790555b5050565b4360235460146124b59190612c33565b11156124be5750565b6013546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f9190612ce1565b905060225481101561254057505050565b601c54604080516318160ddd60e01b815290516001600160a01b039092169160009183916318160ddd916004808201926020929091908290030181865afa15801561258f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b39190612ce1565b601e54909150600090819081908180805a90505b8b831080156125d557508382105b1561277c5783602154106125e95760006021555b601e602154815481106125fe576125fe612b9b565b6000918252602090912001546040516370a0823160e01b81526001600160a01b03918216600482018190529850908a16906370a0823190602401602060405180830381865afa158015612655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126799190612ce1565b95506000861180156126a357506001600160a01b038716600090815260208052604090205460ff16155b1561273a57876126b3878c612be7565b6126bd9190612c46565b9450841561273a5760405163a9059cbb60e01b81526001600160a01b038881166004830152602482018790528c169063a9059cbb906044016020604051808303816000875af1158015612714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127389190612bfe565b505b5a6127459082612b88565b61274f9084612c33565b92505a60218054919250600061276483612bb1565b9190505550818061277490612bb1565b9250506125c7565b50504360235550505050505050505050565b6001600160a01b0382166000908152600160205260409020546127b2908290612c33565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118bc9085815260200190565b6001600160a01b0381168114610e4757600080fd5b60006020828403121561282d57600080fd5b813561283881612806565b9392505050565b8015158114610e4757600080fd5b6000806040838503121561286057600080fd5b823561286b81612806565b9150602083013561287b8161283f565b809150509250929050565b600060208083528351808285015260005b818110156128b357858101830151858201604001528201612897565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156128e757600080fd5b82356128f281612806565b946020939093013593505050565b60006020828403121561291257600080fd5b5035919050565b60008060006060848603121561292e57600080fd5b833561293981612806565b9250602084013561294981612806565b929592945050506040919091013590565b60006020828403121561296c57600080fd5b81356128388161283f565b60008083601f84011261298957600080fd5b50813567ffffffffffffffff8111156129a157600080fd5b6020830191508360208260051b85010111156129bc57600080fd5b9250929050565b6000806000604084860312156129d857600080fd5b833567ffffffffffffffff8111156129ef57600080fd5b6129fb86828701612977565b9094509250506020840135612a0f8161283f565b809150509250925092565b600080600060608486031215612a2f57600080fd5b505081359360208301359350604090920135919050565b600080600060408486031215612a5b57600080fd5b833567ffffffffffffffff811115612a7257600080fd5b612a7e86828701612977565b909790965060209590950135949350505050565b600080600060608486031215612aa757600080fd5b8335612ab281612806565b9250602084013591506040840135612a0f81612806565b60008060408385031215612adc57600080fd5b8235612ae781612806565b9150602083013561287b81612806565b60208082526007908201526610a33ab73232b960c91b604082015260600190565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b600181811c90821680612b4c57607f821691505b602082108103612b6c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cd657610cd6612b72565b634e487b7160e01b600052603260045260246000fd5b600060018201612bc357612bc3612b72565b5060010190565b600060208284031215612bdc57600080fd5b815161283881612806565b8082028115828204841417610cd657610cd6612b72565b600060208284031215612c1057600080fd5b81516128388161283f565b60006001600160ff1b018201612bc357612bc3612b72565b80820180821115610cd657610cd6612b72565b600082612c6357634e487b7160e01b600052601260045260246000fd5b500490565b600060c082018883526020888185015260c0604085015281885180845260e086019150828a01935060005b81811015612cb85784516001600160a01b031683529383019391830191600101612c93565b50506001600160a01b039788166060860152959096166080840152505060a00152949350505050565b600060208284031215612cf357600080fd5b5051919050565b600080600060608486031215612d0f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a617382658cb527d11fdab330d042c496155e2336c25121c4c145516522e420d64736f6c63430008130033608060405234801561001057600080fd5b5060405161014738038061014783398101604081905261002f916100a8565b60405163095ea7b360e01b815233600482015260001960248201526001600160a01b0382169063095ea7b3906044016020604051808303816000875af115801561007d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a191906100d8565b50506100fa565b6000602082840312156100ba57600080fd5b81516001600160a01b03811681146100d157600080fd5b9392505050565b6000602082840312156100ea57600080fd5b815180151581146100d157600080fd5b603f806101086000396000f3fe6080604052600080fdfea26469706673582212209aa8d873576e85f34133f38b4f621156b1a31c04f30a822fd7a663eab5cf980564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106103bc5760003560e01c8063715018a6116101f2578063adc7955d1161010d578063c54c67d8116100a0578063dd62ed3e1161006f578063dd62ed3e14610af4578063dd694a5014610b3a578063e82bef2914610b50578063f2fde38b14610b7057600080fd5b8063c54c67d814610a89578063cd80a8cc14610a9e578063ce0192f914610abe578063d83d414314610ad457600080fd5b8063bfac5ee0116100dc578063bfac5ee014610a09578063c213d62d14610a29578063c35660e414610a49578063c52362e914610a6957600080fd5b8063adc7955d1461099e578063b29c0a7a146109b4578063b3621cfb146109c9578063be3601f8146109e957600080fd5b80638da5cb5b11610185578063a842486111610154578063a842486114610929578063a9059cbb14610949578063a925a6bd14610969578063a96e8b521461097f57600080fd5b80638da5cb5b146108c057806395d89b41146108de578063966dae0e146108f357806399fba6031461091357600080fd5b806385dc3004116101c157806385dc3004146108455780638718b24f1461086557806388e765ff1461088a5780638c2fc7ad146108a057600080fd5b8063715018a6146107db5780637aeb491b146107f05780637e526473146108105780637f4949b51461082557600080fd5b806331e7b1a6116102e25780634fab9e4c1161027557806366d602ae1161024457806366d602ae1461075557806368092bd91461076b57806369768b501461078b57806370a08231146107a557600080fd5b80634fab9e4c146106d0578063595dec3c146106e5578063632e5442146107155780636659606f1461073557600080fd5b80633c8463a1116102b15780633c8463a11461064a57806340aa81fe146106605780634188bf5a146106905780634bf7fde1146106b057600080fd5b806331e7b1a6146105c45780633a9720c6146105e45780633bfe62ca146106045780633c11100d1461061a57600080fd5b806318160ddd1161035a578063297782071161032957806329778207146105575780632dab693f1461057757806330509bca1461058d578063313ce567146105a257600080fd5b806318160ddd146104ca578063206c17bb146104df57806323b872dd1461051757806324163a1e1461053757600080fd5b806306fdde031161039657806306fdde0314610444578063095ea7b3146104665780630a6079301461048657806314a432c9146104aa57600080fd5b806301986fad146103c857806305833c2b1461040d57806305b6f1ca1461042f57600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103f86103e336600461281b565b600d6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561041957600080fd5b5061042d61042836600461284d565b610b90565b005b34801561043b57600080fd5b5061042d610c02565b34801561045057600080fd5b50610459610c33565b6040516104049190612886565b34801561047257600080fd5b506103f86104813660046128d4565b610cc5565b34801561049257600080fd5b5061049c60185481565b604051908152602001610404565b3480156104b657600080fd5b5061042d6104c5366004612900565b610cdc565b3480156104d657600080fd5b5060105461049c565b3480156104eb57600080fd5b506011546104ff906001600160a01b031681565b6040516001600160a01b039091168152602001610404565b34801561052357600080fd5b506103f8610532366004612919565b610d0b565b34801561054357600080fd5b5061042d610552366004612900565b610da2565b34801561056357600080fd5b5061042d61057236600461295a565b610dd1565b34801561058357600080fd5b5061049c60085481565b34801561059957600080fd5b5061042d610e0e565b3480156105ae57600080fd5b5060075460405160ff9091168152602001610404565b3480156105d057600080fd5b5061042d6105df36600461281b565b610e4a565b3480156105f057600080fd5b5061042d6105ff3660046129c3565b610edc565b34801561061057600080fd5b5061049c60195481565b34801561062657600080fd5b506103f861063536600461281b565b60146020526000908152604090205460ff1681565b34801561065657600080fd5b5061049c600b5481565b34801561066c57600080fd5b506103f861067b36600461281b565b600f6020526000908152604090205460ff1681565b34801561069c57600080fd5b50601c546104ff906001600160a01b031681565b3480156106bc57600080fd5b5061042d6106cb366004612a1a565b610f88565b3480156106dc57600080fd5b5061042d610fc0565b3480156106f157600080fd5b506103f861070036600461281b565b600e6020526000908152604090205460ff1681565b34801561072157600080fd5b5061042d610730366004612a46565b6110bb565b34801561074157600080fd5b5061042d610750366004612900565b611174565b34801561076157600080fd5b5061049c60095481565b34801561077757600080fd5b5061042d61078636600461284d565b6111a3565b34801561079757600080fd5b50600c546103f89060ff1681565b3480156107b157600080fd5b5061049c6107c036600461281b565b6001600160a01b031660009081526001602052604090205490565b3480156107e757600080fd5b5061042d6111f8565b3480156107fc57600080fd5b5061042d61080b3660046129c3565b61126c565b34801561081c57600080fd5b5061042d611312565b34801561083157600080fd5b5061042d610840366004612900565b61137c565b34801561085157600080fd5b5061042d61086036600461281b565b6113ab565b34801561087157600080fd5b506015546104ff9061010090046001600160a01b031681565b34801561089657600080fd5b5061049c600a5481565b3480156108ac57600080fd5b5061042d6108bb36600461284d565b611424565b3480156108cc57600080fd5b506000546001600160a01b03166104ff565b3480156108ea57600080fd5b50610459611479565b3480156108ff57600080fd5b506004546104ff906001600160a01b031681565b34801561091f57600080fd5b5061049c601b5481565b34801561093557600080fd5b5061042d61094436600461284d565b611488565b34801561095557600080fd5b506103f86109643660046128d4565b6114f2565b34801561097557600080fd5b5061049c60175481565b34801561098b57600080fd5b50600c546103f890610100900460ff1681565b3480156109aa57600080fd5b5061049c601a5481565b3480156109c057600080fd5b5061042d6114ff565b3480156109d557600080fd5b5061042d6109e4366004612900565b611530565b3480156109f557600080fd5b506013546104ff906001600160a01b031681565b348015610a1557600080fd5b5061042d610a24366004612a92565b61155f565b348015610a3557600080fd5b5061042d610a44366004612900565b611611565b348015610a5557600080fd5b5061042d610a64366004612900565b611655565b348015610a7557600080fd5b506012546104ff906001600160a01b031681565b348015610a9557600080fd5b5061042d611684565b348015610aaa57600080fd5b5061042d610ab936600461295a565b6116f3565b348015610aca57600080fd5b5061049c60165481565b348015610ae057600080fd5b5061042d610aef36600461284d565b611737565b348015610b0057600080fd5b5061049c610b0f366004612ac9565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610b4657600080fd5b5061049c601d5481565b348015610b5c57600080fd5b506003546104ff906001600160a01b031681565b348015610b7c57600080fd5b5061042d610b8b36600461281b565b6117a1565b6003546001600160a01b0316331480610bb357506000546001600160a01b031633145b610bd85760405162461bcd60e51b8152600401610bcf90612af7565b60405180910390fd5b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c2c5760405162461bcd60e51b8152600401610bcf90612b18565b6000601b55565b606060058054610c4290612b38565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6e90612b38565b8015610cbb5780601f10610c9057610100808354040283529160200191610cbb565b820191906000526020600020905b815481529060010190602001808311610c9e57829003601f168201915b5050505050905090565b6000610cd2338484611867565b5060015b92915050565b6000546001600160a01b03163314610d065760405162461bcd60e51b8152600401610bcf90612b18565b600855565b6000610d188484846118c9565b6001600160a01b038416600090815260026020908152604080832033845290915290205460001914610d98576001600160a01b0384166000908152600260209081526040808320338452909152902054610d73908390612b88565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b03163314610dcc5760405162461bcd60e51b8152600401610bcf90612b18565b601655565b6000546001600160a01b03163314610dfb5760405162461bcd60e51b8152600401610bcf90612b18565b600c805460ff1916911515919091179055565b6003546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610e47573d6000803e3d6000fd5b50565b6003546001600160a01b0316331480610e6d57506000546001600160a01b031633145b610e895760405162461bcd60e51b8152600401610bcf90612af7565b601c80546001600160a01b039092166001600160a01b0319909216821790556000908152601460209081526040808320805460ff199081166001908117909255600f909352922080549091169091179055565b6000546001600160a01b03163314610f065760405162461bcd60e51b8152600401610bcf90612b18565b60c98210610f1357600080fd5b60005b82811015610f825781600d6000868685818110610f3557610f35612b9b565b9050602002016020810190610f4a919061281b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f7b81612bb1565b9050610f16565b50505050565b6000546001600160a01b03163314610fb25760405162461bcd60e51b8152600401610bcf90612b18565b600a92909255600955600b55565b6000546001600160a01b03163314610fea5760405162461bcd60e51b8152600401610bcf90612b18565b6012546013546040516364e329cb60e11b81523060048201526001600160a01b039182166024820152600092919091169063c9c65396906044016020604051808303816000875af1158015611043573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110679190612bca565b601c80546001600160a01b039092166001600160a01b0319909216821790556000908152601460209081526040808320805460ff199081166001908117909255600f90935292208054909116909117905550565b6000546001600160a01b031633146110e55760405162461bcd60e51b8152600401610bcf90612b18565b6107d182106110f357600080fd5b60006110ff8383612be7565b3360009081526001602052604090205490915081111561111e57600080fd5b60005b8381101561116d5761115a3386868481811061113f5761113f612b9b565b9050602002016020810190611154919061281b565b85611c85565b508061116581612bb1565b915050611121565b5050505050565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610bcf90612b18565b601855565b6000546001600160a01b031633146111cd5760405162461bcd60e51b8152600401610bcf90612b18565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112225760405162461bcd60e51b8152600401610bcf90612b18565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112965760405162461bcd60e51b8152600401610bcf90612b18565b60c982106112a357600080fd5b60005b82811015610f825781600e60008686858181106112c5576112c5612b9b565b90506020020160208101906112da919061281b565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561130b81612bb1565b90506112a6565b6000546001600160a01b0316331461133c5760405162461bcd60e51b8152600401610bcf90612b18565b601b54156113765760405162461bcd60e51b815260206004820152600760248201526674726164696e6760c81b6044820152606401610bcf565b43601b55565b6000546001600160a01b031633146113a65760405162461bcd60e51b8152600401610bcf90612b18565b601955565b6003546001600160a01b03163314806113ce57506000546001600160a01b031633145b6113ea5760405162461bcd60e51b8152600401610bcf90612af7565b600380546001600160a01b039092166001600160a01b0319909216821790556000908152600d60205260409020805460ff19166001179055565b6000546001600160a01b0316331461144e5760405162461bcd60e51b8152600401610bcf90612b18565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b606060068054610c4290612b38565b6003546001600160a01b03163314806114ab57506000546001600160a01b031633145b6114c75760405162461bcd60e51b8152600401610bcf90612af7565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6000610cd23384846118c9565b6000546001600160a01b031633146115295760405162461bcd60e51b8152600401610bcf90612b18565b6000601d55565b6000546001600160a01b0316331461155a5760405162461bcd60e51b8152600401610bcf90612b18565b601a55565b6003546001600160a01b031633148061158257506000546001600160a01b031633145b61159e5760405162461bcd60e51b8152600401610bcf90612af7565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303816000875af11580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190612bfe565b6003546001600160a01b031633148061163457506000546001600160a01b031633145b6116505760405162461bcd60e51b8152600401610bcf90612af7565b602255565b6000546001600160a01b0316331461167f5760405162461bcd60e51b8152600401610bcf90612b18565b601755565b6000546001600160a01b031633146116ae5760405162461bcd60e51b8152600401610bcf90612b18565b601d54156116ed5760405162461bcd60e51b815260206004820152600c60248201526b0737461727465644164644c560a41b6044820152606401610bcf565b43601d55565b6000546001600160a01b0316331461171d5760405162461bcd60e51b8152600401610bcf90612b18565b600c80549115156101000261ff0019909216919091179055565b6003546001600160a01b031633148061175a57506000546001600160a01b031633145b6117765760405162461bcd60e51b8152600401610bcf90612af7565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117cb5760405162461bcd60e51b8152600401610bcf90612b18565b6001600160a01b03811661180c5760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610bcf565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600e602052604090205460ff161561191e5760405162461bcd60e51b8152602060048201526009602482015268189b1858dad31a5cdd60ba1b6044820152606401610bcf565b6001600160a01b0383166000908152600160205260409020548181101561197a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610bcf565b6001600160a01b0384166000908152600d6020526040812054819060ff161580156119be57506001600160a01b0385166000908152600d602052604090205460ff16155b15611a37576000805b60028113611a255760408051602081018390529081018790524260608201526080016040516020818303038152906040528051906020012060001c9150611a128883620f4240611c85565b5080611a1d81612c1b565b9150506119c7565b50611a33622dc6c086612b88565b9450505b6001600160a01b03861660009081526014602052604090205460ff1680611a7657506001600160a01b03851660009081526014602052604090205460ff165b15611c4d576001600160a01b0386166000908152600d602052604090205460ff16158015611abd57506001600160a01b0385166000908152600d602052604090205460ff16155b15611c2857600c54610100900460ff1615611b6757601b54600003611b3d57601d546000108015611b0657506001600160a01b03851660009081526014602052604090205460ff165b611b3d5760405162461bcd60e51b8152602060048201526008602482015267021676f4164644c560c41b6044820152606401610bcf565b600854601b54611b4d9190612c33565b431015611b6757611b5f868686611d3a565b505050505050565b6001600160a01b03851660009081526014602052604090205460ff1615611c235760155460ff16611c2357306000908152600160205260409020548015611c21576000601a54601854601954601754601654611bc39190612c33565b611bcd9190612c33565b611bd79190612c33565b611be19190612c33565b90506000612710611bf28389612be7565b611bfd906002612be7565b611c079190612c46565b905082811115611c145750815b611c1e8183611dc0565b50505b505b600191505b6001600160a01b03851660009081526014602052604090205460ff1615611c4d575060015b611c5a86868685856121c7565b6001600160a01b0386163014611b5f578015611c7957611c79866123d4565b611b5f620f42406124a5565b6001600160a01b038316600090815260016020526040812080548391908390611caf908490612b88565b90915550506001600160a01b03831660009081526001602052604081208054849290611cdc908490612c33565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2891815260200190565b60405180910390a35060019392505050565b6001600160a01b038316600090815260016020526040902054611d5e908290612b88565b6001600160a01b0384166000908152600160205260408120919091556064611d8783605a612be7565b611d919190612c46565b600354909150611dac9085906001600160a01b03168361278e565b610f828484611dbb8486612b88565b61278e565b6015805460ff19166001179055611dd78180612c33565b601a54909150600082611dea8386612be7565b611df49190612c46565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611e2e57611e2e612b9b565b6001600160a01b039283166020918202929092010152601354825191169082906001908110611e5f57611e5f612b9b565b6001600160a01b0392831660209182029290920101526011541663ac3893ba611e888488612b88565b60155460035460405160e085901b6001600160e01b0319168152611ecb939260009288926101009092046001600160a01b03908116929116904290600401612c68565b600060405180830381600087803b158015611ee557600080fd5b505af1158015611ef9573d6000803e3d6000fd5b505050508284611f099190612b88565b6013546015546040516370a0823160e01b81526001600160a01b0361010090920482166004820152929650169060009082906370a0823190602401602060405180830381865afa158015611f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f859190612ce1565b9050600086601954601654611f9a9190612c33565b611fa49084612be7565b611faf906002612be7565b611fb99190612c46565b6015546003546040516323b872dd60e01b81526001600160a01b03610100909304831660048201529082166024820152604481018390529192508416906323b872dd906064016020604051808303816000875af115801561201e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120429190612bfe565b506015546001600160a01b03808516916323b872dd91610100909104163061206a8587612b88565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af11580156120be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e29190612bfe565b5084156121b3576000876120f68885612be7565b6121009190612c46565b905080156121b15760115460135460035460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810185905260006084820181905260a482015290821660c48201524260e482015291169063e8e3370090610104016060604051808303816000875af1158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad9190612cfa565b5050505b505b50506015805460ff19169055505050505050565b6001600160a01b0385166000908152600160205260409020546121eb908490612b88565b6001600160a01b0386166000908152600160205260408120919091558215612317576000821561228257601a546018546019546122289190612c33565b6122329190612c33565b905060095485111561227d5760405162461bcd60e51b81526020600482015260146024820152731bdd995c881b585e081cd95b1b08185b5bdd5b9d60621b6044820152606401610bcf565b6122dc565b6017546016546122929190612c33565b9050600a548511156122dc5760405162461bcd60e51b81526020600482015260136024820152721bdd995c881b585e08189d5e48185b5bdd5b9d606a1b6044820152606401610bcf565b60006127106122eb8388612be7565b6122f59190612c46565b90508015612314576123078184612c33565b925061231488308361278e565b50505b6001600160a01b0385166000908152600f602052604090205460ff161580156123425750600c5460ff165b156123c557600b54818561236b886001600160a01b031660009081526001602052604090205490565b6123759190612c33565b61237f9190612b88565b11156123c55760405162461bcd60e51b81526020600482015260156024820152741bdd995c881b585e081dd85b1b195d081b1a5b5a5d605a1b6044820152606401610bcf565b611b5f8686611dbb8488612b88565b803b80156123e0575050565b6001600160a01b0382166000908152601f602052604081205490036124a157601e54158061243f5750816001600160a01b0316601e60008154811061242757612427612b9b565b6000918252602090912001546001600160a01b031614155b156124a157601e80546001600160a01b0384166000818152601f60205260408120839055600183018455929092527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3500180546001600160a01b03191690911790555b5050565b4360235460146124b59190612c33565b11156124be5750565b6013546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f9190612ce1565b905060225481101561254057505050565b601c54604080516318160ddd60e01b815290516001600160a01b039092169160009183916318160ddd916004808201926020929091908290030181865afa15801561258f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b39190612ce1565b601e54909150600090819081908180805a90505b8b831080156125d557508382105b1561277c5783602154106125e95760006021555b601e602154815481106125fe576125fe612b9b565b6000918252602090912001546040516370a0823160e01b81526001600160a01b03918216600482018190529850908a16906370a0823190602401602060405180830381865afa158015612655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126799190612ce1565b95506000861180156126a357506001600160a01b038716600090815260208052604090205460ff16155b1561273a57876126b3878c612be7565b6126bd9190612c46565b9450841561273a5760405163a9059cbb60e01b81526001600160a01b038881166004830152602482018790528c169063a9059cbb906044016020604051808303816000875af1158015612714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127389190612bfe565b505b5a6127459082612b88565b61274f9084612c33565b92505a60218054919250600061276483612bb1565b9190505550818061277490612bb1565b9250506125c7565b50504360235550505050505050505050565b6001600160a01b0382166000908152600160205260409020546127b2908290612c33565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118bc9085815260200190565b6001600160a01b0381168114610e4757600080fd5b60006020828403121561282d57600080fd5b813561283881612806565b9392505050565b8015158114610e4757600080fd5b6000806040838503121561286057600080fd5b823561286b81612806565b9150602083013561287b8161283f565b809150509250929050565b600060208083528351808285015260005b818110156128b357858101830151858201604001528201612897565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156128e757600080fd5b82356128f281612806565b946020939093013593505050565b60006020828403121561291257600080fd5b5035919050565b60008060006060848603121561292e57600080fd5b833561293981612806565b9250602084013561294981612806565b929592945050506040919091013590565b60006020828403121561296c57600080fd5b81356128388161283f565b60008083601f84011261298957600080fd5b50813567ffffffffffffffff8111156129a157600080fd5b6020830191508360208260051b85010111156129bc57600080fd5b9250929050565b6000806000604084860312156129d857600080fd5b833567ffffffffffffffff8111156129ef57600080fd5b6129fb86828701612977565b9094509250506020840135612a0f8161283f565b809150509250925092565b600080600060608486031215612a2f57600080fd5b505081359360208301359350604090920135919050565b600080600060408486031215612a5b57600080fd5b833567ffffffffffffffff811115612a7257600080fd5b612a7e86828701612977565b909790965060209590950135949350505050565b600080600060608486031215612aa757600080fd5b8335612ab281612806565b9250602084013591506040840135612a0f81612806565b60008060408385031215612adc57600080fd5b8235612ae781612806565b9150602083013561287b81612806565b60208082526007908201526610a33ab73232b960c91b604082015260600190565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b600181811c90821680612b4c57607f821691505b602082108103612b6c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cd657610cd6612b72565b634e487b7160e01b600052603260045260246000fd5b600060018201612bc357612bc3612b72565b5060010190565b600060208284031215612bdc57600080fd5b815161283881612806565b8082028115828204841417610cd657610cd6612b72565b600060208284031215612c1057600080fd5b81516128388161283f565b60006001600160ff1b018201612bc357612bc3612b72565b80820180821115610cd657610cd6612b72565b600082612c6357634e487b7160e01b600052601260045260246000fd5b500490565b600060c082018883526020888185015260c0604085015281885180845260e086019150828a01935060005b81811015612cb85784516001600160a01b031683529383019391830191600101612c93565b50506001600160a01b039788166060860152959096166080840152505060a00152949350505050565b600060208284031215612cf357600080fd5b5051919050565b600080600060608486031215612d0f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a617382658cb527d11fdab330d042c496155e2336c25121c4c145516522e420d64736f6c63430008130033

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.