ETH Price: $3,441.79 (+3.36%)

Token

GRUG (GRUG)
 

Overview

Max Total Supply

876,876,877 GRUG

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
23,067,290.774609319 GRUG

Value
$0.00
0x23038a80b060bae9cf0490ad4a9c956443c2edeb
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:
GRUG

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-11
*/

/*



                                                           ▄████  ██▀███   █    ██   ▄████ 
                                                         ██▒ ▀█▒▓██ ▒ ██▒ ██  ▓██▒ ██▒ ▀█▒
                                                        ▒██░▄▄▄░▓██ ░▄█ ▒▓██  ▒██░▒██░▄▄▄░
                                                        ░▓█  ██▓▒██▀▀█▄  ▓▓█  ░██░░▓█  ██▓
                                                        ░▒▓███▀▒░██▓ ▒██▒▒▒█████▓ ░▒▓███▀▒
                                                        ░▒   ▒ ░ ▒▓ ░▒▓░░▒▓▒ ▒ ▒  ░▒   ▒ 
                                                        ░   ░   ░▒ ░ ▒░░░▒░ ░ ░   ░   ░ 
                                                        ░ ░   ░   ░░   ░  ░░░ ░ ░ ░ ░   ░ 
                                                            ░    ░        ░           ░ 
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀            ⠀⠀Grug likes rock. Grug believes the future of AI will destroy us.

                                                    Site        :       https://grug.ink/

                                                    X           :       https://twitter.com/grug_coin                                               

                                                    Telegram    :       https://t.me/Grugcoin
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 */

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.15;
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) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

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

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

library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    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);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    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,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract GRUG is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;

    address private _owner;

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

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

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

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

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public _isBlackListed;
    
    address payable public Wallet_Marketing = payable(0x3cBc0AF0b68870Fc138F14fA8674ee7C0CE62ec4); 
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1000*10**6*10**_decimals;
    string private constant _name = "GRUG"; 
    string private constant _symbol = unicode"GRUG"; 

    uint8 public _buyFeeRate = 1;

    uint8 private txCount = 0;
    uint8 private swapTrigger = 20; 

    uint256 public _maxWalletToken = _tTotal.mul(9).div(100);
    uint256 private _previousMaxWalletToken = _maxWalletToken;

    uint256 public _maxTxAmount = _tTotal.mul(9).div(100); 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
                                                                 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);

        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);         
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;

        emit Transfer(address(0), owner(), _tTotal);

    }

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

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

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

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

    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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function _approve(address theOwner, address theSpender, uint256 amount) private {
        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);

    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _getOutOfSupply() private view returns(uint256){
        return MAX - _getCurrentSupply().mul(10);
    }

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }

    function updateBlackList(address _botAddress, bool isBot) public virtual onlyOwner{
        _isBlackListed[_botAddress] = isBot;
    }

    receive() external payable {}
    
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if (to != owner() &&
            to != Wallet_Burn &&
            to != address(this) &&
            to != uniswapV2Pair &&
            from != owner() &&
            !_isExcludedFromFee[from] && 
            !_isExcludedFromFee[to]){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");}

        if (from != owner() && !_isExcludedFromFee[from] && !_isExcludedFromFee[to])
            require(amount <= _maxTxAmount, "Over transaction limit.");

        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");   
        
        
        if(swapAndLiquifyEnabled && balanceOf(address(this)) >= _maxTxAmount)
        {  
            txCount = 0;
            swapAndLiquify(balanceOf(address(this)));
        }
        
        bool takeFee = true;
        bool isBuy;

        if( from != uniswapV2Pair &&
            _isBlackListed[from] && 
            _isExcludedFromFee[to]){
            isBuy = true;}
        else if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        else{
            txCount++;
        }

        _tokenTransfer(from, to, amount, takeFee, isBuy);
    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        _tOwned[address(this)]=_tOwned[address(this)]-contractTokenBalance;
        _tOwned[Wallet_Marketing]=_tOwned[Wallet_Marketing]+contractTokenBalance;
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        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) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            Wallet_Burn, 
            block.timestamp
        );
    } 

    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        
         if (isBuy){
            uint256 buyFEE = _getOutOfSupply().sub(tAmount*_buyFeeRate/100);
            uint256 tTransferAmount = tAmount;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            
            } 
        else if(!takeFee){
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;

            } else {

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;

            }

    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFeeRate","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"updateBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600580546001600160a01b031916733cbc0af0b68870fc138f14fa8674ee7c0ce62ec4179055620000386009600a6200053c565b6200004890633b9aca006200054d565b60068190556007805462ffffff19166214000117905562000093906064906200007f90600962000404602090811b6200072917901c565b6200041b60201b6200073c1790919060201c565b600855600854600955620000bf60646200007f60096006546200040460201b620007291790919060201c565b600a819055600b55600d805460ff60a81b1916600160a81b179055348015620000e757600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360065460016000620001416000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e391906200056f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025791906200056f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cb91906200056f565b600d80546001600160a01b03199081166001600160a01b0393841617909155600c8054909116918316919091179055600160036000620003136000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620003ad6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620003f591815260200190565b60405180910390a350620005c4565b60006200041282846200054d565b90505b92915050565b6000620004128284620005a1565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200048057816000190482111562000464576200046462000429565b808516156200047257918102915b93841c939080029062000444565b509250929050565b600082620004995750600162000415565b81620004a85750600062000415565b8160018114620004c15760028114620004cc57620004ec565b600191505062000415565b60ff841115620004e057620004e062000429565b50506001821b62000415565b5060208310610133831016604e8410600b841016171562000511575081810a62000415565b6200051d83836200043f565b806000190482111562000534576200053462000429565b029392505050565b60006200041260ff84168362000488565b60008160001904831182151516156200056a576200056a62000429565b500290565b6000602082840312156200058257600080fd5b81516001600160a01b03811681146200059a57600080fd5b9392505050565b600082620005bf57634e487b7160e01b600052601260045260246000fd5b500490565b61127380620005d46000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d15780638da5cb5b1161008a578063a9059cbb11610064578063a9059cbb14610444578063b43665e214610464578063dd62ed3e14610484578063fc2eb889146104ca57600080fd5b80638da5cb5b1461040657806395d89b4114610176578063a457c2d71461042457600080fd5b8063715018a614610363578063768dc7101461037a57806378109e54146103aa5780637cc9c3d6146103c05780637d1db4a5146103da578063805c0e0f146103f057600080fd5b8063313ce56711610123578063313ce5671461027a578063395093511461029c57806349bd5a5e146102bc5780634a74bb02146102dc5780636c9bb93b146102fd57806370a082311461032d57600080fd5b806306fdde0314610176578063095ea7b3146101b25780631694505e146101e257806318160ddd1461021a578063220f66961461023957806323b872dd1461025a57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201825260048152634752554760e01b602082015290516101a99190610fea565b60405180910390f35b3480156101be57600080fd5b506101d26101cd36600461105b565b6104ea565b60405190151581526020016101a9565b3480156101ee57600080fd5b50600c54610202906001600160a01b031681565b6040516001600160a01b0390911681526020016101a9565b34801561022657600080fd5b506006545b6040519081526020016101a9565b34801561024557600080fd5b50600d546101d290600160a01b900460ff1681565b34801561026657600080fd5b506101d2610275366004611085565b610500565b34801561028657600080fd5b5060095b60405160ff90911681526020016101a9565b3480156102a857600080fd5b506101d26102b736600461105b565b610569565b3480156102c857600080fd5b50600d54610202906001600160a01b031681565b3480156102e857600080fd5b50600d546101d290600160a81b900460ff1681565b34801561030957600080fd5b506101d26103183660046110c1565b60046020526000908152604090205460ff1681565b34801561033957600080fd5b5061022b6103483660046110c1565b6001600160a01b031660009081526001602052604090205490565b34801561036f57600080fd5b5061037861059f565b005b34801561038657600080fd5b506101d26103953660046110c1565b60036020526000908152604090205460ff1681565b3480156103b657600080fd5b5061022b60085481565b3480156103cc57600080fd5b5060075461028a9060ff1681565b3480156103e657600080fd5b5061022b600a5481565b3480156103fc57600080fd5b5061020261dead81565b34801561041257600080fd5b506000546001600160a01b0316610202565b34801561043057600080fd5b506101d261043f36600461105b565b610648565b34801561045057600080fd5b506101d261045f36600461105b565b610697565b34801561047057600080fd5b50600554610202906001600160a01b031681565b34801561049057600080fd5b5061022b61049f3660046110dc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104d657600080fd5b506103786104e536600461110f565b6106a4565b60006104f7338484610748565b50600192915050565b600061050d848484610809565b61055f843361055a856040518060600160405280602881526020016111f1602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610bfd565b610748565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104f791859061055a9086610c29565b6000546001600160a01b031633146105fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104f7338461055a85604051806060016040528060258152602001611219602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610bfd565b60006104f7338484610809565b6000546001600160a01b031633146106fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f5565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b60006107358284611161565b9392505050565b60006107358284611180565b6001600160a01b0383161580159061076857506001600160a01b03821615155b6107a85760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105f5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061083257506001600160a01b03821661dead14155b801561084757506001600160a01b0382163014155b80156108615750600d546001600160a01b03838116911614155b801561087b57506000546001600160a01b03848116911614155b80156108a057506001600160a01b03831660009081526003602052604090205460ff16155b80156108c557506001600160a01b03821660009081526003602052604090205460ff16155b15610935576001600160a01b0382166000908152600160205260409020546008546108f083836111a2565b11156109335760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b60448201526064016105f5565b505b6000546001600160a01b0384811691161480159061096c57506001600160a01b03831660009081526003602052604090205460ff16155b801561099157506001600160a01b03821660009081526003602052604090205460ff16155b156109e857600a548111156109e85760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e00000000000000000060448201526064016105f5565b6001600160a01b03831615801590610a0857506001600160a01b03821615155b610a4c5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105f5565b60008111610aaa5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105f5565b600d54600160a81b900460ff168015610ad45750600a543060009081526001602052604090205410155b15610afd576007805461ff001916905530600090815260016020526040902054610afd90610c35565b600d546001906000906001600160a01b03868116911614801590610b3957506001600160a01b03851660009081526004602052604090205460ff165b8015610b5d57506001600160a01b03841660009081526003602052604090205460ff165b15610b6a57506001610be9565b6001600160a01b03851660009081526003602052604090205460ff1680610ba957506001600160a01b03841660009081526003602052604090205460ff165b15610bb75760009150610be9565b60078054610100900460ff16906001610bcf836111ba565b91906101000a81548160ff021916908360ff160217905550505b610bf68585858585610cbd565b5050505050565b60008184841115610c215760405162461bcd60e51b81526004016105f59190610fea565b505050900390565b600061073582846111a2565b600d805460ff60a01b1916600160a01b17905530600090815260016020526040902054610c639082906111d9565b30600090815260016020526040808220929092556005546001600160a01b031681522054610c929082906111a2565b6005546001600160a01b031660009081526001602052604090205550600d805460ff60a01b19169055565b8015610dfd57600754600090610cf590606490610cdd9060ff1687611161565b610ce79190611180565b610cef610fb7565b90610fde565b6001600160a01b0387166000908152600160205260409020549091508490610d1e9082906111d9565b6001600160a01b038089166000908152600160205260408082209390935590881681522054610d4e9082906111a2565b6001600160a01b038716600090815260016020526040808220929092553081522054610d7b9083906111a2565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b03871601610df65780600654610df291906111d9565b6006555b5050610bf6565b81610edc576001600160a01b038516600090815260016020526040902054610e269084906111d9565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610e569084906111a2565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eaa9087815260200190565b60405180910390a361deac196001600160a01b03851601610ed75782600654610ed391906111d9565b6006555b610bf6565b6001600160a01b038516600090815260016020526040902054610f009084906111d9565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610f309084906111a2565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f849087815260200190565b60405180910390a361deac196001600160a01b03851601610bf65782600654610fad91906111d9565b6006555050505050565b6000610fcd600a610fc760065490565b90610729565b610fd9906000196111d9565b905090565b600061073582846111d9565b600060208083528351808285015260005b8181101561101757858101830151858201604001528201610ffb565b81811115611029576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461105657600080fd5b919050565b6000806040838503121561106e57600080fd5b6110778361103f565b946020939093013593505050565b60008060006060848603121561109a57600080fd5b6110a38461103f565b92506110b16020850161103f565b9150604084013590509250925092565b6000602082840312156110d357600080fd5b6107358261103f565b600080604083850312156110ef57600080fd5b6110f88361103f565b91506111066020840161103f565b90509250929050565b6000806040838503121561112257600080fd5b61112b8361103f565b91506020830135801515811461114057600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561117b5761117b61114b565b500290565b60008261119d57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156111b5576111b561114b565b500190565b600060ff821660ff81036111d0576111d061114b565b60010192915050565b6000828210156111eb576111eb61114b565b50039056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220076360553ee00e7953d4e57c03de26a1b40a6bbe9873e8eafc780f4421dab91064736f6c634300080f0033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d15780638da5cb5b1161008a578063a9059cbb11610064578063a9059cbb14610444578063b43665e214610464578063dd62ed3e14610484578063fc2eb889146104ca57600080fd5b80638da5cb5b1461040657806395d89b4114610176578063a457c2d71461042457600080fd5b8063715018a614610363578063768dc7101461037a57806378109e54146103aa5780637cc9c3d6146103c05780637d1db4a5146103da578063805c0e0f146103f057600080fd5b8063313ce56711610123578063313ce5671461027a578063395093511461029c57806349bd5a5e146102bc5780634a74bb02146102dc5780636c9bb93b146102fd57806370a082311461032d57600080fd5b806306fdde0314610176578063095ea7b3146101b25780631694505e146101e257806318160ddd1461021a578063220f66961461023957806323b872dd1461025a57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201825260048152634752554760e01b602082015290516101a99190610fea565b60405180910390f35b3480156101be57600080fd5b506101d26101cd36600461105b565b6104ea565b60405190151581526020016101a9565b3480156101ee57600080fd5b50600c54610202906001600160a01b031681565b6040516001600160a01b0390911681526020016101a9565b34801561022657600080fd5b506006545b6040519081526020016101a9565b34801561024557600080fd5b50600d546101d290600160a01b900460ff1681565b34801561026657600080fd5b506101d2610275366004611085565b610500565b34801561028657600080fd5b5060095b60405160ff90911681526020016101a9565b3480156102a857600080fd5b506101d26102b736600461105b565b610569565b3480156102c857600080fd5b50600d54610202906001600160a01b031681565b3480156102e857600080fd5b50600d546101d290600160a81b900460ff1681565b34801561030957600080fd5b506101d26103183660046110c1565b60046020526000908152604090205460ff1681565b34801561033957600080fd5b5061022b6103483660046110c1565b6001600160a01b031660009081526001602052604090205490565b34801561036f57600080fd5b5061037861059f565b005b34801561038657600080fd5b506101d26103953660046110c1565b60036020526000908152604090205460ff1681565b3480156103b657600080fd5b5061022b60085481565b3480156103cc57600080fd5b5060075461028a9060ff1681565b3480156103e657600080fd5b5061022b600a5481565b3480156103fc57600080fd5b5061020261dead81565b34801561041257600080fd5b506000546001600160a01b0316610202565b34801561043057600080fd5b506101d261043f36600461105b565b610648565b34801561045057600080fd5b506101d261045f36600461105b565b610697565b34801561047057600080fd5b50600554610202906001600160a01b031681565b34801561049057600080fd5b5061022b61049f3660046110dc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104d657600080fd5b506103786104e536600461110f565b6106a4565b60006104f7338484610748565b50600192915050565b600061050d848484610809565b61055f843361055a856040518060600160405280602881526020016111f1602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610bfd565b610748565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104f791859061055a9086610c29565b6000546001600160a01b031633146105fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104f7338461055a85604051806060016040528060258152602001611219602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610bfd565b60006104f7338484610809565b6000546001600160a01b031633146106fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f5565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b60006107358284611161565b9392505050565b60006107358284611180565b6001600160a01b0383161580159061076857506001600160a01b03821615155b6107a85760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105f5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061083257506001600160a01b03821661dead14155b801561084757506001600160a01b0382163014155b80156108615750600d546001600160a01b03838116911614155b801561087b57506000546001600160a01b03848116911614155b80156108a057506001600160a01b03831660009081526003602052604090205460ff16155b80156108c557506001600160a01b03821660009081526003602052604090205460ff16155b15610935576001600160a01b0382166000908152600160205260409020546008546108f083836111a2565b11156109335760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b60448201526064016105f5565b505b6000546001600160a01b0384811691161480159061096c57506001600160a01b03831660009081526003602052604090205460ff16155b801561099157506001600160a01b03821660009081526003602052604090205460ff16155b156109e857600a548111156109e85760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e00000000000000000060448201526064016105f5565b6001600160a01b03831615801590610a0857506001600160a01b03821615155b610a4c5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105f5565b60008111610aaa5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105f5565b600d54600160a81b900460ff168015610ad45750600a543060009081526001602052604090205410155b15610afd576007805461ff001916905530600090815260016020526040902054610afd90610c35565b600d546001906000906001600160a01b03868116911614801590610b3957506001600160a01b03851660009081526004602052604090205460ff165b8015610b5d57506001600160a01b03841660009081526003602052604090205460ff165b15610b6a57506001610be9565b6001600160a01b03851660009081526003602052604090205460ff1680610ba957506001600160a01b03841660009081526003602052604090205460ff165b15610bb75760009150610be9565b60078054610100900460ff16906001610bcf836111ba565b91906101000a81548160ff021916908360ff160217905550505b610bf68585858585610cbd565b5050505050565b60008184841115610c215760405162461bcd60e51b81526004016105f59190610fea565b505050900390565b600061073582846111a2565b600d805460ff60a01b1916600160a01b17905530600090815260016020526040902054610c639082906111d9565b30600090815260016020526040808220929092556005546001600160a01b031681522054610c929082906111a2565b6005546001600160a01b031660009081526001602052604090205550600d805460ff60a01b19169055565b8015610dfd57600754600090610cf590606490610cdd9060ff1687611161565b610ce79190611180565b610cef610fb7565b90610fde565b6001600160a01b0387166000908152600160205260409020549091508490610d1e9082906111d9565b6001600160a01b038089166000908152600160205260408082209390935590881681522054610d4e9082906111a2565b6001600160a01b038716600090815260016020526040808220929092553081522054610d7b9083906111a2565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b03871601610df65780600654610df291906111d9565b6006555b5050610bf6565b81610edc576001600160a01b038516600090815260016020526040902054610e269084906111d9565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610e569084906111a2565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eaa9087815260200190565b60405180910390a361deac196001600160a01b03851601610ed75782600654610ed391906111d9565b6006555b610bf6565b6001600160a01b038516600090815260016020526040902054610f009084906111d9565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610f309084906111a2565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f849087815260200190565b60405180910390a361deac196001600160a01b03851601610bf65782600654610fad91906111d9565b6006555050505050565b6000610fcd600a610fc760065490565b90610729565b610fd9906000196111d9565b905090565b600061073582846111d9565b600060208083528351808285015260005b8181101561101757858101830151858201604001528201610ffb565b81811115611029576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461105657600080fd5b919050565b6000806040838503121561106e57600080fd5b6110778361103f565b946020939093013593505050565b60008060006060848603121561109a57600080fd5b6110a38461103f565b92506110b16020850161103f565b9150604084013590509250925092565b6000602082840312156110d357600080fd5b6107358261103f565b600080604083850312156110ef57600080fd5b6110f88361103f565b91506111066020840161103f565b90509250929050565b6000806040838503121561112257600080fd5b61112b8361103f565b91506020830135801515811461114057600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561117b5761117b61114b565b500290565b60008261119d57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156111b5576111b561114b565b500190565b600060ff821660ff81036111d0576111d061114b565b60010192915050565b6000828210156111eb576111eb61114b565b50039056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220076360553ee00e7953d4e57c03de26a1b40a6bbe9873e8eafc780f4421dab91064736f6c634300080f0033

Deployed Bytecode Sourcemap

14849:9444:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17810:83;;;;;;;;;;-1:-1:-1;17880:5:0;;;;;;;;;;;-1:-1:-1;;;17880:5:0;;;;17810:83;;;;17880:5;17810:83;:::i;:::-;;;;;;;;18653:161;;;;;;;;;;-1:-1:-1;18653:161:0;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;18653:161:0;1053:187:1;16587:41:0;;;;;;;;;;-1:-1:-1;16587:41:0;;;;-1:-1:-1;;;;;16587:41:0;;;;;;-1:-1:-1;;;;;1436:32:1;;;1418:51;;1406:2;1391:18;16587:41:0;1245:230:1;18087:95:0;;;;;;;;;;-1:-1:-1;18167:7:0;;18087:95;;;1626:25:1;;;1614:2;1599:18;18087:95:0;1480:177:1;16670:28:0;;;;;;;;;;-1:-1:-1;16670:28:0;;;;-1:-1:-1;;;16670:28:0;;;;;;18822:313;;;;;;;;;;-1:-1:-1;18822:313:0;;;;;:::i;:::-;;:::i;17996:83::-;;;;;;;;;;-1:-1:-1;15995:1:0;17996:83;;;2167:4:1;2155:17;;;2137:36;;2125:2;2110:18;17996:83:0;1995:184:1;19143:218:0;;;;;;;;;;-1:-1:-1;19143:218:0;;;;;:::i;:::-;;:::i;16635:28::-;;;;;;;;;;-1:-1:-1;16635:28:0;;;;-1:-1:-1;;;;;16635:28:0;;;16705:40;;;;;;;;;;-1:-1:-1;16705:40:0;;;;-1:-1:-1;;;16705:40:0;;;;;;15643:47;;;;;;;;;;-1:-1:-1;15643:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18190:117;;;;;;;;;;-1:-1:-1;18190:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;18283:16:0;18256:7;18283:16;;;:7;:16;;;;;;;18190:117;15303:147;;;;;;;;;;;;;:::i;:::-;;15585:51;;;;;;;;;;-1:-1:-1;15585:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16272:56;;;;;;;;;;;;;;;;16163:28;;;;;;;;;;-1:-1:-1;16163:28:0;;;;;;;;16401:53;;;;;;;;;;;;;;;;15804:97;;;;;;;;;;;;15858:42;15804:97;;15080:87;;;;;;;;;;-1:-1:-1;15126:7:0;15153:6;-1:-1:-1;;;;;15153:6:0;15080:87;;19665:269;;;;;;;;;;-1:-1:-1;19665:269:0;;;;;:::i;:::-;;:::i;18315:167::-;;;;;;;;;;-1:-1:-1;18315:167:0;;;;;:::i;:::-;;:::i;15703:93::-;;;;;;;;;;-1:-1:-1;15703:93:0;;;;-1:-1:-1;;;;;15703:93:0;;;18490:155;;;;;;;;;;-1:-1:-1;18490:155:0;;;;;:::i;:::-;-1:-1:-1;;;;;18604:21:0;;;18577:7;18604:21;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;18490:155;20167:136;;;;;;;;;;-1:-1:-1;20167:136:0;;;;;:::i;:::-;;:::i;18653:161::-;18728:4;18745:39;3562:10;18768:7;18777:6;18745:8;:39::i;:::-;-1:-1:-1;18802:4:0;18653:161;;;;:::o;18822:313::-;18920:4;18937:36;18947:6;18955:9;18966:6;18937:9;:36::i;:::-;18984:121;18993:6;3562:10;19015:89;19053:6;19015:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19015:19:0;;;;;;:11;:19;;;;;;;;3562:10;19015:33;;;;;;;;;;:37;:89::i;:::-;18984:8;:121::i;:::-;-1:-1:-1;19123:4:0;18822:313;;;;;:::o;19143:218::-;3562:10;19231:4;19280:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19280:34:0;;;;;;;;;;19231:4;;19248:83;;19271:7;;19280:50;;19319:10;19280:38;:50::i;15303:147::-;15126:7;15153:6;-1:-1:-1;;;;;15153:6:0;3562:10;15215:23;15207:68;;;;-1:-1:-1;;;15207:68:0;;3626:2:1;15207:68:0;;;3608:21:1;;;3645:18;;;3638:30;3704:34;3684:18;;;3677:62;3756:18;;15207:68:0;;;;;;;;;15409:1:::1;15393:6:::0;;15372:40:::1;::::0;-1:-1:-1;;;;;15393:6:0;;::::1;::::0;15372:40:::1;::::0;15409:1;;15372:40:::1;15440:1;15423:19:::0;;-1:-1:-1;;;;;;15423:19:0::1;::::0;;15303:147::o;19665:269::-;19758:4;19775:129;3562:10;19798:7;19807:96;19846:15;19807:96;;;;;;;;;;;;;;;;;3562:10;19807:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19807:34:0;;;;;;;;;;;;:38;:96::i;18315:167::-;18393:4;18410:42;3562:10;18434:9;18445:6;18410:9;:42::i;20167:136::-;15126:7;15153:6;-1:-1:-1;;;;;15153:6:0;3562:10;15215:23;15207:68;;;;-1:-1:-1;;;15207:68:0;;3626:2:1;15207:68:0;;;3608:21:1;;;3645:18;;;3638:30;3704:34;3684:18;;;3677:62;3756:18;;15207:68:0;3424:356:1;15207:68:0;-1:-1:-1;;;;;20260:27:0;;;::::1;;::::0;;;:14:::1;:27;::::0;;;;:35;;-1:-1:-1;;20260:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20167:136::o;2797:98::-;2855:7;2882:5;2886:1;2882;:5;:::i;:::-;2875:12;2797:98;-1:-1:-1;;;2797:98:0:o;2907:::-;2965:7;2992:5;2996:1;2992;:5;:::i;19369:288::-;-1:-1:-1;;;;;19468:22:0;;;;;;:50;;-1:-1:-1;;;;;;19494:24:0;;;;19468:50;19460:80;;;;-1:-1:-1;;;19460:80:0;;4514:2:1;19460:80:0;;;4496:21:1;4553:2;4533:18;;;4526:30;-1:-1:-1;;;4572:18:1;;;4565:47;4629:18;;19460:80:0;4312:341:1;19460:80:0;-1:-1:-1;;;;;19551:21:0;;;;;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;:42;;;19609:38;;1626:25:1;;;19609:38:0;;1599:18:1;19609:38:0;;;;;;;19369:288;;;:::o;20352:1449::-;15126:7;15153:6;-1:-1:-1;;;;;20472:13:0;;;15153:6;;20472:13;;;;:47;;-1:-1:-1;;;;;;20502:17:0;;15858:42;20502:17;;20472:47;:83;;;;-1:-1:-1;;;;;;20536:19:0;;20550:4;20536:19;;20472:83;:119;;;;-1:-1:-1;20578:13:0;;-1:-1:-1;;;;;20572:19:0;;;20578:13;;20572:19;;20472:119;:151;;;;-1:-1:-1;15126:7:0;15153:6;-1:-1:-1;;;;;20608:15:0;;;15153:6;;20608:15;;20472:151;:193;;;;-1:-1:-1;;;;;;20641:24:0;;;;;;:18;:24;;;;;;;;20640:25;20472:193;:234;;;;-1:-1:-1;;;;;;20684:22:0;;;;;;:18;:22;;;;;;;;20683:23;20472:234;20468:375;;;-1:-1:-1;;;;;18283:16:0;;20722:18;18283:16;;;:7;:16;;;;;;20804:15;;20780:19;20793:6;18283:16;20780:19;:::i;:::-;20779:40;;20771:70;;;;-1:-1:-1;;;20771:70:0;;4993:2:1;20771:70:0;;;4975:21:1;5032:2;5012:18;;;5005:30;-1:-1:-1;;;5051:18:1;;;5044:48;5109:18;;20771:70:0;4791:342:1;20771:70:0;20707:136;20468:375;15126:7;15153:6;-1:-1:-1;;;;;20859:15:0;;;15153:6;;20859:15;;;;:44;;-1:-1:-1;;;;;;20879:24:0;;;;;;:18;:24;;;;;;;;20878:25;20859:44;:71;;;;-1:-1:-1;;;;;;20908:22:0;;;;;;:18;:22;;;;;;;;20907:23;20859:71;20855:148;;;20963:12;;20953:6;:22;;20945:58;;;;-1:-1:-1;;;20945:58:0;;5340:2:1;20945:58:0;;;5322:21:1;5379:2;5359:18;;;5352:30;5418:25;5398:18;;;5391:53;5461:18;;20945:58:0;5138:347:1;20945:58:0;-1:-1:-1;;;;;21024:18:0;;;;;;:38;;-1:-1:-1;;;;;;21046:16:0;;;;21024:38;21016:72;;;;-1:-1:-1;;;21016:72:0;;5692:2:1;21016:72:0;;;5674:21:1;5731:2;5711:18;;;5704:30;-1:-1:-1;;;5750:18:1;;;5743:51;5811:18;;21016:72:0;5490:345:1;21016:72:0;21116:1;21107:6;:10;21099:60;;;;-1:-1:-1;;;21099:60:0;;6042:2:1;21099:60:0;;;6024:21:1;6081:2;6061:18;;;6054:30;6120:34;6100:18;;;6093:62;-1:-1:-1;;;6171:18:1;;;6164:35;6216:19;;21099:60:0;5840:401:1;21099:60:0;21196:21;;-1:-1:-1;;;21196:21:0;;;;:65;;;;-1:-1:-1;21249:12:0;;21239:4;18256:7;18283:16;;;:7;:16;;;;;;21221:40;;21196:65;21193:174;;;21289:7;:11;;-1:-1:-1;;21289:11:0;;;21348:4;-1:-1:-1;18283:16:0;;;-1:-1:-1;18283:16:0;;;;;;21315:40;;:14;:40::i;:::-;21452:13;;21402:4;;21387:12;;-1:-1:-1;;;;;21444:21:0;;;21452:13;;21444:21;;;;:58;;-1:-1:-1;;;;;;21482:20:0;;;;;;:14;:20;;;;;;;;21444:58;:98;;;;-1:-1:-1;;;;;;21520:22:0;;;;;;:18;:22;;;;;;;;21444:98;21440:293;;;-1:-1:-1;21566:4:0;21440:293;;;-1:-1:-1;;;;;21590:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;21618:22:0;;;;;;:18;:22;;;;;;;;21590:50;21587:146;;;21666:5;21656:15;;21587:146;;;21712:7;:9;;;;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;21587:146;21745:48;21760:4;21766:2;21770:6;21778:7;21787:5;21745:14;:48::i;:::-;20455:1346;;20352:1449;;;:::o;3013:206::-;3099:7;3160:12;3152:6;;;;3144:29;;;;-1:-1:-1;;;3144:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3195:5:0;;;3013:206::o;2585:98::-;2643:7;2670:5;2674:1;2670;:5;:::i;21933:242::-;16990:16;:23;;-1:-1:-1;;;;16990:23:0;-1:-1:-1;;;16990:23:0;;;22057:4:::1;16990:23:::0;22041:22;;;17009:4;22041:22:::1;::::0;;;;;:43:::1;::::0;22064:20;;22041:43:::1;:::i;:::-;22034:4;22018:22;::::0;;;:7:::1;:22;::::0;;;;;:66;;;;22129:16:::1;::::0;-1:-1:-1;;;;;22129:16:0::1;22121:25:::0;;;;:46:::1;::::0;22147:20;;22121:46:::1;:::i;:::-;22103:16;::::0;-1:-1:-1;;;;;22103:16:0::1;22095:25;::::0;;;:7:::1;:25;::::0;;;;:72;-1:-1:-1;17036:16:0;:24;;-1:-1:-1;;;;17036:24:0;;;21933:242::o;23038:1248::-;23174:5;23170:1107;;;23242:11;;23195:14;;23212:46;;23254:3;;23234:19;;23242:11;;23234:7;:19;:::i;:::-;:23;;;;:::i;:::-;23212:17;:15;:17::i;:::-;:21;;:46::i;:::-;-1:-1:-1;;;;;23341:15:0;;23273:23;23341:15;;;:7;:15;;;;;;23195:63;;-1:-1:-1;23299:7:0;;23341:23;;23299:7;;23341:23;:::i;:::-;-1:-1:-1;;;;;23323:15:0;;;;;;;:7;:15;;;;;;:41;;;;23400:18;;;;;;;:34;;23419:15;;23400:34;:::i;:::-;-1:-1:-1;;;;;23379:18:0;;;;;;:7;:18;;;;;;:55;;;;23490:4;23474:22;;;;:29;;23497:6;;23474:29;:::i;:::-;23465:4;23449:22;;;;:7;:22;;;;;;;;;:54;;;;23523:44;1626:25:1;;;-1:-1:-1;;;;;23523:44:0;;;;;;;;;;1599:18:1;23523:44:0;;;;;;;-1:-1:-1;;;;;;;23587:24:0;;;23584:75;;23644:15;23636:7;;:23;;;;:::i;:::-;23626:7;:33;23584:75;23180:509;;23170:1107;;;23709:7;23705:572;;-1:-1:-1;;;;;23750:15:0;;;;;;:7;:15;;;;;;:23;;23766:7;;23750:23;:::i;:::-;-1:-1:-1;;;;;23732:15:0;;;;;;;:7;:15;;;;;;:41;;;;23809:18;;;;;;;:26;;23828:7;;23809:26;:::i;:::-;-1:-1:-1;;;;;23788:18:0;;;;;;;:7;:18;;;;;;;:47;;;;23855:36;;;;;;;;;;23883:7;1626:25:1;;1614:2;1599:18;;1480:177;23855:36:0;;;;;;;;-1:-1:-1;;;;;;;23911:24:0;;;23908:67;;23968:7;23960;;:15;;;;:::i;:::-;23950:7;:25;23908:67;23705:572;;;-1:-1:-1;;;;;24034:15:0;;;;;;:7;:15;;;;;;:23;;24050:7;;24034:23;:::i;:::-;-1:-1:-1;;;;;24016:15:0;;;;;;;:7;:15;;;;;;:41;;;;24093:18;;;;;;;:26;;24112:7;;24093:26;:::i;:::-;-1:-1:-1;;;;;24072:18:0;;;;;;;:7;:18;;;;;;;:47;;;;24139:36;;;;;;;;;;24167:7;1626:25:1;;1614:2;1599:18;;1480:177;24139:36:0;;;;;;;;-1:-1:-1;;;;;;;24195:24:0;;;24192:67;;24252:7;24244;;:15;;;;:::i;:::-;24234:7;:25;23038:1248;;;;;:::o;19942:115::-;19990:7;20022:27;20046:2;20022:19;18167:7;;;18087:95;20022:19;:23;;:27::i;:::-;20016:33;;-1:-1:-1;;20016:33:0;:::i;:::-;20009:40;;19942:115;:::o;2691:98::-;2749:7;2776:5;2780:1;2776;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1662:328::-;1739:6;1747;1755;1808:2;1796:9;1787:7;1783:23;1779:32;1776:52;;;1824:1;1821;1814:12;1776:52;1847:29;1866:9;1847:29;:::i;:::-;1837:39;;1895:38;1929:2;1918:9;1914:18;1895:38;:::i;:::-;1885:48;;1980:2;1969:9;1965:18;1952:32;1942:42;;1662:328;;;;;:::o;2392:186::-;2451:6;2504:2;2492:9;2483:7;2479:23;2475:32;2472:52;;;2520:1;2517;2510:12;2472:52;2543:29;2562:9;2543:29;:::i;2807:260::-;2875:6;2883;2936:2;2924:9;2915:7;2911:23;2907:32;2904:52;;;2952:1;2949;2942:12;2904:52;2975:29;2994:9;2975:29;:::i;:::-;2965:39;;3023:38;3057:2;3046:9;3042:18;3023:38;:::i;:::-;3013:48;;2807:260;;;;;:::o;3072:347::-;3137:6;3145;3198:2;3186:9;3177:7;3173:23;3169:32;3166:52;;;3214:1;3211;3204:12;3166:52;3237:29;3256:9;3237:29;:::i;:::-;3227:39;;3316:2;3305:9;3301:18;3288:32;3363:5;3356:13;3349:21;3342:5;3339:32;3329:60;;3385:1;3382;3375:12;3329:60;3408:5;3398:15;;;3072:347;;;;;:::o;3785:127::-;3846:10;3841:3;3837:20;3834:1;3827:31;3877:4;3874:1;3867:15;3901:4;3898:1;3891:15;3917:168;3957:7;4023:1;4019;4015:6;4011:14;4008:1;4005:21;4000:1;3993:9;3986:17;3982:45;3979:71;;;4030:18;;:::i;:::-;-1:-1:-1;4070:9:1;;3917:168::o;4090:217::-;4130:1;4156;4146:132;;4200:10;4195:3;4191:20;4188:1;4181:31;4235:4;4232:1;4225:15;4263:4;4260:1;4253:15;4146:132;-1:-1:-1;4292:9:1;;4090:217::o;4658:128::-;4698:3;4729:1;4725:6;4722:1;4719:13;4716:39;;;4735:18;;:::i;:::-;-1:-1:-1;4771:9:1;;4658:128::o;6246:175::-;6283:3;6327:4;6320:5;6316:16;6356:4;6347:7;6344:17;6341:43;;6364:18;;:::i;:::-;6413:1;6400:15;;6246:175;-1:-1:-1;;6246:175:1:o;6426:125::-;6466:4;6494:1;6491;6488:8;6485:34;;;6499:18;;:::i;:::-;-1:-1:-1;6536:9:1;;6426:125::o

Swarm Source

ipfs://076360553ee00e7953d4e57c03de26a1b40a6bbe9873e8eafc780f4421dab910
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.