ETH Price: $3,484.84 (+3.36%)
Gas: 3 Gwei

Token

Dooshes (doosh)
 

Overview

Max Total Supply

69,000,000 doosh

Holders

1,143

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
therealvictorchaos.eth
Balance
17,588 doosh

Value
$0.00
0x248012d5411459bc80c67b97a8f46c436ab6b15c
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:
dooshes

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 1 : dooshes.sol
/**
    The digital haven where the odd, the awkward, and the cringe converge. 
    It's not just art, it's the vibe of the underbelly come to life, where every weirdo is a masterpiece and every cringe is a cause for celebration. 
    Join the movement that's redefining the quirks into cool.

    TG: https://t.me/dooshesportal
    Twitter: https://twitter.com/dooshesNFT
    Website: https://dooshes.wtf/
    Opensea: https://opensea.io/collection/d00sh3s
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

interface IERC20Metadata is IERC20 {

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

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

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


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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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


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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

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

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

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

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

library Address{
    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");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract dooshes is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public launched;


    modifier lockSwapping() {
        swapping = true;
        _;
        swapping = false;
    }
    
    event TransferForeignToken(address token, uint256 amount);
    event Launched();
    event SwapEnabled();
    event SwapThresholdUpdated();
    event BuyTaxesUpdated();
    event SellTaxesUpdated();
    event MarketingWalletUpdated();
    event DevelopmentWalletUpdated();
    event dooshesTeamWalletUpdated();
    event ExcludedFromFeesUpdated();
    event MaxTxAmountUpdated();
    event MaxWalletAmountUpdated();
    event StuckEthersCleared();
    
    uint256 public swapThreshold = 1000000 * 10**18; //0.1% of total supply
    uint256 public maxTxAmount = 345_000 * 10**18; 
    uint256 public maxWalletAmount = 345_000 * 10**18;
    
    address public marketingWallet = 0x86c04CafC7e0d4e8566e983A7B0024D83b4006C4;
    address public developmentWallet = 0x86c04CafC7e0d4e8566e983A7B0024D83b4006C4;
    address public dooshesTeamWallet = 0x86c04CafC7e0d4e8566e983A7B0024D83b4006C4;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 development;
        uint256 dooshesTeam;
        uint256 burn;
     }
    
    Taxes public buyTaxes = Taxes(10,0,10,10,0);
    Taxes public sellTaxes = Taxes(10,0,10,10,0);
    uint256 private totBuyTax = 30;
    uint256 private totSellTax = 30;
    
    mapping (address => bool) public excludedFromFees;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }

    constructor() ERC20("Dooshes", "doosh") {
        _mint(msg.sender, 69_000_000 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[developmentWallet] = true;
        excludedFromFees[dooshesTeamWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(launched, "Trading not active yet");
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
          
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
         
        else{
            if(recipient == pair) fee = amount * totSellTax / 100;
            else if(sender == pair) fee = amount * totBuyTax / 100;
            else fee = 0;
        }
        
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

        uint256 tokensForBurn = 0;

        tokensForBurn = fee * sellTaxes.burn / totSellTax;

        if(tokensForBurn > 0) {
                 super._transfer(address(this), address(0xdead), tokensForBurn);
            }

    }
    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance >= swapThreshold) {

            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(tokensToAddLiquidityWith > 0 && ethToAddLiquidityWith > 0){
                // Add liquidity to dex
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 developmentAmt = unitBalance * 2 * sellTaxes.development;
            if(developmentAmt > 0){
                payable(developmentWallet).sendValue(developmentAmt);
            }
            uint256 dooshesTeamAmt = unitBalance * 2 * sellTaxes.dooshesTeam;
            if(dooshesTeamAmt > 0){
                payable(dooshesTeamWallet).sendValue(dooshesTeamAmt);
            }       

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0xdead),
            block.timestamp
        );
    }
    function setSwapEnabled(bool state) external onlyOwner { // to be used only in case of dire emergency
        swapEnabled = state;
        emit SwapEnabled();
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        require(new_amount >= 10000, "Swap amount cannot be lower than 0.001% total supply.");
        require(new_amount <= 30000000, "Swap amount cannot be higher than 3% total supply.");
        swapThreshold = new_amount * (10**18);
        emit SwapThresholdUpdated();
    }

    function launch() external onlyOwner{
        require(!launched, "Trading already active");
        launched = true;
        swapEnabled = true;
        emit Launched();
    }

    function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _dooshesTeam, uint256 _burn) external onlyOwner{
        buyTaxes = Taxes(_marketing, _liquidity, _development, _dooshesTeam, _burn);
        totBuyTax = _marketing + _liquidity + _development + _dooshesTeam + _burn;
        require(totBuyTax <= 30,"Total buy fees cannot be greater than 30%");
        emit BuyTaxesUpdated();
    }

    function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _dooshesTeam, uint256 _burn) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _development, _dooshesTeam, _burn);
        totSellTax = _marketing + _liquidity + _development + _dooshesTeam + _burn;
        require(totSellTax <= 30, "Total sell fees cannot be greater than 30%");
        emit SellTaxesUpdated();
    }
    
    function setMarketingWallet(address newWallet) external onlyOwner{
        excludedFromFees[marketingWallet] = false;
        require(newWallet != address(0), "Marketing Wallet cannot be zero address");
        marketingWallet = newWallet;
        emit MarketingWalletUpdated();     
    }
   
    function setDevelopmentWallet(address newWallet) external onlyOwner{
        excludedFromFees[developmentWallet] = false;
        require(newWallet != address(0), "Development Wallet cannot be zero address");
        developmentWallet = newWallet;
        emit DevelopmentWalletUpdated();
    }

    function setDooshesTeamWallet(address newWallet) external onlyOwner{
        excludedFromFees[dooshesTeamWallet] = false;
        require(newWallet != address(0), "DooshesTeam Wallet cannot be zero address");
        dooshesTeamWallet = newWallet;
        emit dooshesTeamWalletUpdated();     
    }

    function setExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
        emit ExcludedFromFeesUpdated();
    }
    
    function setMaxTxAmount(uint256 amount) external onlyOwner{
        require(amount >= 2500000, "Cannot set maxSell lower than 0.25%");
        maxTxAmount = amount * (10**18);
        emit MaxTxAmountUpdated();
    }
    
    function setMaxWalletAmount(uint256 amount) external onlyOwner{
        require(amount >= 2500000, "Cannot set maxSell lower than 0.25%");
        maxWalletAmount = amount * (10**18);
        emit MaxWalletAmountUpdated();
    }

    function withdrawStuckTokens(address _token, address _to) external onlyOwner returns (bool _sent) {
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    function clearStuckEthers(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
        emit StuckEthersCleared();
    }

    function unclog() public onlyOwner lockSwapping {
        swapTokensForETH(
            balanceOf(address(this))
        );

        uint256 ethBalance = address(this).balance;
        uint256 ethMarketing = ethBalance / 2;
        uint256 ethDevelopment = ethBalance - ethMarketing;

        bool success;
        (success, ) = address(marketingWallet).call{value: ethMarketing}("");

        (success, ) = address(developmentWallet).call{value: ethDevelopment}(
            ""
        );
    }

    // fallbacks
    receive() external payable {}
}

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

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":[],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"DevelopmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"ExcludedFromFeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountUpdated","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":[],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapThresholdUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[],"name":"dooshesTeamWalletUpdated","type":"event"},{"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":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"dooshesTeam","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEthers","outputs":[],"stateMutability":"nonpayable","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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dooshesTeamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","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":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"dooshesTeam","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_dooshesTeam","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setDooshesTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_dooshesTeam","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"unclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

69d3c21bcecceda100000060085569490e7ccb2fa905a000006009819055600a908155600b80547386c04cafc7e0d4e8566e983a7b0024d83b4006c46001600160a01b03199182168117909255600c8054821683179055600d8054909116909117905560808190525f60a081905260c082905260e0829052610100819052600e829055600f8190556010829055601182905560128190556101c06040526101208290526101408190526101608290526101808290526101a0819052601382905560148190556015829055601691909155601755601e6018819055601955348015620000e8575f80fd5b5060405180604001604052806007815260200166446f6f7368657360c81b815250604051806040016040528060058152602001640c8dedee6d60db1b815250816003908162000138919062000567565b50600462000147828262000567565b505050620001646200015e6200038960201b60201c565b6200038d565b6200018d33620001776012600a6200073e565b620001879063041cdb4062000755565b620003de565b335f908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021b91906200076f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000267573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028d91906200076f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002d8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fe91906200076f565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f908152601a6020526040808220805460ff199081166001908117909255600b54851684528284208054821683179055600c54851684528284208054821683179055600d54909416835291208054909216179055620007ad565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004395760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546200044c919062000797565b90915550506001600160a01b0382165f90815260208190526040812080548392906200047a90849062000797565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004f157607f821691505b6020821081036200051057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004c3575f81815260208120601f850160051c810160208610156200053e5750805b601f850160051c820191505b818110156200055f578281556001016200054a565b505050505050565b81516001600160401b03811115620005835762000583620004c8565b6200059b81620005948454620004dc565b8462000516565b602080601f831160018114620005d1575f8415620005b95750858301515b5f19600386901b1c1916600185901b1785556200055f565b5f85815260208120601f198616915b828110156200060157888601518255948401946001909101908401620005e0565b50858210156200061f57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200068357815f19048211156200066757620006676200062f565b808516156200067557918102915b93841c939080029062000648565b509250929050565b5f826200069b5750600162000738565b81620006a957505f62000738565b8160018114620006c25760028114620006cd57620006ed565b600191505062000738565b60ff841115620006e157620006e16200062f565b50506001821b62000738565b5060208310610133831016604e8410600b841016171562000712575081810a62000738565b6200071e838362000643565b805f19048211156200073457620007346200062f565b0290505b92915050565b5f6200074e60ff8416836200068b565b9392505050565b80820281158282048414176200073857620007386200062f565b5f6020828403121562000780575f80fd5b81516001600160a01b03811681146200074e575f80fd5b808201808211156200073857620007386200062f565b612f0d80620007bb5f395ff3fe6080604052600436106102b9575f3560e01c806375f0a87411610170578063a9059cbb116100d1578063dd62ed3e11610087578063f2fde38b11610062578063f2fde38b146107e1578063f66895a314610800578063f887ea4014610826575f80fd5b8063dd62ed3e1461075f578063e01af92c146107a3578063ec28438a146107c2575f80fd5b8063c04a5414116100b7578063c04a5414146106f3578063c791fc5414610712578063dbe66ca014610731575f80fd5b8063a9059cbb146106bf578063aa4bde28146106de575f80fd5b806395d89b41116101265780639d0014b11161010c5780639d0014b114610662578063a457c2d714610681578063a8aa1b31146106a0575f80fd5b806395d89b411461062f5780639aed737014610643575f80fd5b8063864701a511610156578063864701a5146105af5780638c0b5e22146105fd5780638da5cb5b14610612575f80fd5b806375f0a8741461055d5780638091f3bf1461057c575f80fd5b8063395093511161021a57806367c45349116101d057806370a08231116101b657806370a08231146104f6578063715018a61461052a57806372ac24861461053e575f80fd5b806367c45349146104b05780636ddd1713146104c4575f80fd5b8063590ffdce11610200578063590ffdce146104535780635d098b38146104725780636043429a14610491575f80fd5b8063395093511461041557806340ac48d314610434575f80fd5b806318160ddd1161026f57806325b86edf1161025557806325b86edf146103bc57806327a14fc2146103db578063313ce567146103fa575f80fd5b806318160ddd1461038957806323b872dd1461039d575f80fd5b806306fdde031161029f57806306fdde0314610302578063095ea7b3146103235780630973db2114610352575f80fd5b806301339c21146102c45780630445b667146102da575f80fd5b366102c057005b5f80fd5b3480156102cf575f80fd5b506102d8610845565b005b3480156102e5575f80fd5b506102ef60085481565b6040519081526020015b60405180910390f35b34801561030d575f80fd5b5061031661097c565b6040516102f99190612af0565b34801561032e575f80fd5b5061034261033d366004612b6d565b610a0c565b60405190151581526020016102f9565b34801561035d575f80fd5b50600d54610371906001600160a01b031681565b6040516001600160a01b0390911681526020016102f9565b348015610394575f80fd5b506002546102ef565b3480156103a8575f80fd5b506103426103b7366004612b97565b610a22565b3480156103c7575f80fd5b506103426103d6366004612bd5565b610ae6565b3480156103e6575f80fd5b506102d86103f5366004612c0c565b610c9c565b348015610405575f80fd5b50604051601281526020016102f9565b348015610420575f80fd5b5061034261042f366004612b6d565b610daf565b34801561043f575f80fd5b506102d861044e366004612c23565b610de5565b34801561045e575f80fd5b506102d861046d366004612c67565b610f54565b34801561047d575f80fd5b506102d861048c366004612c93565b611019565b34801561049c575f80fd5b506102d86104ab366004612c93565b611186565b3480156104bb575f80fd5b506102d86112f3565b3480156104cf575f80fd5b50600754610342907501000000000000000000000000000000000000000000900460ff1681565b348015610501575f80fd5b506102ef610510366004612c93565b6001600160a01b03165f9081526020819052604090205490565b348015610535575f80fd5b506102d86114a3565b348015610549575f80fd5b506102d8610558366004612c93565b611508565b348015610568575f80fd5b50600b54610371906001600160a01b031681565b348015610587575f80fd5b5060075461034290760100000000000000000000000000000000000000000000900460ff1681565b3480156105ba575f80fd5b50600e54600f546010546011546012546105d5949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016102f9565b348015610608575f80fd5b506102ef60095481565b34801561061d575f80fd5b506005546001600160a01b0316610371565b34801561063a575f80fd5b50610316611675565b34801561064e575f80fd5b506102d861065d366004612c0c565b611684565b34801561066d575f80fd5b506102d861067c366004612c0c565b61174b565b34801561068c575f80fd5b5061034261069b366004612b6d565b6118d6565b3480156106ab575f80fd5b50600754610371906001600160a01b031681565b3480156106ca575f80fd5b506103426106d9366004612b6d565b611988565b3480156106e9575f80fd5b506102ef600a5481565b3480156106fe575f80fd5b50600c54610371906001600160a01b031681565b34801561071d575f80fd5b506102d861072c366004612c23565b611994565b34801561073c575f80fd5b5061034261074b366004612c93565b601a6020525f908152604090205460ff1681565b34801561076a575f80fd5b506102ef610779366004612bd5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107ae575f80fd5b506102d86107bd366004612cb5565b611b03565b3480156107cd575f80fd5b506102d86107dc366004612c0c565b611bcc565b3480156107ec575f80fd5b506102d86107fb366004612c93565b611cdf565b34801561080b575f80fd5b506013546014546015546016546017546105d5949392919085565b348015610831575f80fd5b50600654610371906001600160a01b031681565b6005546001600160a01b031633146108a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600754760100000000000000000000000000000000000000000000900460ff16156109115760405162461bcd60e51b815260206004820152601660248201527f54726164696e6720616c72656164792061637469766500000000000000000000604482015260640161089b565b600780547fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff167601010000000000000000000000000000000000000000001790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1565b60606003805461098b90612cd0565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790612cd0565b8015610a025780601f106109d957610100808354040283529160200191610a02565b820191905f5260205f20905b8154815290600101906020018083116109e557829003601f168201915b5050505050905090565b5f610a18338484611dc1565b5060015b92915050565b5f610a2e848484611f18565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ac75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606482015260840161089b565b610adb8533610ad68685612d4e565b611dc1565b506001949350505050565b6005545f906001600160a01b03163314610b425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc39190612d61565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610c2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190612d78565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610cf65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b622625a0811015610d6f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201527f3235250000000000000000000000000000000000000000000000000000000000606482015260840161089b565b610d8181670de0b6b3a7640000612d93565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a18918590610ad6908690612daa565b6005546001600160a01b03163314610e3f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052600e859055600f849055601083905560118290556012819055808284610e8c8789612daa565b610e969190612daa565b610ea09190612daa565b610eaa9190612daa565b6018819055601e1015610f255760405162461bcd60e51b815260206004820152602960248201527f546f74616c2062757920666565732063616e6e6f74206265206772656174657260448201527f207468616e203330250000000000000000000000000000000000000000000000606482015260840161089b565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a15050505050565b6005546001600160a01b03163314610fae5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6001600160a01b0382165f908152601a602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b031633146110735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600b546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166111285760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f2060448201527f6164647265737300000000000000000000000000000000000000000000000000606482015260840161089b565b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b031633146111e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600d546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166112955760405162461bcd60e51b815260206004820152602960248201527f446f6f736865735465616d2057616c6c65742063616e6e6f74206265207a657260448201527f6f20616464726573730000000000000000000000000000000000000000000000606482015260840161089b565b600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f68e993f3e343980937c417fde0ea6733de0bca75da62f19649ecee2e13fd2e5b905f90a150565b6005546001600160a01b0316331461134d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556113b26113ad306001600160a01b03165f9081526020819052604090205490565b612312565b475f6113bf600283612dbd565b90505f6113cc8284612d4e565b600b546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f811461141b576040519150601f19603f3d011682016040523d82523d5f602084013e611420565b606091505b5050600c546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461146d576040519150601f19603f3d011682016040523d82523d5f602084013e611472565b606091505b5050600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690555050505050565b6005546001600160a01b031633146114fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6115065f612494565b565b6005546001600160a01b031633146115625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600c546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166116175760405162461bcd60e51b815260206004820152602960248201527f446576656c6f706d656e742057616c6c65742063616e6e6f74206265207a657260448201527f6f20616464726573730000000000000000000000000000000000000000000000606482015260840161089b565b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f56c050a659ad3741e0a2373000420a1c3c060f7f39c95458be197a36a6e61ec2905f90a150565b60606004805461098b90612cd0565b6005546001600160a01b031633146116de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b47336108fc60646116ef8585612d93565b6116f99190612dbd565b6040518115909202915f818181858888f1935050505015801561171e573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b031633146117a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b61271081101561181d5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000606482015260840161089b565b6301c9c3808111156118975760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20332520746f74616c20737570706c792e0000000000000000000000000000606482015260840161089b565b6118a981670de0b6b3a7640000612d93565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561196f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161089b565b61197e3385610ad68685612d4e565b5060019392505050565b5f610a18338484611f18565b6005546001600160a01b031633146119ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040805160a081018252868152602081018690529081018490526060810183905260800181905260138590556014849055601583905560168290556017819055808284611a3b8789612daa565b611a459190612daa565b611a4f9190612daa565b611a599190612daa565b6019819055601e1015611ad45760405162461bcd60e51b815260206004820152602a60248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201527f72207468616e2033302500000000000000000000000000000000000000000000606482015260840161089b565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a15050505050565b6005546001600160a01b03163314611b5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600780547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b03163314611c265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b622625a0811015611c9f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201527f3235250000000000000000000000000000000000000000000000000000000000606482015260840161089b565b611cb181670de0b6b3a7640000612d93565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b03163314611d395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6001600160a01b038116611db55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161089b565b611dbe81612494565b50565b6001600160a01b038316611e3c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b038216611eb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111611f8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0383165f908152601a602052604090205460ff16158015611fcd57506001600160a01b0382165f908152601a602052604090205460ff16155b8015611ff4575060075474010000000000000000000000000000000000000000900460ff16155b1561216c57600754760100000000000000000000000000000000000000000000900460ff166120655760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206e6f74206163746976652079657400000000000000000000604482015260640161089b565b6009548111156120b75760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015260640161089b565b6007546001600160a01b0383811691161461216c57600a54816120ee846001600160a01b03165f9081526020819052604090205490565b6120f89190612daa565b111561216c5760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6007545f9074010000000000000000000000000000000000000000900460ff16806121ae57506001600160a01b0384165f908152601a602052604090205460ff165b806121d057506001600160a01b0383165f908152601a602052604090205460ff165b156121dc57505f61223c565b6007546001600160a01b0390811690841603612213576064601954836122029190612d93565b61220c9190612dbd565b905061223c565b6007546001600160a01b0390811690851603612239576064601854836122029190612d93565b505f5b6007547501000000000000000000000000000000000000000000900460ff168015612282575060075474010000000000000000000000000000000000000000900460ff16155b801561229c57506007546001600160a01b03858116911614155b80156122a757505f81115b156122b4576122b46124fd565b6122c884846122c38486612d4e565b6126f6565b80156122d9576122d98430836126f6565b6019546017545f91906122ec9084612d93565b6122f69190612dbd565b9050801561230b5761230b3061dead836126f6565b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061234557612345612df5565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156123b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d99190612e22565b816001815181106123ec576123ec612df5565b6001600160a01b0392831660209182029290920101526006546124129130911684611dc1565b6006546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906124639085905f90869030904290600401612e3d565b5f604051808303815f87803b15801561247a575f80fd5b505af115801561248c573d5f803e3d5ffd5b505050505050565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60075474010000000000000000000000000000000000000000900460ff1661150657600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055305f90815260208190526040812054905060085481106126cb575f60195460026125889190612d93565b90505f816013600101548461259d9190612d93565b6125a79190612dbd565b90505f6125b48285612d4e565b9050476125c082612312565b5f6125cb8247612d4e565b6014549091505f906125dd9087612d4e565b6125e79083612dbd565b6014549091505f906125f99083612d93565b90505f8611801561260957505f81115b15612618576126188682612915565b6013545f90612628846002612d93565b6126329190612d93565b9050801561265057600b54612650906001600160a01b0316826129d6565b6015545f90612660856002612d93565b61266a9190612d93565b9050801561268857600c54612688906001600160a01b0316826129d6565b6016545f90612698866002612d93565b6126a29190612d93565b905080156126c057600d546126c0906001600160a01b0316826129d6565b505050505050505050505b50600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6001600160a01b0383166127725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0382166127ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0383165f908152602081905260409020548181101561287c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161089b565b6128868282612d4e565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906128bb908490612daa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161290791815260200190565b60405180910390a350505050565b60065461292d9030906001600160a01b031684611dc1565b6006546040517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156129b1573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061230b9190612eac565b80471015612a265760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161089b565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114612a6f576040519150601f19603f3d011682016040523d82523d5f602084013e612a74565b606091505b5050905080612aeb5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161089b565b505050565b5f6020808352835180828501525f5b81811015612b1b57858101830151858201604001528201612aff565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b0381168114611dbe575f80fd5b5f8060408385031215612b7e575f80fd5b8235612b8981612b59565b946020939093013593505050565b5f805f60608486031215612ba9575f80fd5b8335612bb481612b59565b92506020840135612bc481612b59565b929592945050506040919091013590565b5f8060408385031215612be6575f80fd5b8235612bf181612b59565b91506020830135612c0181612b59565b809150509250929050565b5f60208284031215612c1c575f80fd5b5035919050565b5f805f805f60a08688031215612c37575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b8015158114611dbe575f80fd5b5f8060408385031215612c78575f80fd5b8235612c8381612b59565b91506020830135612c0181612c5a565b5f60208284031215612ca3575f80fd5b8135612cae81612b59565b9392505050565b5f60208284031215612cc5575f80fd5b8135612cae81612c5a565b600181811c90821680612ce457607f821691505b602082108103612d1b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610a1c57610a1c612d21565b5f60208284031215612d71575f80fd5b5051919050565b5f60208284031215612d88575f80fd5b8151612cae81612c5a565b8082028115828204841417610a1c57610a1c612d21565b80820180821115610a1c57610a1c612d21565b5f82612df0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612e32575f80fd5b8151612cae81612b59565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612e8b5784516001600160a01b031683529383019391830191600101612e66565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612ebe575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122014592d70b0fc0a75796045b643b2c89a9a81f61519295d9b973efaf749aed7fd64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106102b9575f3560e01c806375f0a87411610170578063a9059cbb116100d1578063dd62ed3e11610087578063f2fde38b11610062578063f2fde38b146107e1578063f66895a314610800578063f887ea4014610826575f80fd5b8063dd62ed3e1461075f578063e01af92c146107a3578063ec28438a146107c2575f80fd5b8063c04a5414116100b7578063c04a5414146106f3578063c791fc5414610712578063dbe66ca014610731575f80fd5b8063a9059cbb146106bf578063aa4bde28146106de575f80fd5b806395d89b41116101265780639d0014b11161010c5780639d0014b114610662578063a457c2d714610681578063a8aa1b31146106a0575f80fd5b806395d89b411461062f5780639aed737014610643575f80fd5b8063864701a511610156578063864701a5146105af5780638c0b5e22146105fd5780638da5cb5b14610612575f80fd5b806375f0a8741461055d5780638091f3bf1461057c575f80fd5b8063395093511161021a57806367c45349116101d057806370a08231116101b657806370a08231146104f6578063715018a61461052a57806372ac24861461053e575f80fd5b806367c45349146104b05780636ddd1713146104c4575f80fd5b8063590ffdce11610200578063590ffdce146104535780635d098b38146104725780636043429a14610491575f80fd5b8063395093511461041557806340ac48d314610434575f80fd5b806318160ddd1161026f57806325b86edf1161025557806325b86edf146103bc57806327a14fc2146103db578063313ce567146103fa575f80fd5b806318160ddd1461038957806323b872dd1461039d575f80fd5b806306fdde031161029f57806306fdde0314610302578063095ea7b3146103235780630973db2114610352575f80fd5b806301339c21146102c45780630445b667146102da575f80fd5b366102c057005b5f80fd5b3480156102cf575f80fd5b506102d8610845565b005b3480156102e5575f80fd5b506102ef60085481565b6040519081526020015b60405180910390f35b34801561030d575f80fd5b5061031661097c565b6040516102f99190612af0565b34801561032e575f80fd5b5061034261033d366004612b6d565b610a0c565b60405190151581526020016102f9565b34801561035d575f80fd5b50600d54610371906001600160a01b031681565b6040516001600160a01b0390911681526020016102f9565b348015610394575f80fd5b506002546102ef565b3480156103a8575f80fd5b506103426103b7366004612b97565b610a22565b3480156103c7575f80fd5b506103426103d6366004612bd5565b610ae6565b3480156103e6575f80fd5b506102d86103f5366004612c0c565b610c9c565b348015610405575f80fd5b50604051601281526020016102f9565b348015610420575f80fd5b5061034261042f366004612b6d565b610daf565b34801561043f575f80fd5b506102d861044e366004612c23565b610de5565b34801561045e575f80fd5b506102d861046d366004612c67565b610f54565b34801561047d575f80fd5b506102d861048c366004612c93565b611019565b34801561049c575f80fd5b506102d86104ab366004612c93565b611186565b3480156104bb575f80fd5b506102d86112f3565b3480156104cf575f80fd5b50600754610342907501000000000000000000000000000000000000000000900460ff1681565b348015610501575f80fd5b506102ef610510366004612c93565b6001600160a01b03165f9081526020819052604090205490565b348015610535575f80fd5b506102d86114a3565b348015610549575f80fd5b506102d8610558366004612c93565b611508565b348015610568575f80fd5b50600b54610371906001600160a01b031681565b348015610587575f80fd5b5060075461034290760100000000000000000000000000000000000000000000900460ff1681565b3480156105ba575f80fd5b50600e54600f546010546011546012546105d5949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016102f9565b348015610608575f80fd5b506102ef60095481565b34801561061d575f80fd5b506005546001600160a01b0316610371565b34801561063a575f80fd5b50610316611675565b34801561064e575f80fd5b506102d861065d366004612c0c565b611684565b34801561066d575f80fd5b506102d861067c366004612c0c565b61174b565b34801561068c575f80fd5b5061034261069b366004612b6d565b6118d6565b3480156106ab575f80fd5b50600754610371906001600160a01b031681565b3480156106ca575f80fd5b506103426106d9366004612b6d565b611988565b3480156106e9575f80fd5b506102ef600a5481565b3480156106fe575f80fd5b50600c54610371906001600160a01b031681565b34801561071d575f80fd5b506102d861072c366004612c23565b611994565b34801561073c575f80fd5b5061034261074b366004612c93565b601a6020525f908152604090205460ff1681565b34801561076a575f80fd5b506102ef610779366004612bd5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107ae575f80fd5b506102d86107bd366004612cb5565b611b03565b3480156107cd575f80fd5b506102d86107dc366004612c0c565b611bcc565b3480156107ec575f80fd5b506102d86107fb366004612c93565b611cdf565b34801561080b575f80fd5b506013546014546015546016546017546105d5949392919085565b348015610831575f80fd5b50600654610371906001600160a01b031681565b6005546001600160a01b031633146108a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600754760100000000000000000000000000000000000000000000900460ff16156109115760405162461bcd60e51b815260206004820152601660248201527f54726164696e6720616c72656164792061637469766500000000000000000000604482015260640161089b565b600780547fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff167601010000000000000000000000000000000000000000001790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1565b60606003805461098b90612cd0565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790612cd0565b8015610a025780601f106109d957610100808354040283529160200191610a02565b820191905f5260205f20905b8154815290600101906020018083116109e557829003601f168201915b5050505050905090565b5f610a18338484611dc1565b5060015b92915050565b5f610a2e848484611f18565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ac75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606482015260840161089b565b610adb8533610ad68685612d4e565b611dc1565b506001949350505050565b6005545f906001600160a01b03163314610b425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc39190612d61565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610c2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190612d78565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610cf65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b622625a0811015610d6f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201527f3235250000000000000000000000000000000000000000000000000000000000606482015260840161089b565b610d8181670de0b6b3a7640000612d93565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a18918590610ad6908690612daa565b6005546001600160a01b03163314610e3f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052600e859055600f849055601083905560118290556012819055808284610e8c8789612daa565b610e969190612daa565b610ea09190612daa565b610eaa9190612daa565b6018819055601e1015610f255760405162461bcd60e51b815260206004820152602960248201527f546f74616c2062757920666565732063616e6e6f74206265206772656174657260448201527f207468616e203330250000000000000000000000000000000000000000000000606482015260840161089b565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a15050505050565b6005546001600160a01b03163314610fae5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6001600160a01b0382165f908152601a602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b031633146110735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600b546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166111285760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f2060448201527f6164647265737300000000000000000000000000000000000000000000000000606482015260840161089b565b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b031633146111e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600d546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166112955760405162461bcd60e51b815260206004820152602960248201527f446f6f736865735465616d2057616c6c65742063616e6e6f74206265207a657260448201527f6f20616464726573730000000000000000000000000000000000000000000000606482015260840161089b565b600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f68e993f3e343980937c417fde0ea6733de0bca75da62f19649ecee2e13fd2e5b905f90a150565b6005546001600160a01b0316331461134d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556113b26113ad306001600160a01b03165f9081526020819052604090205490565b612312565b475f6113bf600283612dbd565b90505f6113cc8284612d4e565b600b546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f811461141b576040519150601f19603f3d011682016040523d82523d5f602084013e611420565b606091505b5050600c546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461146d576040519150601f19603f3d011682016040523d82523d5f602084013e611472565b606091505b5050600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690555050505050565b6005546001600160a01b031633146114fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6115065f612494565b565b6005546001600160a01b031633146115625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600c546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166116175760405162461bcd60e51b815260206004820152602960248201527f446576656c6f706d656e742057616c6c65742063616e6e6f74206265207a657260448201527f6f20616464726573730000000000000000000000000000000000000000000000606482015260840161089b565b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f56c050a659ad3741e0a2373000420a1c3c060f7f39c95458be197a36a6e61ec2905f90a150565b60606004805461098b90612cd0565b6005546001600160a01b031633146116de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b47336108fc60646116ef8585612d93565b6116f99190612dbd565b6040518115909202915f818181858888f1935050505015801561171e573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b031633146117a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b61271081101561181d5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000606482015260840161089b565b6301c9c3808111156118975760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20332520746f74616c20737570706c792e0000000000000000000000000000606482015260840161089b565b6118a981670de0b6b3a7640000612d93565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561196f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161089b565b61197e3385610ad68685612d4e565b5060019392505050565b5f610a18338484611f18565b6005546001600160a01b031633146119ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040805160a081018252868152602081018690529081018490526060810183905260800181905260138590556014849055601583905560168290556017819055808284611a3b8789612daa565b611a459190612daa565b611a4f9190612daa565b611a599190612daa565b6019819055601e1015611ad45760405162461bcd60e51b815260206004820152602a60248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201527f72207468616e2033302500000000000000000000000000000000000000000000606482015260840161089b565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a15050505050565b6005546001600160a01b03163314611b5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600780547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b03163314611c265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b622625a0811015611c9f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201527f3235250000000000000000000000000000000000000000000000000000000000606482015260840161089b565b611cb181670de0b6b3a7640000612d93565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b03163314611d395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6001600160a01b038116611db55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161089b565b611dbe81612494565b50565b6001600160a01b038316611e3c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b038216611eb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111611f8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0383165f908152601a602052604090205460ff16158015611fcd57506001600160a01b0382165f908152601a602052604090205460ff16155b8015611ff4575060075474010000000000000000000000000000000000000000900460ff16155b1561216c57600754760100000000000000000000000000000000000000000000900460ff166120655760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206e6f74206163746976652079657400000000000000000000604482015260640161089b565b6009548111156120b75760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015260640161089b565b6007546001600160a01b0383811691161461216c57600a54816120ee846001600160a01b03165f9081526020819052604090205490565b6120f89190612daa565b111561216c5760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6007545f9074010000000000000000000000000000000000000000900460ff16806121ae57506001600160a01b0384165f908152601a602052604090205460ff165b806121d057506001600160a01b0383165f908152601a602052604090205460ff165b156121dc57505f61223c565b6007546001600160a01b0390811690841603612213576064601954836122029190612d93565b61220c9190612dbd565b905061223c565b6007546001600160a01b0390811690851603612239576064601854836122029190612d93565b505f5b6007547501000000000000000000000000000000000000000000900460ff168015612282575060075474010000000000000000000000000000000000000000900460ff16155b801561229c57506007546001600160a01b03858116911614155b80156122a757505f81115b156122b4576122b46124fd565b6122c884846122c38486612d4e565b6126f6565b80156122d9576122d98430836126f6565b6019546017545f91906122ec9084612d93565b6122f69190612dbd565b9050801561230b5761230b3061dead836126f6565b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061234557612345612df5565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156123b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d99190612e22565b816001815181106123ec576123ec612df5565b6001600160a01b0392831660209182029290920101526006546124129130911684611dc1565b6006546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906124639085905f90869030904290600401612e3d565b5f604051808303815f87803b15801561247a575f80fd5b505af115801561248c573d5f803e3d5ffd5b505050505050565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60075474010000000000000000000000000000000000000000900460ff1661150657600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055305f90815260208190526040812054905060085481106126cb575f60195460026125889190612d93565b90505f816013600101548461259d9190612d93565b6125a79190612dbd565b90505f6125b48285612d4e565b9050476125c082612312565b5f6125cb8247612d4e565b6014549091505f906125dd9087612d4e565b6125e79083612dbd565b6014549091505f906125f99083612d93565b90505f8611801561260957505f81115b15612618576126188682612915565b6013545f90612628846002612d93565b6126329190612d93565b9050801561265057600b54612650906001600160a01b0316826129d6565b6015545f90612660856002612d93565b61266a9190612d93565b9050801561268857600c54612688906001600160a01b0316826129d6565b6016545f90612698866002612d93565b6126a29190612d93565b905080156126c057600d546126c0906001600160a01b0316826129d6565b505050505050505050505b50600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6001600160a01b0383166127725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0382166127ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0383165f908152602081905260409020548181101561287c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161089b565b6128868282612d4e565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906128bb908490612daa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161290791815260200190565b60405180910390a350505050565b60065461292d9030906001600160a01b031684611dc1565b6006546040517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156129b1573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061230b9190612eac565b80471015612a265760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161089b565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114612a6f576040519150601f19603f3d011682016040523d82523d5f602084013e612a74565b606091505b5050905080612aeb5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161089b565b505050565b5f6020808352835180828501525f5b81811015612b1b57858101830151858201604001528201612aff565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b0381168114611dbe575f80fd5b5f8060408385031215612b7e575f80fd5b8235612b8981612b59565b946020939093013593505050565b5f805f60608486031215612ba9575f80fd5b8335612bb481612b59565b92506020840135612bc481612b59565b929592945050506040919091013590565b5f8060408385031215612be6575f80fd5b8235612bf181612b59565b91506020830135612c0181612b59565b809150509250929050565b5f60208284031215612c1c575f80fd5b5035919050565b5f805f805f60a08688031215612c37575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b8015158114611dbe575f80fd5b5f8060408385031215612c78575f80fd5b8235612c8381612b59565b91506020830135612c0181612c5a565b5f60208284031215612ca3575f80fd5b8135612cae81612b59565b9392505050565b5f60208284031215612cc5575f80fd5b8135612cae81612c5a565b600181811c90821680612ce457607f821691505b602082108103612d1b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610a1c57610a1c612d21565b5f60208284031215612d71575f80fd5b5051919050565b5f60208284031215612d88575f80fd5b8151612cae81612c5a565b8082028115828204841417610a1c57610a1c612d21565b80820180821115610a1c57610a1c612d21565b5f82612df0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612e32575f80fd5b8151612cae81612b59565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612e8b5784516001600160a01b031683529383019391830191600101612e66565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612ebe575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122014592d70b0fc0a75796045b643b2c89a9a81f61519295d9b973efaf749aed7fd64736f6c63430008140033

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.