ETH Price: $2,421.68 (-8.43%)
 

Overview

Max Total Supply

238,091,644,557 SMALLS

Holders

59

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
Smalls

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 5000 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "./SafeMath.sol";
import "./IUniswapV2Router02.sol";
import "./IUniswapV2Factory.sol";

contract Smalls is IERC20, Ownable {
    using SafeMath for uint256;

    // Struct to combine account-related information
    struct AccountInfo {
        uint256 balance;
        uint256 lastTransferTimestamp;
        bool isExcludedFromFee;
        bool isBot;
    }

    // Mapping from address to account info
    mapping(address => AccountInfo) private accounts;

    // Mapping from owner to spender allowances
    mapping(address => mapping(address => uint256)) private _allowances;

    // Struct to store tax wallet addresses
    struct TaxWallets {
        address payable taxWallet;
        address payable tax1Wallet;
        address payable tax2Wallet;
        address payable tax3Wallet;
    }

    TaxWallets private taxWallets;

    // Array to store tax percentages for different purposes
    uint256[4] public taxShares = [25, 25, 25, 25];

    // Buy and sell tax percentages
    struct Taxes {
        uint256 toBuy;
        uint256 toSell;
    }

    Taxes private taxes;

    // Variables for managing swap conditions
    uint256 public _preventSwapBefore = 3;
    uint256 public _buyCount = 0;

    // Token properties
    uint256 private _totalSupply;

    uint256 public constant INITIAL_SUPPLY =  238091644556 * 10 ** 9;
    uint256 public constant MAX_SUPPLY =  1000000000000 * 10 ** 9;

    // Transaction limits
    uint256 public _maxTxAmount = (INITIAL_SUPPLY * 2) / 100;
    uint256 public _maxWalletSize = (INITIAL_SUPPLY * 2) / 100;

    // Swap thresholds for token to ETH conversion
    uint256 public _taxSwapThreshold = (INITIAL_SUPPLY * 2) / 1000;
    uint256 public _maxTaxSwap = (INITIAL_SUPPLY * 11) / 1000;

    // Uniswap router and pair addresses
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    bool private inSwap = false;

    // Event for updating max transaction amount
    event MaxTxAmountUpdated(uint256 _maxTxAmount);

    // Modifier to lock the swap during execution
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address[3] memory taxWalletAddresses) Ownable(_msgSender()) {
        // Create the token pair
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        // Initialize tax amounts
        taxes.toBuy = 3;
        taxes.toSell = 3;

        // Initialize tax wallets
        require(taxWalletAddresses.length == 3, "Invalid number of tax wallets");
        taxWallets = TaxWallets(
            payable(_msgSender()),         // taxWallet (default to _msgSender())
            payable(taxWalletAddresses[0]), // tax1Wallet
            payable(taxWalletAddresses[1]), // tax2Wallet
            payable(taxWalletAddresses[2])  // tax3Wallet
        );

        // Exclude specific addresses from fees
        accounts[address(this)].isExcludedFromFee = true;
        accounts[taxWallets.taxWallet].isExcludedFromFee = true;
        accounts[taxWallets.tax1Wallet].isExcludedFromFee = true;
        accounts[taxWallets.tax2Wallet].isExcludedFromFee = true;
        accounts[taxWallets.tax3Wallet].isExcludedFromFee = true;

        mint(owner(), INITIAL_SUPPLY);
    }

    // Function to set the buy tax percentage
    function setBuyTax(uint256 newTax) public onlyOwner {
        taxes.toBuy = newTax;
    }

    // Function to set the sell tax percentage
    function setSellTax(uint256 newTax) public onlyOwner {
        taxes.toSell = newTax;
    }

    // Function to set the tax percentages for different purposes
    function setTaxPercent(uint256[4] memory _taxShares) public onlyOwner {
        taxShares = _taxShares;
    }

    function name() public pure returns (string memory) {
        return unicode"Sparse Mint and Limited Liquidity Squeeze";
    }


    function symbol() public pure returns (string memory) {
        return unicode"SMALLS";
    }

    // Function to get the number of decimals of the token
    function decimals() public pure returns (uint8) {
        return 9;
    }

    function totalSupply() external view returns (uint256) {
        return _totalSupply;
    }

    // Function to get the token balance of an account
    function balanceOf(address account) public view override returns (uint256) {
        return accounts[account].balance;
    }

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

    // Function to get the allowance of a spender for an owner
    function allowance(
        address owner,
        address spender
    ) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    // Function to approve a spender to spend a specific amount of tokens
    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    // Function to increase the allowance of a spender
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

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

    // Function to transfer tokens from one address to another
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    // Private function to approve a spender for an owner
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from zero address");
        require(spender != address(0), "ERC20: approve to zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from 0 address");
        require(to != address(0), "ERC20: transfer to 0 address");
        require(amount > 0, "Transfer must be > than 0");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul(taxes.toBuy).div(100);

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !accounts[to].isExcludedFromFee
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul(taxes.toSell).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (taxAmount > 0) {
            accounts[address(this)].balance = accounts[address(this)]
                .balance
                .add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        accounts[from].balance = accounts[from].balance.sub(amount);
        accounts[to].balance = accounts[to].balance.add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    // Private function to get the minimum of two values
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    // Private function to swap tokens for ETH
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        // Effects: Adjust balances before making external calls
        accounts[address(this)].balance = accounts[address(this)].balance.sub(
            tokenAmount
        );

        // Declare the path array
        address[] memory path = new address[](2);

        path[0] = address(this); // The token address (this contract)
        path[1] = uniswapV2Router.WETH(); // WETH address (ETH in Uniswap)

        // Approve the Uniswap router to spend tokens
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // Get the expected amount of ETH for the token swap
        uint256[] memory amounts = uniswapV2Router.getAmountsOut(tokenAmount, path);

        // Calculate the minimum amount of ETH to accept with a slippage tolerance of 1%
        uint256 amountOutMin = amounts[1].mul(99).div(100); // 1% slippage tolerance

        // Interactions: External call to Uniswap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            amountOutMin, // accept slippage of 1%
            path, // the path array defined above
            address(this), // where to send the ETH
            block.timestamp // current time as deadline
        );

        // Effects: Update state after external interactions
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    // Function to remove transaction limits
    function removeLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletSize = _totalSupply;

        emit MaxTxAmountUpdated(_totalSupply);
    }

    function setLimits(uint256 maxTxAmount_, uint256 maxWalletSize_, uint256 taxSwapThreshold_, uint256 maxTaxSwap_) external onlyOwner {
        // Transaction limits
        _maxTxAmount = maxTxAmount_;
        _maxWalletSize = maxWalletSize_;

        // Swap thresholds for token to ETH conversion
        _taxSwapThreshold = taxSwapThreshold_;
        _maxTaxSwap = maxTaxSwap_;
    }

    // Private function to send collected ETH to tax wallets
    function sendETHToFee(uint256 amount) private {
        taxWallets.taxWallet.transfer((amount * taxShares[0]) / 100);
        taxWallets.tax1Wallet.transfer((amount * taxShares[1]) / 100);
        taxWallets.tax2Wallet.transfer((amount * taxShares[2]) / 100);
        taxWallets.tax3Wallet.transfer((amount * taxShares[3]) / 100);
    }

    function getUniswapV2Pair() external view returns (address) {
        require(uniswapV2Pair != address(0), "UniswapV2 pair has not been created yet.");

        return uniswapV2Pair;
    }

    // Function to receive ETH
    receive() external payable {}

    // Function for the owner to manually swap tokens for ETH
    function manualSwap() external onlyOwner {
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    // Function to manually send ETH to tax wallets
    // naming this function withdraw will prevent scanner errors regarding LOCKED ETH
    function withdraw() external onlyOwner {
        uint256 ethBalance = address(this).balance;
        require(ethBalance > 0, "No ETH to withdraw");

        sendETHToFee(ethBalance);
    }

    // Update the token liquidity threshold for triggering liquidity provision
    function updateLiquidityThreshold(uint256 newAmount) external onlyOwner {
        // Ensure the new threshold does not exceed 1% of the total token supply
        uint256 maxAllowed = _totalSupply.mul(1).div(100);
        require(newAmount <= maxAllowed, "Swap < or = to 1% of tokens");
        _taxSwapThreshold = newAmount * 10 ** decimals();
    }

    function mint(address to, uint256 amount) public onlyOwner {
        require(to != address(0), "Cannot mint to 0 address");
        require(_totalSupply.add(amount) <= MAX_SUPPLY, "Cannot mint in excess of MAX_SUPPLY");

        _totalSupply = _totalSupply.add(amount);

        accounts[to].balance = accounts[to].balance.add(amount);

        emit Transfer(address(0), to, amount);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the value of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves a `value` amount of tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 value) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
     * caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

File 5 of 7 : IUniswapV2Factory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

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

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
    external
    payable
    returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    )
    external
    view
    returns (uint[] memory amounts);
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multi overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address[3]","name":"taxWalletAddresses","type":"address[3]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_preventSwapBefore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getUniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize_","type":"uint256"},{"internalType":"uint256","name":"taxSwapThreshold_","type":"uint256"},{"internalType":"uint256","name":"maxTaxSwap_","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[4]","name":"_taxShares","type":"uint256[4]"}],"name":"setTaxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"taxShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateLiquidityThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101006040526019608081815260a082905260c082905260e09190915261002a90600790600461064c565b506003600d556000600e55606461004b680ce82f714294f2780060026106ba565b61005591906106d1565b601055606461006e680ce82f714294f2780060026106ba565b61007891906106d1565b6011556103e8610092680ce82f714294f2780060026106ba565b61009c91906106d1565b6012556103e86100b6680ce82f714294f27800600b6106ba565b6100c091906106d1565b6013556015805460ff60a01b191690553480156100dc57600080fd5b506040516126ec3803806126ec8339810160408190526100fb91610725565b338061012257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61012b81610405565b50601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b491906107a9565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023a91906107a9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab91906107a9565b601580546001600160a01b0319166001600160a01b03929092169190911790556003600b819055600c5560405180608001604052806102ee61040160201b60201c565b6001600160a01b039081168252835181166020808401919091528085015182166040808501919091528086015183166060948501528451600380546001600160a01b031990811692861692909217815586840151600480548416918716919091178155878401516005805485169188169190911781559790960151600680549093169086161782553060009081526001948590528381206002908101805460ff19908116881790915592548716825284822081018054841687179055965486168152838120870180548316861790559654851687528287208601805482168517905590548416865290852090930180549093161790915590546103fb9116680ce82f714294f27800610455565b506107de565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61045d6105b5565b6001600160a01b0382166104b35760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74206d696e7420746f2030206164647265737300000000000000006044820152606401610119565b600f54683635c9adc5dea00000906104cb90836105e4565b11156105255760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74206d696e7420696e20657863657373206f66204d41585f535550604482015262504c5960e81b6064820152608401610119565b600f5461053290826105e4565b600f556001600160a01b03821660009081526001602052604090205461055890826105e4565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105a99085815260200190565b60405180910390a35050565b6000546001600160a01b031633146105e25760405163118cdaa760e01b8152336004820152602401610119565b565b6000806105f183856107cb565b9050838110156106435760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610119565b90505b92915050565b826004810192821561067f579160200282015b8281111561067f578251829060ff1690559160200191906001019061065f565b5061068b92915061068f565b5090565b5b8082111561068b5760008155600101610690565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610646576106466106a4565b6000826106ee57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461072057600080fd5b919050565b60006060828403121561073757600080fd5b82601f83011261074657600080fd5b604051606081016001600160401b0381118282101715610768576107686106f3565b60405280606084018581111561077d57600080fd5b845b8181101561079e5761079081610709565b83526020928301920161077f565b509195945050505050565b6000602082840312156107bb57600080fd5b6107c482610709565b9392505050565b80820180821115610646576106466106a4565b611eff806107ed6000396000f3fe6080604052600436106102025760003560e01c8063751039fc1161011d578063a457c2d7116100b0578063c81d92461161007f578063dd62ed3e11610064578063dd62ed3e146105c3578063f2fde38b14610609578063fac8e8351461062957600080fd5b8063c81d92461461058d578063dc1052e2146105a357600080fd5b8063a457c2d714610517578063a9059cbb14610537578063baf6778214610557578063bf474bed1461057757600080fd5b80638f9a55c0116100ec5780638f9a55c01461047b578063906931e21461049157806395d89b41146104b1578063a075b7c7146104f757600080fd5b8063751039fc146104125780637d1db4a5146104275780638cd09d501461043d5780638da5cb5b1461045d57600080fd5b8063313ce5671161019557806340c10f191161016457806340c10f191461039257806351bc3c85146103b257806370a08231146103c7578063715018a6146103fd57600080fd5b8063313ce5671461032257806332cb6b0c1461033e578063395093511461035b5780633ccfd60b1461037b57600080fd5b80631abfa629116101d15780631abfa629146102a257806323b872dd146102cf57806327b1a8e9146102ef5780632ff2e9dc1461030557600080fd5b806306fdde031461020e578063095ea7b3146102395780630faee56f1461026957806318160ddd1461028d57600080fd5b3661020957005b600080fd5b34801561021a57600080fd5b50610223610649565b60405161023091906118b2565b60405180910390f35b34801561024557600080fd5b50610259610254366004611915565b610669565b6040519015158152602001610230565b34801561027557600080fd5b5061027f60135481565b604051908152602001610230565b34801561029957600080fd5b50600f5461027f565b3480156102ae57600080fd5b506102b7610680565b6040516001600160a01b039091168152602001610230565b3480156102db57600080fd5b506102596102ea366004611941565b610716565b3480156102fb57600080fd5b5061027f600e5481565b34801561031157600080fd5b5061027f680ce82f714294f2780081565b34801561032e57600080fd5b5060405160098152602001610230565b34801561034a57600080fd5b5061027f683635c9adc5dea0000081565b34801561036757600080fd5b50610259610376366004611915565b61077f565b34801561038757600080fd5b506103906107b5565b005b34801561039e57600080fd5b506103906103ad366004611915565b610817565b3480156103be57600080fd5b50610390610991565b3480156103d357600080fd5b5061027f6103e2366004611982565b6001600160a01b031660009081526001602052604090205490565b34801561040957600080fd5b506103906109cc565b34801561041e57600080fd5b506103906109e0565b34801561043357600080fd5b5061027f60105481565b34801561044957600080fd5b5061039061045836600461199f565b610a2a565b34801561046957600080fd5b506000546001600160a01b03166102b7565b34801561048757600080fd5b5061027f60115481565b34801561049d57600080fd5b5061027f6104ac36600461199f565b610a37565b3480156104bd57600080fd5b5060408051808201909152600681527f534d414c4c5300000000000000000000000000000000000000000000000000006020820152610223565b34801561050357600080fd5b506103906105123660046119b8565b610a4e565b34801561052357600080fd5b50610259610532366004611915565b610a6a565b34801561054357600080fd5b50610259610552366004611915565b610ab9565b34801561056357600080fd5b50610390610572366004611a4a565b610ac6565b34801561058357600080fd5b5061027f60125481565b34801561059957600080fd5b5061027f600d5481565b3480156105af57600080fd5b506103906105be36600461199f565b610adb565b3480156105cf57600080fd5b5061027f6105de366004611ac8565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561061557600080fd5b50610390610624366004611982565b610ae8565b34801561063557600080fd5b5061039061064436600461199f565b610b3c565b6060604051806060016040528060298152602001611e7c60299139905090565b6000610676338484610bd6565b5060015b92915050565b6015546000906001600160a01b03166107065760405162461bcd60e51b815260206004820152602860248201527f556e69737761705632207061697220686173206e6f74206265656e206372656160448201527f746564207965742e00000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506015546001600160a01b031690565b6000610723848484610ce3565b610775843361077085604051806060016040528060288152602001611e54602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611184565b610bd6565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161067691859061077090866111be565b6107bd611224565b478061080b5760405162461bcd60e51b815260206004820152601260248201527f4e6f2045544820746f207769746864726177000000000000000000000000000060448201526064016106fd565b6108148161126a565b50565b61081f611224565b6001600160a01b0382166108755760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74206d696e7420746f20302061646472657373000000000000000060448201526064016106fd565b600f54683635c9adc5dea000009061088d90836111be565b11156109015760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74206d696e7420696e20657863657373206f66204d41585f53555060448201527f504c59000000000000000000000000000000000000000000000000000000000060648201526084016106fd565b600f5461090e90826111be565b600f556001600160a01b03821660009081526001602052604090205461093490826111be565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109859085815260200190565b60405180910390a35050565b610999611224565b3060009081526001602052604090205480156109b8576109b8816113b9565b4780156109c8576109c88161126a565b5050565b6109d4611224565b6109de60006116b8565b565b6109e8611224565b600f54601081905560118190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b610a32611224565b600c55565b60078160048110610a4757600080fd5b0154905081565b610a56611224565b601093909355601191909155601255601355565b6000610676338461077085604051806060016040528060258152602001611ea5602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611184565b6000610676338484610ce3565b610ace611224565b6109c8600782600461185f565b610ae3611224565b600b55565b610af0611224565b6001600160a01b038116610b33576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024016106fd565b610814816116b8565b610b44611224565b6000610b676064610b616001600f5461172090919063ffffffff16565b90611798565b905080821115610bb95760405162461bcd60e51b815260206004820152601b60248201527f53776170203c206f72203d20746f203125206f6620746f6b656e73000000000060448201526064016106fd565b610bc56009600a611c17565b610bcf9083611c26565b6012555050565b6001600160a01b038316610c2c5760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f206164647265737360448201526064016106fd565b6001600160a01b038216610c825760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f2061646472657373000060448201526064016106fd565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d395760405162461bcd60e51b815260206004820152601e60248201527f45524332303a207472616e736665722066726f6d20302061646472657373000060448201526064016106fd565b6001600160a01b038216610d8f5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207472616e7366657220746f203020616464726573730000000060448201526064016106fd565b60008111610ddf5760405162461bcd60e51b815260206004820152601960248201527f5472616e73666572206d757374206265203e207468616e20300000000000000060448201526064016106fd565b600080546001600160a01b03858116911614801590610e0c57506000546001600160a01b03848116911614155b1561104157600b54610e2690606490610b61908590611720565b6015549091506001600160a01b038581169116148015610e5457506014546001600160a01b03848116911614155b8015610e7c57506001600160a01b03831660009081526001602052604090206002015460ff16155b15610f6457601054821115610ed35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106fd565b60115482610ef6856001600160a01b031660009081526001602052604090205490565b610f009190611c3d565b1115610f4e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106fd565b600e8054906000610f5e83611c50565b91905055505b6015546001600160a01b038481169116148015610f8a57506001600160a01b0384163014155b15610fa757600c54610fa490606490610b61908590611720565b90505b3060009081526001602052604090205460155474010000000000000000000000000000000000000000900460ff16158015610fef57506015546001600160a01b038581169116145b8015610ffc575060125481115b801561100b5750600d54600e54115b1561103f5761102d61102884611023846013546117da565b6117da565b6113b9565b47801561103d5761103d4761126a565b505b505b80156110bb573060009081526001602052604090205461106190826111be565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b29085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110de90836117ef565b6001600160a01b03851660009081526001602052604090205561112361110483836117ef565b6001600160a01b038516600090815260016020526040902054906111be565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116d85856117ef565b60405190815260200160405180910390a350505050565b600081848411156111a85760405162461bcd60e51b81526004016106fd91906118b2565b5060006111b58486611c6a565b95945050505050565b6000806111cb8385611c3d565b90508381101561121d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106fd565b9392505050565b6000546001600160a01b031633146109de576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016106fd565b6003546001600160a01b03166108fc606460076000015461128b9085611c26565b6112959190611cac565b6040518115909202916000818181858888f193505050501580156112bd573d6000803e3d6000fd5b506004546001600160a01b03166108fc60646007600101546112df9085611c26565b6112e99190611cac565b6040518115909202916000818181858888f19350505050158015611311573d6000803e3d6000fd5b506005546001600160a01b03166108fc60646007600201546113339085611c26565b61133d9190611cac565b6040518115909202916000818181858888f19350505050158015611365573d6000803e3d6000fd5b506006546001600160a01b03166108fc60646007600301546113879085611c26565b6113919190611cac565b6040518115909202916000818181858888f193505050501580156109c8573d6000803e3d6000fd5b601580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790553060009081526001602052604090205461141290826117ef565b306000908152600160205260408082209290925581516002808252606082019093529091816020016020820280368337019050509050308160008151811061145c5761145c611c7d565b6001600160a01b03928316602091820292909201810191909152601454604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156114ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f29190611ce7565b8160018151811061150557611505611c7d565b6001600160a01b03928316602091820292909201015260145461152b9130911684610bd6565b6014546040517fd06ca61f0000000000000000000000000000000000000000000000000000000081526000916001600160a01b03169063d06ca61f906115779086908690600401611d49565b600060405180830381865afa158015611594573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115bc9190810190611d6a565b905060006115f36064610b616063856001815181106115dd576115dd611c7d565b602002602001015161172090919063ffffffff16565b6014546040517f791ac9470000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063791ac947906116459087908590889030904290600401611e17565b600060405180830381600087803b15801561165f57600080fd5b505af1158015611673573d6000803e3d6000fd5b504792505081159050611689576116898161126a565b5050601580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000826000036117325750600061067a565b600061173e8385611c26565b90508261174b8583611cac565b1461121d5760405162461bcd60e51b815260206004820152601860248201527f536166654d6174683a206d756c7469206f766572666c6f77000000000000000060448201526064016106fd565b600061121d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611831565b60008183116117e9578261121d565b50919050565b600061121d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611184565b600081836118525760405162461bcd60e51b81526004016106fd91906118b2565b5060006111b58486611cac565b826004810192821561188d579160200282015b8281111561188d578251825591602001919060010190611872565b5061189992915061189d565b5090565b5b80821115611899576000815560010161189e565b602081526000825180602084015260005b818110156118e057602081860181015160408684010152016118c3565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461081457600080fd5b6000806040838503121561192857600080fd5b823561193381611900565b946020939093013593505050565b60008060006060848603121561195657600080fd5b833561196181611900565b9250602084013561197181611900565b929592945050506040919091013590565b60006020828403121561199457600080fd5b813561121d81611900565b6000602082840312156119b157600080fd5b5035919050565b600080600080608085870312156119ce57600080fd5b5050823594602084013594506040840135936060013592509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4257611a426119ea565b604052919050565b600060808284031215611a5c57600080fd5b82601f830112611a6b57600080fd5b6040516080810167ffffffffffffffff81118282101715611a8e57611a8e6119ea565b604052806080840185811115611aa357600080fd5b845b81811015611abd578035835260209283019201611aa5565b509195945050505050565b60008060408385031215611adb57600080fd5b8235611ae681611900565b91506020830135611af681611900565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001815b6001841115611b6b57808504811115611b4f57611b4f611b01565b6001841615611b5d57908102905b60019390931c928002611b34565b935093915050565b600082611b825750600161067a565b81611b8f5750600061067a565b8160018114611ba55760028114611baf57611bcb565b600191505061067a565b60ff841115611bc057611bc0611b01565b50506001821b61067a565b5060208310610133831016604e8410600b8410161715611bee575081810a61067a565b611bfb6000198484611b30565b8060001904821115611c0f57611c0f611b01565b029392505050565b600061121d60ff841683611b73565b808202811582820484141761067a5761067a611b01565b8082018082111561067a5761067a611b01565b60006000198203611c6357611c63611b01565b5060010190565b8181038181111561067a5761067a611b01565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082611ce2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215611cf957600080fd5b815161121d81611900565b600081518084526020840193506020830160005b82811015611d3f5781516001600160a01b0316865260209586019590910190600101611d18565b5093949350505050565b828152604060208201526000611d626040830184611d04565b949350505050565b600060208284031215611d7c57600080fd5b815167ffffffffffffffff811115611d9357600080fd5b8201601f81018413611da457600080fd5b805167ffffffffffffffff811115611dbe57611dbe6119ea565b8060051b611dce60208201611a19565b91825260208184018101929081019087841115611dea57600080fd5b6020850194505b83851015611e0c578451825260209485019490910190611df1565b979650505050505050565b85815284602082015260a060408201526000611e3660a0830186611d04565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365537061727365204d696e7420616e64204c696d69746564204c69717569646974792053717565657a6545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f76977f8d9e2804c9029bb6f4b8c494f314722b0cb1a80ca894a1dc47c5107ab64736f6c634300081a0033000000000000000000000000bc40813487c9d6318927bfbbac09d83f294a349e0000000000000000000000009d62afbb441c3862b309a6aba93171bc18349973000000000000000000000000f9e43f461dd77d7706a15c190e3c10870ddd0467

Deployed Bytecode

0x6080604052600436106102025760003560e01c8063751039fc1161011d578063a457c2d7116100b0578063c81d92461161007f578063dd62ed3e11610064578063dd62ed3e146105c3578063f2fde38b14610609578063fac8e8351461062957600080fd5b8063c81d92461461058d578063dc1052e2146105a357600080fd5b8063a457c2d714610517578063a9059cbb14610537578063baf6778214610557578063bf474bed1461057757600080fd5b80638f9a55c0116100ec5780638f9a55c01461047b578063906931e21461049157806395d89b41146104b1578063a075b7c7146104f757600080fd5b8063751039fc146104125780637d1db4a5146104275780638cd09d501461043d5780638da5cb5b1461045d57600080fd5b8063313ce5671161019557806340c10f191161016457806340c10f191461039257806351bc3c85146103b257806370a08231146103c7578063715018a6146103fd57600080fd5b8063313ce5671461032257806332cb6b0c1461033e578063395093511461035b5780633ccfd60b1461037b57600080fd5b80631abfa629116101d15780631abfa629146102a257806323b872dd146102cf57806327b1a8e9146102ef5780632ff2e9dc1461030557600080fd5b806306fdde031461020e578063095ea7b3146102395780630faee56f1461026957806318160ddd1461028d57600080fd5b3661020957005b600080fd5b34801561021a57600080fd5b50610223610649565b60405161023091906118b2565b60405180910390f35b34801561024557600080fd5b50610259610254366004611915565b610669565b6040519015158152602001610230565b34801561027557600080fd5b5061027f60135481565b604051908152602001610230565b34801561029957600080fd5b50600f5461027f565b3480156102ae57600080fd5b506102b7610680565b6040516001600160a01b039091168152602001610230565b3480156102db57600080fd5b506102596102ea366004611941565b610716565b3480156102fb57600080fd5b5061027f600e5481565b34801561031157600080fd5b5061027f680ce82f714294f2780081565b34801561032e57600080fd5b5060405160098152602001610230565b34801561034a57600080fd5b5061027f683635c9adc5dea0000081565b34801561036757600080fd5b50610259610376366004611915565b61077f565b34801561038757600080fd5b506103906107b5565b005b34801561039e57600080fd5b506103906103ad366004611915565b610817565b3480156103be57600080fd5b50610390610991565b3480156103d357600080fd5b5061027f6103e2366004611982565b6001600160a01b031660009081526001602052604090205490565b34801561040957600080fd5b506103906109cc565b34801561041e57600080fd5b506103906109e0565b34801561043357600080fd5b5061027f60105481565b34801561044957600080fd5b5061039061045836600461199f565b610a2a565b34801561046957600080fd5b506000546001600160a01b03166102b7565b34801561048757600080fd5b5061027f60115481565b34801561049d57600080fd5b5061027f6104ac36600461199f565b610a37565b3480156104bd57600080fd5b5060408051808201909152600681527f534d414c4c5300000000000000000000000000000000000000000000000000006020820152610223565b34801561050357600080fd5b506103906105123660046119b8565b610a4e565b34801561052357600080fd5b50610259610532366004611915565b610a6a565b34801561054357600080fd5b50610259610552366004611915565b610ab9565b34801561056357600080fd5b50610390610572366004611a4a565b610ac6565b34801561058357600080fd5b5061027f60125481565b34801561059957600080fd5b5061027f600d5481565b3480156105af57600080fd5b506103906105be36600461199f565b610adb565b3480156105cf57600080fd5b5061027f6105de366004611ac8565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561061557600080fd5b50610390610624366004611982565b610ae8565b34801561063557600080fd5b5061039061064436600461199f565b610b3c565b6060604051806060016040528060298152602001611e7c60299139905090565b6000610676338484610bd6565b5060015b92915050565b6015546000906001600160a01b03166107065760405162461bcd60e51b815260206004820152602860248201527f556e69737761705632207061697220686173206e6f74206265656e206372656160448201527f746564207965742e00000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506015546001600160a01b031690565b6000610723848484610ce3565b610775843361077085604051806060016040528060288152602001611e54602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611184565b610bd6565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161067691859061077090866111be565b6107bd611224565b478061080b5760405162461bcd60e51b815260206004820152601260248201527f4e6f2045544820746f207769746864726177000000000000000000000000000060448201526064016106fd565b6108148161126a565b50565b61081f611224565b6001600160a01b0382166108755760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74206d696e7420746f20302061646472657373000000000000000060448201526064016106fd565b600f54683635c9adc5dea000009061088d90836111be565b11156109015760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74206d696e7420696e20657863657373206f66204d41585f53555060448201527f504c59000000000000000000000000000000000000000000000000000000000060648201526084016106fd565b600f5461090e90826111be565b600f556001600160a01b03821660009081526001602052604090205461093490826111be565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109859085815260200190565b60405180910390a35050565b610999611224565b3060009081526001602052604090205480156109b8576109b8816113b9565b4780156109c8576109c88161126a565b5050565b6109d4611224565b6109de60006116b8565b565b6109e8611224565b600f54601081905560118190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b610a32611224565b600c55565b60078160048110610a4757600080fd5b0154905081565b610a56611224565b601093909355601191909155601255601355565b6000610676338461077085604051806060016040528060258152602001611ea5602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611184565b6000610676338484610ce3565b610ace611224565b6109c8600782600461185f565b610ae3611224565b600b55565b610af0611224565b6001600160a01b038116610b33576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024016106fd565b610814816116b8565b610b44611224565b6000610b676064610b616001600f5461172090919063ffffffff16565b90611798565b905080821115610bb95760405162461bcd60e51b815260206004820152601b60248201527f53776170203c206f72203d20746f203125206f6620746f6b656e73000000000060448201526064016106fd565b610bc56009600a611c17565b610bcf9083611c26565b6012555050565b6001600160a01b038316610c2c5760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f206164647265737360448201526064016106fd565b6001600160a01b038216610c825760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f2061646472657373000060448201526064016106fd565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d395760405162461bcd60e51b815260206004820152601e60248201527f45524332303a207472616e736665722066726f6d20302061646472657373000060448201526064016106fd565b6001600160a01b038216610d8f5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207472616e7366657220746f203020616464726573730000000060448201526064016106fd565b60008111610ddf5760405162461bcd60e51b815260206004820152601960248201527f5472616e73666572206d757374206265203e207468616e20300000000000000060448201526064016106fd565b600080546001600160a01b03858116911614801590610e0c57506000546001600160a01b03848116911614155b1561104157600b54610e2690606490610b61908590611720565b6015549091506001600160a01b038581169116148015610e5457506014546001600160a01b03848116911614155b8015610e7c57506001600160a01b03831660009081526001602052604090206002015460ff16155b15610f6457601054821115610ed35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106fd565b60115482610ef6856001600160a01b031660009081526001602052604090205490565b610f009190611c3d565b1115610f4e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106fd565b600e8054906000610f5e83611c50565b91905055505b6015546001600160a01b038481169116148015610f8a57506001600160a01b0384163014155b15610fa757600c54610fa490606490610b61908590611720565b90505b3060009081526001602052604090205460155474010000000000000000000000000000000000000000900460ff16158015610fef57506015546001600160a01b038581169116145b8015610ffc575060125481115b801561100b5750600d54600e54115b1561103f5761102d61102884611023846013546117da565b6117da565b6113b9565b47801561103d5761103d4761126a565b505b505b80156110bb573060009081526001602052604090205461106190826111be565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b29085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110de90836117ef565b6001600160a01b03851660009081526001602052604090205561112361110483836117ef565b6001600160a01b038516600090815260016020526040902054906111be565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116d85856117ef565b60405190815260200160405180910390a350505050565b600081848411156111a85760405162461bcd60e51b81526004016106fd91906118b2565b5060006111b58486611c6a565b95945050505050565b6000806111cb8385611c3d565b90508381101561121d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106fd565b9392505050565b6000546001600160a01b031633146109de576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016106fd565b6003546001600160a01b03166108fc606460076000015461128b9085611c26565b6112959190611cac565b6040518115909202916000818181858888f193505050501580156112bd573d6000803e3d6000fd5b506004546001600160a01b03166108fc60646007600101546112df9085611c26565b6112e99190611cac565b6040518115909202916000818181858888f19350505050158015611311573d6000803e3d6000fd5b506005546001600160a01b03166108fc60646007600201546113339085611c26565b61133d9190611cac565b6040518115909202916000818181858888f19350505050158015611365573d6000803e3d6000fd5b506006546001600160a01b03166108fc60646007600301546113879085611c26565b6113919190611cac565b6040518115909202916000818181858888f193505050501580156109c8573d6000803e3d6000fd5b601580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790553060009081526001602052604090205461141290826117ef565b306000908152600160205260408082209290925581516002808252606082019093529091816020016020820280368337019050509050308160008151811061145c5761145c611c7d565b6001600160a01b03928316602091820292909201810191909152601454604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156114ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f29190611ce7565b8160018151811061150557611505611c7d565b6001600160a01b03928316602091820292909201015260145461152b9130911684610bd6565b6014546040517fd06ca61f0000000000000000000000000000000000000000000000000000000081526000916001600160a01b03169063d06ca61f906115779086908690600401611d49565b600060405180830381865afa158015611594573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115bc9190810190611d6a565b905060006115f36064610b616063856001815181106115dd576115dd611c7d565b602002602001015161172090919063ffffffff16565b6014546040517f791ac9470000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063791ac947906116459087908590889030904290600401611e17565b600060405180830381600087803b15801561165f57600080fd5b505af1158015611673573d6000803e3d6000fd5b504792505081159050611689576116898161126a565b5050601580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000826000036117325750600061067a565b600061173e8385611c26565b90508261174b8583611cac565b1461121d5760405162461bcd60e51b815260206004820152601860248201527f536166654d6174683a206d756c7469206f766572666c6f77000000000000000060448201526064016106fd565b600061121d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611831565b60008183116117e9578261121d565b50919050565b600061121d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611184565b600081836118525760405162461bcd60e51b81526004016106fd91906118b2565b5060006111b58486611cac565b826004810192821561188d579160200282015b8281111561188d578251825591602001919060010190611872565b5061189992915061189d565b5090565b5b80821115611899576000815560010161189e565b602081526000825180602084015260005b818110156118e057602081860181015160408684010152016118c3565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461081457600080fd5b6000806040838503121561192857600080fd5b823561193381611900565b946020939093013593505050565b60008060006060848603121561195657600080fd5b833561196181611900565b9250602084013561197181611900565b929592945050506040919091013590565b60006020828403121561199457600080fd5b813561121d81611900565b6000602082840312156119b157600080fd5b5035919050565b600080600080608085870312156119ce57600080fd5b5050823594602084013594506040840135936060013592509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4257611a426119ea565b604052919050565b600060808284031215611a5c57600080fd5b82601f830112611a6b57600080fd5b6040516080810167ffffffffffffffff81118282101715611a8e57611a8e6119ea565b604052806080840185811115611aa357600080fd5b845b81811015611abd578035835260209283019201611aa5565b509195945050505050565b60008060408385031215611adb57600080fd5b8235611ae681611900565b91506020830135611af681611900565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001815b6001841115611b6b57808504811115611b4f57611b4f611b01565b6001841615611b5d57908102905b60019390931c928002611b34565b935093915050565b600082611b825750600161067a565b81611b8f5750600061067a565b8160018114611ba55760028114611baf57611bcb565b600191505061067a565b60ff841115611bc057611bc0611b01565b50506001821b61067a565b5060208310610133831016604e8410600b8410161715611bee575081810a61067a565b611bfb6000198484611b30565b8060001904821115611c0f57611c0f611b01565b029392505050565b600061121d60ff841683611b73565b808202811582820484141761067a5761067a611b01565b8082018082111561067a5761067a611b01565b60006000198203611c6357611c63611b01565b5060010190565b8181038181111561067a5761067a611b01565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082611ce2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215611cf957600080fd5b815161121d81611900565b600081518084526020840193506020830160005b82811015611d3f5781516001600160a01b0316865260209586019590910190600101611d18565b5093949350505050565b828152604060208201526000611d626040830184611d04565b949350505050565b600060208284031215611d7c57600080fd5b815167ffffffffffffffff811115611d9357600080fd5b8201601f81018413611da457600080fd5b805167ffffffffffffffff811115611dbe57611dbe6119ea565b8060051b611dce60208201611a19565b91825260208184018101929081019087841115611dea57600080fd5b6020850194505b83851015611e0c578451825260209485019490910190611df1565b979650505050505050565b85815284602082015260a060408201526000611e3660a0830186611d04565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365537061727365204d696e7420616e64204c696d69746564204c69717569646974792053717565657a6545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f76977f8d9e2804c9029bb6f4b8c494f314722b0cb1a80ca894a1dc47c5107ab64736f6c634300081a0033

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

000000000000000000000000bc40813487c9d6318927bfbbac09d83f294a349e0000000000000000000000009d62afbb441c3862b309a6aba93171bc18349973000000000000000000000000f9e43f461dd77d7706a15c190e3c10870ddd0467

-----Decoded View---------------
Arg [0] : taxWalletAddresses (address[3]): 0xbc40813487c9d6318927BFbbAC09d83F294a349E,0x9d62Afbb441c3862B309A6ABA93171BC18349973,0xf9e43F461DD77d7706A15C190E3c10870DDD0467

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000bc40813487c9d6318927bfbbac09d83f294a349e
Arg [1] : 0000000000000000000000009d62afbb441c3862b309a6aba93171bc18349973
Arg [2] : 000000000000000000000000f9e43f461dd77d7706a15c190e3c10870ddd0467


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.