ETH Price: $3,911.26 (+2.16%)

Token

Ugly Dog (UGLY)
 

Overview

Max Total Supply

100,000,000,000 UGLY

Holders

13 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The aim of this social-driven project is to create awareness towards the less fortunate beings all over the world. The contract has set a cap on individual wallet holdings at 7% of the total supply and establishes a transaction ceiling of 5% of the total supply.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
UglyDogToken

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : UglyDogToken.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

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

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

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

    mapping(address => mapping(address => uint256)) private _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 to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), 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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract UglyDogToken is ERC20, Ownable {
    event TransferFee(uint256 makertingTax, uint256 devTax, uint256 indexed lpTax);
    event MarketingWalletUpdated(address newWallet, address oldWallet);
    event DevWalletUpdated(address newWallet, address oldWallet);

    struct TokenInfo {
        string name;
        string symbol;
        address marketingFeeReceiver;
        address devFeeReceiver;
        uint256 marketingTaxBuy;
        uint256 marketingTaxSell;
        uint256 devTaxSell;
        uint256 devTaxBuy;
        uint256 lpTaxBuy;
        uint256 lpTaxSell;
        uint256 totalSupply;
        uint256 maxPercentageForWallet;
        uint256 maxPercentageForTx;
        address swapRouter;
        address newOwner;
    }

    TokenInfo private tokenInfo;

    mapping(address => bool) public isExcludeFromFee;
    mapping(address => bool) public isExcludeFromTxLimit;
    mapping(address => bool) public isExcludeFromWalletLimit;

    address deployer;
    address public swapPair;
    address public weth;
    uint256 private deployerTax;
    uint256 public maxAmountForWallet;
    uint256 public maxAmountForTx;

    bool public swapping;

    uint256 public tokensForMarketing;
    uint256 public tokensForDev;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDeployer;

    modifier onlySwapping() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor(
        TokenInfo memory _tokenInfo,
        uint256 _deployerTax,
        address _deployFeeReceiver
    ) ERC20(_tokenInfo.name, _tokenInfo.symbol) {
        deployer = _deployFeeReceiver;
        tokenInfo = _tokenInfo;
        deployerTax = _deployerTax;

        require(
            _tokenInfo.maxPercentageForTx >= 0 ether && _tokenInfo.maxPercentageForTx <= 100 ether,
            "Value must be between 0% and 100%"
        );
        require(
            _tokenInfo.maxPercentageForWallet >= 0 ether &&
                _tokenInfo.maxPercentageForWallet <= 100 ether,
            "Value must be between 0% and 100%"
        );

        uint256 uBuyFee = tokenInfo.devTaxBuy + tokenInfo.lpTaxBuy + tokenInfo.marketingTaxBuy;
        uint256 uSellFee = tokenInfo.devTaxSell + tokenInfo.lpTaxSell + tokenInfo.marketingTaxSell;
        require(uBuyFee <= 15 ether && uSellFee <= 15 ether, "Total tax fees exceed 15%");

        maxAmountForWallet = (_tokenInfo.maxPercentageForWallet * _tokenInfo.totalSupply) / 100 ether;
        maxAmountForTx = (_tokenInfo.maxPercentageForTx * _tokenInfo.totalSupply) / 100 ether;

        address swapFactory = IUniswapV2Router02(_tokenInfo.swapRouter).factory();
        weth = IUniswapV2Router02(_tokenInfo.swapRouter).WETH();
        swapPair = IUniswapV2Factory(swapFactory).createPair(address(this), weth);

        isExcludeFromFee[address(this)] = true;
        isExcludeFromFee[_tokenInfo.newOwner] = true;
        isExcludeFromFee[_tokenInfo.marketingFeeReceiver] = true;
        isExcludeFromFee[_tokenInfo.devFeeReceiver] = true;

        isExcludeFromTxLimit[address(this)] = true;
        isExcludeFromTxLimit[_tokenInfo.newOwner] = true;
        isExcludeFromTxLimit[tokenInfo.swapRouter] = true;
        isExcludeFromTxLimit[_tokenInfo.marketingFeeReceiver] = true;
        isExcludeFromTxLimit[_tokenInfo.devFeeReceiver] = true;

        isExcludeFromWalletLimit[address(this)] = true;
        isExcludeFromWalletLimit[_tokenInfo.newOwner] = true;
        isExcludeFromWalletLimit[tokenInfo.swapRouter] = true;
        isExcludeFromWalletLimit[_tokenInfo.marketingFeeReceiver] = true;
        isExcludeFromWalletLimit[_tokenInfo.devFeeReceiver] = true;
        isExcludeFromWalletLimit[swapPair] = true;

        super._transferOwnership(_tokenInfo.newOwner);
        super._mint(_tokenInfo.newOwner, _tokenInfo.totalSupply);
        _approve(address(this), tokenInfo.swapRouter, type(uint256).max);
    }

    function getTokenInfo() public view returns (TokenInfo memory _tokenInfo) {
        _tokenInfo = tokenInfo;
    }

    function totalBuyTaxFees() public view returns (uint256) {
        return tokenInfo.devTaxBuy + tokenInfo.lpTaxBuy + tokenInfo.marketingTaxBuy;
    }

    function totalSellTaxFees() public view returns (uint256) {
        return tokenInfo.devTaxSell + tokenInfo.lpTaxSell + tokenInfo.marketingTaxSell;
    }

    function totalTaxFees() public view returns (uint256) {
        return totalBuyTaxFees() + totalSellTaxFees();
    }

    function getMarketingBuyTax() external view returns (uint256) {
        return tokenInfo.marketingTaxBuy;
    }

    function getMarketingSellTax() external view returns (uint256) {
        return tokenInfo.marketingTaxSell;
    }

    function getDevBuyTax() external view returns (uint256) {
        return tokenInfo.devTaxBuy;
    }

    function getDevSellTax() external view returns (uint256) {
        return tokenInfo.devTaxSell;
    }

    function getLpBuyTax() external view returns (uint256) {
        return tokenInfo.lpTaxBuy;
    }

    function getLpSellTax() external view returns (uint256) {
        return tokenInfo.lpTaxSell;
    }

    function setExclusionFromFee(address account, bool value) public onlyOwner {
        isExcludeFromFee[account] = value;
    }

    function setExclusionFromTxLimit(address account, bool value) public onlyOwner {
        isExcludeFromTxLimit[account] = value;
    }

    function setExclusionFromWalletLimit(address account, bool value) public onlyOwner {
        isExcludeFromWalletLimit[account] = value;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        address oldWallet = tokenInfo.marketingFeeReceiver;
        tokenInfo.marketingFeeReceiver = newWallet;

        emit MarketingWalletUpdated(newWallet, oldWallet);
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        address oldWallet = tokenInfo.devFeeReceiver;
        tokenInfo.devFeeReceiver = newWallet;

        emit DevWalletUpdated(newWallet, oldWallet);
    }

    function updateMarketingBuyTax(uint256 tax) external onlyOwner {
        tokenInfo.marketingTaxBuy = tax;
        require(totalBuyTaxFees() <= 15 ether, "Total tax fees exceed 15%");
    }

    function updateMarketingSellTax(uint256 tax) external onlyOwner {
        tokenInfo.marketingTaxSell = tax;
        require(totalSellTaxFees() <= 15 ether, "Total tax fees exceed 15%");
    }

    function updateDevBuyTax(uint256 tax) external onlyOwner {
        tokenInfo.devTaxBuy = tax;
        require(totalBuyTaxFees() <= 15 ether, "Total tax fees exceed 15%");
    }

    function updateDevSellTax(uint256 tax) external onlyOwner {
        tokenInfo.devTaxSell = tax;
        require(totalSellTaxFees() <= 15 ether, "Total tax fees exceed 15%");
    }

    function updateLpBuyTax(uint256 tax) external onlyOwner {
        tokenInfo.lpTaxBuy = tax;
        require(totalBuyTaxFees() <= 15 ether, "Total tax fees exceed 15%");
    }

    function updateLpSellTax(uint256 tax) external onlyOwner {
        tokenInfo.lpTaxSell = tax;
        require(totalSellTaxFees() <= 15 ether, "Total tax fees exceed 15%");
    }

    function updateMaxWalletAmount(uint256 maxWallet) external onlyOwner {
        require(maxWallet <= 100 ether && maxWallet >= 0 ether, "Value must be between 0% and 100%");
        tokenInfo.maxPercentageForWallet = maxWallet;
        maxAmountForWallet = (maxWallet * tokenInfo.totalSupply) / 100 ether;
    }

    function updateMaxTransactionAmount(uint256 maxTx) external onlyOwner {
        require(maxTx <= 100 ether && maxTx >= 0 ether, "Value must be between 0% and 100%");
        tokenInfo.maxPercentageForTx = maxTx;
        maxAmountForTx = (maxTx * tokenInfo.totalSupply) / 100 ether;
    }

    function _swapAndAddLiquidity() internal onlySwapping {
        uint256 totalFees = tokensForMarketing + tokensForDev + tokensForLiquidity + tokensForDeployer;

        require(totalFees > 0);

        address swapRouter = tokenInfo.swapRouter;
        uint256 halfLpFee = tokensForLiquidity / 2;
        totalFees -= halfLpFee;

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

        uint256 beforeEthBalance = address(this).balance;

        IUniswapV2Router02(swapRouter).swapExactTokensForETHSupportingFeeOnTransferTokens(
            totalFees,
            0,
            path,
            address(this),
            block.timestamp + 60
        );

        uint256 ethBalance = address(this).balance - beforeEthBalance;

        uint256 lpTaxFeeETH = (ethBalance * halfLpFee) / totalFees;
        uint256 marketingTaxFeeETH = (ethBalance * tokensForMarketing) / totalFees;
        uint256 devTaxFeeETH = (ethBalance * tokensForDev) / totalFees;
        uint256 taxFeeForDeployer = ethBalance - lpTaxFeeETH - marketingTaxFeeETH - devTaxFeeETH;

        if (marketingTaxFeeETH > 0) {
            payable(tokenInfo.marketingFeeReceiver).transfer(marketingTaxFeeETH);
        }
        if (devTaxFeeETH > 0) {
            payable(tokenInfo.devFeeReceiver).transfer(devTaxFeeETH);
        }
        if (taxFeeForDeployer > 0) {
            payable(deployer).transfer(taxFeeForDeployer);
        }

        if (lpTaxFeeETH > 0 && halfLpFee > 0) {
            IUniswapV2Router02(swapRouter).addLiquidityETH{ value: lpTaxFeeETH }(
                address(this),
                halfLpFee,
                0,
                0,
                owner(),
                block.timestamp + 60
            );
        }

        tokensForMarketing = 0;
        tokensForDev = 0;
        tokensForLiquidity = 0;
        tokensForDeployer = 0;

        emit TransferFee(tokensForMarketing, tokensForDev, tokensForLiquidity);
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        if (!isExcludeFromTxLimit[from] && !isExcludeFromTxLimit[to])
            require(maxAmountForTx >= amount, "Transfer amount exceeds max allowed per transaction");
        if (!isExcludeFromWalletLimit[to])
            require((balanceOf(to) + amount) <= maxAmountForWallet, "Recipient's balance after transfer exceeds max allowed per wallet");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 fees;
        if (
            !swapping &&
            !isExcludeFromFee[from] &&
            !isExcludeFromFee[to] &&
            (from == swapPair || to == swapPair)
        ) {
            uint256 uBuyFee = totalBuyTaxFees() + deployerTax;
            uint256 uSellFee = totalSellTaxFees() + deployerTax;

            if (from == swapPair && uBuyFee > 0) {
                fees = (amount * uBuyFee) / (100 ether);
                tokensForDeployer += (fees * deployerTax) / uBuyFee;
                tokensForDev += (fees * tokenInfo.devTaxBuy) / uBuyFee;
                tokensForLiquidity += (fees * tokenInfo.lpTaxBuy) / uBuyFee;
                tokensForMarketing += (fees * tokenInfo.marketingTaxBuy) / uBuyFee;
            }
            if (to == swapPair && uSellFee > 0) {
                fees = (amount * uSellFee) / (100 ether);
                tokensForDeployer += (fees * deployerTax) / uSellFee;
                tokensForDev += (fees * tokenInfo.devTaxSell) / uSellFee;
                tokensForLiquidity += (fees * tokenInfo.lpTaxSell) / uSellFee;
                tokensForMarketing += (fees * tokenInfo.marketingTaxSell) / uSellFee;
            }

            super._transfer(from, address(this), fees);

            if (to == swapPair && fees > 0) {
                _swapAndAddLiquidity();
            }
        }

        super._transfer(from, to, amount - fees);
    }

    receive() external payable {}
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"internalType":"address","name":"devFeeReceiver","type":"address"},{"internalType":"uint256","name":"marketingTaxBuy","type":"uint256"},{"internalType":"uint256","name":"marketingTaxSell","type":"uint256"},{"internalType":"uint256","name":"devTaxSell","type":"uint256"},{"internalType":"uint256","name":"devTaxBuy","type":"uint256"},{"internalType":"uint256","name":"lpTaxBuy","type":"uint256"},{"internalType":"uint256","name":"lpTaxSell","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"maxPercentageForWallet","type":"uint256"},{"internalType":"uint256","name":"maxPercentageForTx","type":"uint256"},{"internalType":"address","name":"swapRouter","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"internalType":"struct UglyDogToken.TokenInfo","name":"_tokenInfo","type":"tuple"},{"internalType":"uint256","name":"_deployerTax","type":"uint256"},{"internalType":"address","name":"_deployFeeReceiver","type":"address"}],"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":false,"internalType":"address","name":"newWallet","type":"address"},{"indexed":false,"internalType":"address","name":"oldWallet","type":"address"}],"name":"DevWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWallet","type":"address"},{"indexed":false,"internalType":"address","name":"oldWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"makertingTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"devTax","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"lpTax","type":"uint256"}],"name":"TransferFee","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":"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":"getDevBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDevSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLpBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLpSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenInfo","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"internalType":"address","name":"devFeeReceiver","type":"address"},{"internalType":"uint256","name":"marketingTaxBuy","type":"uint256"},{"internalType":"uint256","name":"marketingTaxSell","type":"uint256"},{"internalType":"uint256","name":"devTaxSell","type":"uint256"},{"internalType":"uint256","name":"devTaxBuy","type":"uint256"},{"internalType":"uint256","name":"lpTaxBuy","type":"uint256"},{"internalType":"uint256","name":"lpTaxSell","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"maxPercentageForWallet","type":"uint256"},{"internalType":"uint256","name":"maxPercentageForTx","type":"uint256"},{"internalType":"address","name":"swapRouter","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"internalType":"struct UglyDogToken.TokenInfo","name":"_tokenInfo","type":"tuple"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludeFromTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludeFromWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAmountForTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAmountForWallet","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExclusionFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExclusionFromTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExclusionFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapping","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":"tokensForDeployer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyTaxFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTaxFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTaxFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"updateDevBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"updateDevSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"updateLpBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"updateLpSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"updateMarketingBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"updateMarketingSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTx","type":"uint256"}],"name":"updateMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523462000e2e576200306980380380916200002082608062000e33565b6080396080016060608082031262000e2e576080516001600160401b03811162000e2e576101e091828260800182031262000e2e576040519283016001600160401b0381118482101762000af25760405260808201516001600160401b03811162000e2e57816200009691846080010162000e57565b835260a0820151906001600160401b03821162000e2e57620000bd91836080010162000e57565b6020830181905290620000d360c0820162000ecd565b6040840152620000e660e0820162000ecd565b60608401526101008082015160808501526101208083015160a08601526101408084015160c08701526101608085015160e088015261018080860151858901526101a0860151848901526101c080870151938901939093526101e0860151828901526102008601518189015290949093916200017b916200016b610220820162000ecd565b6101a08a01526080010162000ecd565b6101c087015260a051946200019160c062000ecd565b87518051919291906001600160401b03821162000af25760035490600182811c9216801562000e23575b602083101462000ad15781601f84931162000db1575b50602090601f831160011462000d225760009262000d16575b50508160011b916000199060031b1c1916176003555b8051906001600160401b03821162000af25760045490600182811c9216801562000d0b575b602083101462000ad15781601f84931162000c99575b50602090601f831160011462000c0a5760009262000bfe575b50508160011b916000199060031b1c1916176004555b620002753362000f71565b601880546001600160a01b0319166001600160a01b039290921691909117905585518051906001600160401b03821162000af25760065490600182811c9216801562000bf3575b602083101462000ad15781601f84931162000b92575b50602090601f831160011462000b145760009262000b08575b50508160011b916000199060031b1c1916176006555b60208601518051906001600160401b03821162000af25760075490600182811c9216801562000ae7575b602083101462000ad15781601f84931162000a70575b50602090601f8311600114620009f257600092620009e6575b50508160011b916000199060031b1c1916176007555b6040860151600880546001600160a01b03199081166001600160a01b039384161790915560608801516009805483169184169190911790556080880151600a81905560a0890151600b81905560c08a0151600c81905560e08b0151600d819055958b0151600e819055968b0151600f8190556101408c0151601055898c0151601155888c015160128190556101a08d01516013805488169189169190911790556101c08d015160148054909716971696909617909455601b9990995568056bc75e2d63100000989295909492939192916200044e908a101562000ee2565b88888b01511115620004609062000ee2565b6200046b9162000f39565b90620004779162000f39565b92620004839162000f39565b906200048f9162000f39565b9067d02ab486cedc0000809111159182620009da575b505015620009955782620004c7620004db938601516101408701519062000f5d565b04601c558301516101408401519062000f5d565b04601d556101a081015160405163c45a015560e01b815290602090829060049082906001600160a01b03165afa908115620008fb5760009162000953575b506101a08201516040516315ab88c960e31b815290602090829060049082906001600160a01b03165afa908115620008fb5760009162000907575b50601a80546001600160a01b0319166001600160a01b039283169081179091556040516364e329cb60e11b815230600482015260248101919091529160209183916044918391600091165af1908115620008fb57600091620008b6575b50601980546001600160a01b0319166001600160a01b03928316178155306000818152601560209081526040808320805460ff1990811660019081179092556101c08901805189168652838620805483168417905589840180518a168752848720805484168517905560608b0180518b168852858820805485168617905588885260168752858820805485168617905582518b1688528588208054851686179055601380548c168952868920805486168717905582518c168952868920805486168717905581518c16895286892080548616871790559888526017909652848720805484168517905581518a1687528487208054841685179055965489168652838620805483168417905595518816855282852080548216831790559251871684528184208054841682179055945486168352909120805490911690921790915551169061014090620007048362000f71565b0151811562000871577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826200074160009460025462000f39565b60025584845283825260408420818154019055604051908152a36013546001600160a01b0316301562000820578015620007d057306000526001602052604060002081600052602052600019806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203092a360405161206e908162000fbb8239f35b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b906020823d602011620008f2575b81620008d36020938362000e33565b81010312620008ef5750620008e89062000ecd565b38620005b1565b80fd5b3d9150620008c4565b6040513d6000823e3d90fd5b906020823d6020116200094a575b81620009246020938362000e33565b81010312620008ef575060009160446200094060209362000ecd565b9250509162000554565b3d915062000915565b906020823d6020116200098c575b81620009706020938362000e33565b81010312620008ef5750620009859062000ecd565b3862000519565b3d915062000961565b60405162461bcd60e51b815260206004820152601960248201527f546f74616c2074617820666565732065786365656420313525000000000000006044820152606490fd5b111590503880620004a5565b0151905038806200035a565b6007600090815293506000805160206200302983398151915291905b601f198416851062000a54576001945083601f1981161062000a3a575b505050811b0160075562000370565b015160001960f88460031b161c1916905538808062000a2b565b8181015183556020948501946001909301929091019062000a0e565b600760005290915060008051602062003029833981519152601f840160051c81016020851062000ac9575b90849392915b601f830160051c8201811062000ab957505062000341565b6000815585945060010162000aa1565b508062000a9b565b634e487b7160e01b600052602260045260246000fd5b91607f16916200032b565b634e487b7160e01b600052604160045260246000fd5b015190503880620002eb565b6006600090815293506000805160206200304983398151915291905b601f198416851062000b76576001945083601f1981161062000b5c575b505050811b0160065562000301565b015160001960f88460031b161c1916905538808062000b4d565b8181015183556020948501946001909301929091019062000b30565b600660005290915060008051602062003049833981519152601f840160051c81016020851062000beb575b90849392915b601f830160051c8201811062000bdb575050620002d2565b6000815585945060010162000bc3565b508062000bbd565b91607f1691620002bc565b01519050388062000254565b6004600090815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91905b601f198416851062000c7d576001945083601f1981161062000c63575b505050811b016004556200026a565b015160001960f88460031b161c1916905538808062000c54565b8181015183556020948501946001909301929091019062000c37565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c81016020851062000d03575b90849392915b601f830160051c8201811062000cf35750506200023b565b6000815585945060010162000cdb565b508062000cd5565b91607f169162000225565b015190503880620001ea565b6003600090815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f198416851062000d95576001945083601f1981161062000d7b575b505050811b0160035562000200565b015160001960f88460031b161c1916905538808062000d6c565b8181015183556020948501946001909301929091019062000d4f565b60036000529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81016020851062000e1b575b90849392915b601f830160051c8201811062000e0b575050620001d1565b6000815585945060010162000df3565b508062000ded565b91607f1691620001bb565b600080fd5b601f909101601f19168101906001600160401b0382119082101762000af257604052565b919080601f8401121562000e2e5782516001600160401b03811162000af2576020906040519262000e9283601f19601f850116018562000e33565b81845282828701011162000e2e5760005b81811062000eb957508260009394955001015290565b858101830151848201840152820162000ea3565b51906001600160a01b038216820362000e2e57565b1562000eea57565b60405162461bcd60e51b815260206004820152602160248201527f56616c7565206d757374206265206265747765656e20302520616e64203130306044820152602560f81b6064820152608490fd5b9190820180921162000f4757565b634e487b7160e01b600052601160045260246000fd5b8181029291811591840414171562000f4757565b600580546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fe60a080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c90816306fdde03146111cc57508063095ea7b3146111a65780631732cded1461118357806318160ddd146111655780631816467f146110ec5780631a615921146110ad5780631a8145bb1461108f5780631f3fed8f146110715780631f76700e146110535780632304d5f11461102057806323b872dd14610f6257806326991cc814610f3957806328ba428614610f1b578063313ce56714610eff57806337853bdf14610ee457806337dc5f9214610ec95780633950935114610e785780633fc8cef314610e4f578063436138da14610e315780634837974014610df25780636f4a77a814610dbe57806370a0823114610d84578063715018a614610d275780638360f4a414610d095780638da5cb5b14610ce05780638e5916b214610ca15780639434d6a214610c6e57806395d89b4114610b72578063987e244c14610b5457806399055b4c14610b215780639fccce3214610b04578063a457c2d714610a5d578063a6bd396d14610a3f578063a9059cbb14610a0e578063aa498023146109b6578063aacebbe31461093c578063abb1dc4414610576578063bad66a1314610536578063bcb7d58d14610518578063c18bc195146104c0578063d8ac45c01461048d578063dcf3ceab1461045a578063dd4b502f1461043c578063dd62ed3e146103eb578063e0a80e17146103cd578063e30f7a291461038d578063f2fde38b146102c4578063f34706b31461028a5763fbd7805c14610245573861000f565b346102855761001b610256366112f8565b9061025f6114a1565b60018060a01b0316600052601660205260406000209060ff801983541691151516179055565b600080fd5b34610285576020366003190112610285576102a36114a1565b600435600e5561001b67d02ab486cedc00006102bd6114f9565b1115611532565b34610285576020366003190112610285576102dd6112cc565b6102e56114a1565b6001600160a01b0390811690811561033957600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b346102855761001b61039e366112f8565b906103a76114a1565b60018060a01b0316600052601760205260406000209060ff801983541691151516179055565b34610285576000366003190112610285576020600b54604051908152f35b34610285576040366003190112610285576104046112cc565b61040c6112e2565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b34610285576000366003190112610285576020600e54604051908152f35b34610285576020366003190112610285576104736114a1565b600435600c5561001b67d02ab486cedc00006102bd611517565b34610285576020366003190112610285576104a66114a1565b600435600a5561001b67d02ab486cedc00006102bd6114f9565b34610285576020366003190112610285576004356104dc6114a1565b61050a68056bc75e2d63100000918281111580610510575b6104fd9061157e565b80601155601054906115d4565b04601c55005b5060016104f4565b34610285576000366003190112610285576020601c54604051908152f35b346102855761001b610547366112f8565b906105506114a1565b60018060a01b0316600052601560205260406000209060ff801983541691151516179055565b346102855760003660031901126102855760006101c060405161059881611327565b60608152606060208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152826101a082015201526040516105ff81611327565b60405160006006548060011c916001821615610932575b6020831060018316146108925782845283916001811690811561091357506001146108b2575b6106489250038261135a565b815260405160006007548060011c91600182169182156108a8575b6020841083146108925783855284929081156108735750600114610812575b61068e9250038261135a565b602082015260018060a01b0360085416604082015260018060a01b03600954166060820152600a546080820152600b5460a0820152600c5460c0820152600d5460e0820152600e54610100820152600f5461012082015260105461014082015260115461016082015260125461018082015260018060a01b03601354166101a082015260018060a01b03601454166101c082015260405180916020825261075c61074682516101e0602086015261020085019061128c565b6020830151848203601f1901604086015261128c565b9060018060a01b03604082015116606084015260018060a01b036060820151166080840152608081015160a084015260a081015160c084015260c081015160e084015260e08101516101008401526101008101516101208401526101208101516101408401526101408101516101608401526101608101516101808401526101808101516101a084015260018060a01b036101a0820151166101c08401526101c060018060a01b03910151166101e08301520390f35b509060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688906000915b81831061085757505090602061068e92820101610682565b602091935080600191548385880101520191019091839261083f565b6020925061068e94915060ff191682840152151560051b820101610682565b634e487b7160e01b600052602260045260246000fd5b92607f1692610663565b509060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f906000915b8183106108f75750509060206106489282010161063c565b60209193508060019154838588010152019101909183926108df565b6020925061064894915060ff191682840152151560051b82010161063c565b91607f1691610616565b34610285576020366003190112610285577f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc676109766112cc565b61097e6114a1565b600880546001600160a01b039283166001600160a01b031982168117909255604080519283529216602082015290819081015b0390a1005b34610285576020366003190112610285576004356109d26114a1565b610a0068056bc75e2d63100000918281111580610a06575b6109f39061157e565b80601255601054906115d4565b04601d55005b5060016109ea565b3461028557604036600319011261028557610a34610a2a6112cc565b6024359033611614565b602060405160018152f35b34610285576000366003190112610285576020600c54604051908152f35b3461028557604036600319011261028557610a766112cc565b60243590336000526001602052604060002060018060a01b03821660005260205260406000205491808310610ab157610a349203903361139f565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b346102855760003660031901126102855760208054604051908152f35b3461028557602036600319011261028557610b3a6114a1565b600435600f5561001b67d02ab486cedc00006102bd611517565b34610285576000366003190112610285576020600d54604051908152f35b3461028557600036600319011261028557604051600060045490600182811c91818416918215610c64575b6020948585108414610892578587948686529182600014610c44575050600114610be7575b50610bcf9250038361135a565b610be360405192828493845283019061128c565b0390f35b84915060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000915b858310610c2c575050610bcf935082010185610bc2565b80548389018501528794508693909201918101610c15565b60ff191685820152610bcf95151560051b8501019250879150610bc29050565b92607f1692610b9d565b3461028557602036600319011261028557610c876114a1565b600435600d5561001b67d02ab486cedc00006102bd6114f9565b34610285576020366003190112610285576001600160a01b03610cc26112cc565b166000526015602052602060ff604060002054166040519015158152f35b34610285576000366003190112610285576005546040516001600160a01b039091168152602090f35b34610285576000366003190112610285576020601d54604051908152f35b3461028557600036600319011261028557610d406114a1565b600580546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610285576020366003190112610285576001600160a01b03610da56112cc565b1660005260006020526020604060002054604051908152f35b34610285576000366003190112610285576020610dea610ddc6114f9565b610de4611517565b9061137c565b604051908152f35b34610285576020366003190112610285576001600160a01b03610e136112cc565b166000526016602052602060ff604060002054166040519015158152f35b34610285576000366003190112610285576020600f54604051908152f35b3461028557600036600319011261028557601a546040516001600160a01b039091168152602090f35b3461028557604036600319011261028557610a34610e946112cc565b336000526001602052604060002060018060a01b038216600052602052610ec260243560406000205461137c565b903361139f565b34610285576000366003190112610285576020610dea611517565b34610285576000366003190112610285576020610dea6114f9565b3461028557600036600319011261028557602060405160128152f35b34610285576000366003190112610285576020600a54604051908152f35b34610285576000366003190112610285576019546040516001600160a01b039091168152602090f35b3461028557606036600319011261028557610f7b6112cc565b610f836112e2565b6044359060018060a01b0383166000526001602052604060002033600052602052604060002054926000198403610fbf575b610a349350611614565b828410610fdb57610fd683610a349503338361139f565b610fb5565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b34610285576020366003190112610285576110396114a1565b600435600b5561001b67d02ab486cedc00006102bd611517565b34610285576000366003190112610285576020602254604051908152f35b34610285576000366003190112610285576020601f54604051908152f35b34610285576000366003190112610285576020602154604051908152f35b34610285576020366003190112610285576001600160a01b036110ce6112cc565b166000526017602052602060ff604060002054166040519015158152f35b34610285576020366003190112610285577f0db17895a9d092fb3ca24d626f2150dd80c185b0706b36f1040ee239f56cb8716111266112cc565b61112e6114a1565b600980546001600160a01b039283166001600160a01b031982168117909255604080519283529216602082015290819081016109b1565b34610285576000366003190112610285576020600254604051908152f35b3461028557600036600319011261028557602060ff601e54166040519015158152f35b3461028557604036600319011261028557610a346111c26112cc565b602435903361139f565b3461028557600036600319011261028557600060035490600182811c91818416918215611282575b6020948585108414610892578587948686529182600014610c445750506001146112255750610bcf9250038361135a565b84915060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906000915b85831061126a575050610bcf935082010185610bc2565b80548389018501528794508693909201918101611253565b92607f16926111f4565b919082519283825260005b8481106112b8575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611297565b600435906001600160a01b038216820361028557565b602435906001600160a01b038216820361028557565b6040906003190112610285576004356001600160a01b0381168103610285579060243580151581036102855790565b6101e0810190811067ffffffffffffffff82111761134457604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761134457604052565b9190820180921161138957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561145057169182156114005760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b6005546001600160a01b031633036114b557565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b61151461150b600d54600e549061137c565b600a549061137c565b90565b611514611529600c54600f549061137c565b600b549061137c565b1561153957565b60405162461bcd60e51b815260206004820152601960248201527f546f74616c2074617820666565732065786365656420313525000000000000006044820152606490fd5b1561158557565b60405162461bcd60e51b815260206004820152602160248201527f56616c7565206d757374206265206265747765656e20302520616e64203130306044820152602560f81b6064820152608490fd5b8181029291811591840414171561138957565b81156115f1570490565b634e487b7160e01b600052601260045260246000fd5b9190820391821161138957565b90600060805260018060a01b038083168060805152601660205260ff9160409183836080512054161580611eb4575b611e4a575b8185169081608051526017602052848460805120541615611db8575b8715611ccd57608051601e549095908116159081611cb2575b81611c98575b5080611c77575b6116a8575b505050506116a0906116a694611607565b91611eca565b565b6116b06114f9565b90886116bf601b54809461137c565b916116d1846116cc611517565b61137c565b92866019541680921480611c6e575b611bb3575b50841480611baa575b611b14575b505050611701843088611eca565b81601954161480611b0b575b611719575b808061168f565b600160ff19601e541617601e55611735601f546020549061137c565b9061174f611746602154809461137c565b6022549061137c565b9182156119ae576117698260135416938260011c90611607565b918451926060840184811067ffffffffffffffff821117611a9f57865260028452602084019386368637805115611af35730855282601a5416815160011015611af357878201524794603c42014211611adb57863b156119ae5787519163791ac94760e01b835260a4830190846004850152608051602485015260a060448501525180915260c4830191906080515b818110611ac357505050306064830152603c4201608483015281806080519203816080518a5af18015611ab757611a84575b5061187a9061188761183f6118829647611607565b611855836118508860011c846115d4565b6115e7565b968361188261186b8a96611850601f54876115d4565b968792611850602054876115d4565b958694611607565b611607565b918015908115611a49575b50508015908115611a0e575b505080159081156119d3575b5050821515806119c7575b611928575b50505050906116a6946116a092608051601f556080516020556080516021556080516022557f83b75e181cbe69110b62dbfd2ce4c8ffb7d045f6866ba506ee718a88b0b3ba278151916080518352608051602084015260805192a260ff19601e5416601e5594819250611712565b600554855163f305d71960e01b815230600482015260019390931c602484015260808051604485015251606484015216608482015242603c0160a482015291606091839160c49183915af180156119bb57611986575b8080806118ba565b606090819392933d81116119b4575b61199f818361135a565b810103126119ae57903861197e565b60805180fd5b503d611995565b82513d608051823e3d90fd5b508160011c15156118b5565b826018541660805192611a04575b60805192839283928392f1156119f85738806118aa565b84513d608051823e3d90fd5b6108fc92506119e1565b836009541660805192611a3f575b60805192839283928392f115611a3357388061189e565b85513d608051823e3d90fd5b6108fc9250611a1c565b846008541660805192611a7a575b60805192839283928392f115611a6e573880611892565b86513d608051823e3d90fd5b6108fc9250611a57565b9067ffffffffffffffff8211611a9f5790865261187a61182a565b634e487b7160e01b6080515260416004526024608051fd5b87513d608051823e3d90fd5b825187168452602093840193909201916001016117f8565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260326004526024608051fd5b5082151561170d565b611b9f92965090611b4c611b448261185068056bc75e2d63100000611b3c83611b97986115d4565b049a8b6115d4565b60225461137c565b602255611b6a611b6282611850600c548b6115d4565b60205461137c565b602055611b88611b8082611850600f548b6115d4565b60215461137c565b602155611850600b54886115d4565b601f5461137c565b601f553880886116f3565b508115156116ee565b9750611bbf88836115d4565b68056bc75e2d6310000090049780611bd7868b6115d4565b90611be1916115e7565b60225490611bee9161137c565b60225580600d54611bff908b6115d4565b90611c09916115e7565b60205490611c169161137c565b60205580600e54611c27908b6115d4565b90611c31916115e7565b60215490611c3e9161137c565b602155600a54611c4e908a6115d4565b90611c58916115e7565b601f5490611c659161137c565b601f55386116e5565b508015156116e0565b508260195416808214908115611c8e575b5061168a565b9050821438611c88565b905082608051526015602052846080512054161538611683565b9050816080515260156020528085608051205416159061167d565b95509550509150508115611d67578215611d185760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160805182528460805152516080518152a3565b5162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b5162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b608051602052611dcd8885608051205461137c565b601c54101561166457835162461bcd60e51b815260206004820152604160248201527f526563697069656e7427732062616c616e6365206166746572207472616e736660448201527f65722065786365656473206d617820616c6c6f776564207065722077616c6c656064820152601d60fa1b608482015260a490fd5b86601d54101561164857825162461bcd60e51b815260206004820152603360248201527f5472616e7366657220616d6f756e742065786365656473206d617820616c6c6f6044820152723bb2b2103832b9103a3930b739b0b1ba34b7b760691b6064820152608490fd5b5081851660805152838360805120541615611643565b6001600160a01b03908116918215611fe55716918215611f9457600082815280602052604081205491808310611f4057604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fdfea2646970667358221220db50a4c3144e1a900ed596f4c46d4fac8abf1ba1392fcec3208bce6cd1807f5f64736f6c63430008150033a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd4400000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002200000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd440000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001431e0fae6d7217caa00000000000000000000000000000000000000000000000000000006124fee993bc00000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd44000000000000000000000000000000000000000000000000000000000000000855676c7920446f67000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000455474c5900000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60a080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c90816306fdde03146111cc57508063095ea7b3146111a65780631732cded1461118357806318160ddd146111655780631816467f146110ec5780631a615921146110ad5780631a8145bb1461108f5780631f3fed8f146110715780631f76700e146110535780632304d5f11461102057806323b872dd14610f6257806326991cc814610f3957806328ba428614610f1b578063313ce56714610eff57806337853bdf14610ee457806337dc5f9214610ec95780633950935114610e785780633fc8cef314610e4f578063436138da14610e315780634837974014610df25780636f4a77a814610dbe57806370a0823114610d84578063715018a614610d275780638360f4a414610d095780638da5cb5b14610ce05780638e5916b214610ca15780639434d6a214610c6e57806395d89b4114610b72578063987e244c14610b5457806399055b4c14610b215780639fccce3214610b04578063a457c2d714610a5d578063a6bd396d14610a3f578063a9059cbb14610a0e578063aa498023146109b6578063aacebbe31461093c578063abb1dc4414610576578063bad66a1314610536578063bcb7d58d14610518578063c18bc195146104c0578063d8ac45c01461048d578063dcf3ceab1461045a578063dd4b502f1461043c578063dd62ed3e146103eb578063e0a80e17146103cd578063e30f7a291461038d578063f2fde38b146102c4578063f34706b31461028a5763fbd7805c14610245573861000f565b346102855761001b610256366112f8565b9061025f6114a1565b60018060a01b0316600052601660205260406000209060ff801983541691151516179055565b600080fd5b34610285576020366003190112610285576102a36114a1565b600435600e5561001b67d02ab486cedc00006102bd6114f9565b1115611532565b34610285576020366003190112610285576102dd6112cc565b6102e56114a1565b6001600160a01b0390811690811561033957600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b346102855761001b61039e366112f8565b906103a76114a1565b60018060a01b0316600052601760205260406000209060ff801983541691151516179055565b34610285576000366003190112610285576020600b54604051908152f35b34610285576040366003190112610285576104046112cc565b61040c6112e2565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b34610285576000366003190112610285576020600e54604051908152f35b34610285576020366003190112610285576104736114a1565b600435600c5561001b67d02ab486cedc00006102bd611517565b34610285576020366003190112610285576104a66114a1565b600435600a5561001b67d02ab486cedc00006102bd6114f9565b34610285576020366003190112610285576004356104dc6114a1565b61050a68056bc75e2d63100000918281111580610510575b6104fd9061157e565b80601155601054906115d4565b04601c55005b5060016104f4565b34610285576000366003190112610285576020601c54604051908152f35b346102855761001b610547366112f8565b906105506114a1565b60018060a01b0316600052601560205260406000209060ff801983541691151516179055565b346102855760003660031901126102855760006101c060405161059881611327565b60608152606060208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152826101a082015201526040516105ff81611327565b60405160006006548060011c916001821615610932575b6020831060018316146108925782845283916001811690811561091357506001146108b2575b6106489250038261135a565b815260405160006007548060011c91600182169182156108a8575b6020841083146108925783855284929081156108735750600114610812575b61068e9250038261135a565b602082015260018060a01b0360085416604082015260018060a01b03600954166060820152600a546080820152600b5460a0820152600c5460c0820152600d5460e0820152600e54610100820152600f5461012082015260105461014082015260115461016082015260125461018082015260018060a01b03601354166101a082015260018060a01b03601454166101c082015260405180916020825261075c61074682516101e0602086015261020085019061128c565b6020830151848203601f1901604086015261128c565b9060018060a01b03604082015116606084015260018060a01b036060820151166080840152608081015160a084015260a081015160c084015260c081015160e084015260e08101516101008401526101008101516101208401526101208101516101408401526101408101516101608401526101608101516101808401526101808101516101a084015260018060a01b036101a0820151166101c08401526101c060018060a01b03910151166101e08301520390f35b509060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688906000915b81831061085757505090602061068e92820101610682565b602091935080600191548385880101520191019091839261083f565b6020925061068e94915060ff191682840152151560051b820101610682565b634e487b7160e01b600052602260045260246000fd5b92607f1692610663565b509060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f906000915b8183106108f75750509060206106489282010161063c565b60209193508060019154838588010152019101909183926108df565b6020925061064894915060ff191682840152151560051b82010161063c565b91607f1691610616565b34610285576020366003190112610285577f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc676109766112cc565b61097e6114a1565b600880546001600160a01b039283166001600160a01b031982168117909255604080519283529216602082015290819081015b0390a1005b34610285576020366003190112610285576004356109d26114a1565b610a0068056bc75e2d63100000918281111580610a06575b6109f39061157e565b80601255601054906115d4565b04601d55005b5060016109ea565b3461028557604036600319011261028557610a34610a2a6112cc565b6024359033611614565b602060405160018152f35b34610285576000366003190112610285576020600c54604051908152f35b3461028557604036600319011261028557610a766112cc565b60243590336000526001602052604060002060018060a01b03821660005260205260406000205491808310610ab157610a349203903361139f565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b346102855760003660031901126102855760208054604051908152f35b3461028557602036600319011261028557610b3a6114a1565b600435600f5561001b67d02ab486cedc00006102bd611517565b34610285576000366003190112610285576020600d54604051908152f35b3461028557600036600319011261028557604051600060045490600182811c91818416918215610c64575b6020948585108414610892578587948686529182600014610c44575050600114610be7575b50610bcf9250038361135a565b610be360405192828493845283019061128c565b0390f35b84915060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000915b858310610c2c575050610bcf935082010185610bc2565b80548389018501528794508693909201918101610c15565b60ff191685820152610bcf95151560051b8501019250879150610bc29050565b92607f1692610b9d565b3461028557602036600319011261028557610c876114a1565b600435600d5561001b67d02ab486cedc00006102bd6114f9565b34610285576020366003190112610285576001600160a01b03610cc26112cc565b166000526015602052602060ff604060002054166040519015158152f35b34610285576000366003190112610285576005546040516001600160a01b039091168152602090f35b34610285576000366003190112610285576020601d54604051908152f35b3461028557600036600319011261028557610d406114a1565b600580546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610285576020366003190112610285576001600160a01b03610da56112cc565b1660005260006020526020604060002054604051908152f35b34610285576000366003190112610285576020610dea610ddc6114f9565b610de4611517565b9061137c565b604051908152f35b34610285576020366003190112610285576001600160a01b03610e136112cc565b166000526016602052602060ff604060002054166040519015158152f35b34610285576000366003190112610285576020600f54604051908152f35b3461028557600036600319011261028557601a546040516001600160a01b039091168152602090f35b3461028557604036600319011261028557610a34610e946112cc565b336000526001602052604060002060018060a01b038216600052602052610ec260243560406000205461137c565b903361139f565b34610285576000366003190112610285576020610dea611517565b34610285576000366003190112610285576020610dea6114f9565b3461028557600036600319011261028557602060405160128152f35b34610285576000366003190112610285576020600a54604051908152f35b34610285576000366003190112610285576019546040516001600160a01b039091168152602090f35b3461028557606036600319011261028557610f7b6112cc565b610f836112e2565b6044359060018060a01b0383166000526001602052604060002033600052602052604060002054926000198403610fbf575b610a349350611614565b828410610fdb57610fd683610a349503338361139f565b610fb5565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b34610285576020366003190112610285576110396114a1565b600435600b5561001b67d02ab486cedc00006102bd611517565b34610285576000366003190112610285576020602254604051908152f35b34610285576000366003190112610285576020601f54604051908152f35b34610285576000366003190112610285576020602154604051908152f35b34610285576020366003190112610285576001600160a01b036110ce6112cc565b166000526017602052602060ff604060002054166040519015158152f35b34610285576020366003190112610285577f0db17895a9d092fb3ca24d626f2150dd80c185b0706b36f1040ee239f56cb8716111266112cc565b61112e6114a1565b600980546001600160a01b039283166001600160a01b031982168117909255604080519283529216602082015290819081016109b1565b34610285576000366003190112610285576020600254604051908152f35b3461028557600036600319011261028557602060ff601e54166040519015158152f35b3461028557604036600319011261028557610a346111c26112cc565b602435903361139f565b3461028557600036600319011261028557600060035490600182811c91818416918215611282575b6020948585108414610892578587948686529182600014610c445750506001146112255750610bcf9250038361135a565b84915060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906000915b85831061126a575050610bcf935082010185610bc2565b80548389018501528794508693909201918101611253565b92607f16926111f4565b919082519283825260005b8481106112b8575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611297565b600435906001600160a01b038216820361028557565b602435906001600160a01b038216820361028557565b6040906003190112610285576004356001600160a01b0381168103610285579060243580151581036102855790565b6101e0810190811067ffffffffffffffff82111761134457604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761134457604052565b9190820180921161138957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561145057169182156114005760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b6005546001600160a01b031633036114b557565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b61151461150b600d54600e549061137c565b600a549061137c565b90565b611514611529600c54600f549061137c565b600b549061137c565b1561153957565b60405162461bcd60e51b815260206004820152601960248201527f546f74616c2074617820666565732065786365656420313525000000000000006044820152606490fd5b1561158557565b60405162461bcd60e51b815260206004820152602160248201527f56616c7565206d757374206265206265747765656e20302520616e64203130306044820152602560f81b6064820152608490fd5b8181029291811591840414171561138957565b81156115f1570490565b634e487b7160e01b600052601260045260246000fd5b9190820391821161138957565b90600060805260018060a01b038083168060805152601660205260ff9160409183836080512054161580611eb4575b611e4a575b8185169081608051526017602052848460805120541615611db8575b8715611ccd57608051601e549095908116159081611cb2575b81611c98575b5080611c77575b6116a8575b505050506116a0906116a694611607565b91611eca565b565b6116b06114f9565b90886116bf601b54809461137c565b916116d1846116cc611517565b61137c565b92866019541680921480611c6e575b611bb3575b50841480611baa575b611b14575b505050611701843088611eca565b81601954161480611b0b575b611719575b808061168f565b600160ff19601e541617601e55611735601f546020549061137c565b9061174f611746602154809461137c565b6022549061137c565b9182156119ae576117698260135416938260011c90611607565b918451926060840184811067ffffffffffffffff821117611a9f57865260028452602084019386368637805115611af35730855282601a5416815160011015611af357878201524794603c42014211611adb57863b156119ae5787519163791ac94760e01b835260a4830190846004850152608051602485015260a060448501525180915260c4830191906080515b818110611ac357505050306064830152603c4201608483015281806080519203816080518a5af18015611ab757611a84575b5061187a9061188761183f6118829647611607565b611855836118508860011c846115d4565b6115e7565b968361188261186b8a96611850601f54876115d4565b968792611850602054876115d4565b958694611607565b611607565b918015908115611a49575b50508015908115611a0e575b505080159081156119d3575b5050821515806119c7575b611928575b50505050906116a6946116a092608051601f556080516020556080516021556080516022557f83b75e181cbe69110b62dbfd2ce4c8ffb7d045f6866ba506ee718a88b0b3ba278151916080518352608051602084015260805192a260ff19601e5416601e5594819250611712565b600554855163f305d71960e01b815230600482015260019390931c602484015260808051604485015251606484015216608482015242603c0160a482015291606091839160c49183915af180156119bb57611986575b8080806118ba565b606090819392933d81116119b4575b61199f818361135a565b810103126119ae57903861197e565b60805180fd5b503d611995565b82513d608051823e3d90fd5b508160011c15156118b5565b826018541660805192611a04575b60805192839283928392f1156119f85738806118aa565b84513d608051823e3d90fd5b6108fc92506119e1565b836009541660805192611a3f575b60805192839283928392f115611a3357388061189e565b85513d608051823e3d90fd5b6108fc9250611a1c565b846008541660805192611a7a575b60805192839283928392f115611a6e573880611892565b86513d608051823e3d90fd5b6108fc9250611a57565b9067ffffffffffffffff8211611a9f5790865261187a61182a565b634e487b7160e01b6080515260416004526024608051fd5b87513d608051823e3d90fd5b825187168452602093840193909201916001016117f8565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260326004526024608051fd5b5082151561170d565b611b9f92965090611b4c611b448261185068056bc75e2d63100000611b3c83611b97986115d4565b049a8b6115d4565b60225461137c565b602255611b6a611b6282611850600c548b6115d4565b60205461137c565b602055611b88611b8082611850600f548b6115d4565b60215461137c565b602155611850600b54886115d4565b601f5461137c565b601f553880886116f3565b508115156116ee565b9750611bbf88836115d4565b68056bc75e2d6310000090049780611bd7868b6115d4565b90611be1916115e7565b60225490611bee9161137c565b60225580600d54611bff908b6115d4565b90611c09916115e7565b60205490611c169161137c565b60205580600e54611c27908b6115d4565b90611c31916115e7565b60215490611c3e9161137c565b602155600a54611c4e908a6115d4565b90611c58916115e7565b601f5490611c659161137c565b601f55386116e5565b508015156116e0565b508260195416808214908115611c8e575b5061168a565b9050821438611c88565b905082608051526015602052846080512054161538611683565b9050816080515260156020528085608051205416159061167d565b95509550509150508115611d67578215611d185760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160805182528460805152516080518152a3565b5162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b5162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b608051602052611dcd8885608051205461137c565b601c54101561166457835162461bcd60e51b815260206004820152604160248201527f526563697069656e7427732062616c616e6365206166746572207472616e736660448201527f65722065786365656473206d617820616c6c6f776564207065722077616c6c656064820152601d60fa1b608482015260a490fd5b86601d54101561164857825162461bcd60e51b815260206004820152603360248201527f5472616e7366657220616d6f756e742065786365656473206d617820616c6c6f6044820152723bb2b2103832b9103a3930b739b0b1ba34b7b760691b6064820152608490fd5b5081851660805152838360805120541615611643565b6001600160a01b03908116918215611fe55716918215611f9457600082815280602052604081205491808310611f4057604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fdfea2646970667358221220db50a4c3144e1a900ed596f4c46d4fac8abf1ba1392fcec3208bce6cd1807f5f64736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd4400000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002200000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd440000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001431e0fae6d7217caa00000000000000000000000000000000000000000000000000000006124fee993bc00000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd44000000000000000000000000000000000000000000000000000000000000000855676c7920446f67000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000455474c5900000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _tokenInfo (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [1] : _deployerTax (uint256): 0
Arg [2] : _deployFeeReceiver (address): 0x1f61C2b1741B352E8D68ac388986585666CffD44

-----Encoded View---------------
22 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd44
Arg [3] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000220
Arg [5] : 0000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd44
Arg [6] : 0000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd44
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000000000000000000001431e0fae6d7217caa0000000
Arg [14] : 0000000000000000000000000000000000000000000000006124fee993bc0000
Arg [15] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [16] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [17] : 0000000000000000000000001f61c2b1741b352e8d68ac388986585666cffd44
Arg [18] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [19] : 55676c7920446f67000000000000000000000000000000000000000000000000
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [21] : 55474c5900000000000000000000000000000000000000000000000000000000


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.