ETH Price: $3,510.33 (+2.61%)
Gas: 5 Gwei

Token

ForEverSummer (FES)
 

Overview

Max Total Supply

1,000,000,000 FES

Holders

92

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,790.771667138100038052 FES

Value
$0.00
0x840780121c35ff85243d2af8023b2e3b0b5c4165
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:
FES

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : FOREVERSUMMER.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.19;
/**
ForEverSummer

Bringing the heatwave to the DeFi summer ahead ☀️ 

Share Link: https://t.me/foreversummererc

https://www.foreversummerofficial.com

#EverMoon Fork
*/

import {IERC20} from "contracts/IERC20.sol";
import {Ownable} from "contracts/Ownable.sol";

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

contract FES is IERC20, Ownable {
    /* -------------------------------------------------------------------------- */
    /*                                   events                                   */
    /* -------------------------------------------------------------------------- */
    event Reflect(uint256 amountReflected, uint256 newTotalProportion);

    /* -------------------------------------------------------------------------- */
    /*                                  constants                                 */
    /* -------------------------------------------------------------------------- */
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    uint256 constant MAX_FEE = 10;

    /* -------------------------------------------------------------------------- */
    /*                                   states                                   */
    /* -------------------------------------------------------------------------- */
    IUniswapV2Router02 public constant UNISWAP_V2_ROUTER =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable UNISWAP_V2_PAIR;

    struct Fee {
        uint8 reflection;
        uint8 marketing;
        uint8 lp;
        uint8 buyback;
        uint8 burn;
        uint128 total;
    }

    string _name = "ForEverSummer";
    string _symbol = "FES";

    uint256 _totalSupply = 1_000_000_000 ether;
    uint256 public _maxTxAmount = _totalSupply * 2 / 100;

    /* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */
    mapping(address => uint256) public _rOwned;
    uint256 public _totalProportion = _totalSupply;

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

    bool public limitsEnabled = true;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;

    Fee public buyFee = Fee({reflection: 1, marketing: 1, lp: 1, buyback: 1, burn: 1, total: 5});
    Fee public sellFee = Fee({reflection: 1, marketing: 1, lp: 1, buyback: 1, burn: 1, total: 5});

    address private marketingFeeReceiver;
    address private lpFeeReceiver;
    address private buybackFeeReceiver;

    bool public claimingFees = true;
    uint256 public swapThreshold = (_totalSupply * 2) / 1000;
    bool inSwap;
    mapping(address => bool) public blacklists;

    /* -------------------------------------------------------------------------- */
    /*                                  modifiers                                 */
    /* -------------------------------------------------------------------------- */
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    /* -------------------------------------------------------------------------- */
    /*                                 constructor                                */
    /* -------------------------------------------------------------------------- */
    constructor() {
        // create uniswap pair
        address _uniswapPair =
            IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH());
        UNISWAP_V2_PAIR = _uniswapPair;

        _allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max;
        _allowances[address(this)][tx.origin] = type(uint256).max;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(UNISWAP_V2_ROUTER)] = true;
        isTxLimitExempt[_uniswapPair] = true;
        isTxLimitExempt[tx.origin] = true;
        isFeeExempt[tx.origin] = true;

        marketingFeeReceiver = 0xE3EcDFeFFCf28e09adc27a899c7Cf61dC95c4D12;
        lpFeeReceiver = 0xa06025A0C6567Ad89A1A093fdd0a3828E924b138;
        buybackFeeReceiver = 0xd53194F2766c32f143A56A0BaEe6945522dCe4b6;

        _rOwned[tx.origin] = _totalSupply;
        emit Transfer(address(0), tx.origin, _totalSupply);
    }

    receive() external payable {}

    /* -------------------------------------------------------------------------- */
    /*                                    ERC20                                   */
    /* -------------------------------------------------------------------------- */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(_allowances[sender][msg.sender] >= amount, "ERC20: insufficient allowance");
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    /* -------------------------------------------------------------------------- */
    /*                                    views                                   */
    /* -------------------------------------------------------------------------- */
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function decimals() external pure returns (uint8) {
        return 18;
    }

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

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

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

    function allowance(address holder, address spender) external view override returns (uint256) {
        return _allowances[holder][spender];
    }

    function tokensToProportion(uint256 tokens) public view returns (uint256) {
        return tokens * _totalProportion / _totalSupply;
    }

    function tokenFromReflection(uint256 proportion) public view returns (uint256) {
        return proportion * _totalSupply / _totalProportion;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    /* -------------------------------------------------------------------------- */
    /*                                   owners                                   */
    /* -------------------------------------------------------------------------- */
    function clearStuckBalance() external onlyOwner {
        (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
        require(success);
    }

    function clearStuckToken() external onlyOwner {
        _transferFrom(address(this), msg.sender, balanceOf(address(this)));
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        claimingFees = _enabled;
        swapThreshold = _amount;
    }

    function changeFees(
        uint8 reflectionFeeBuy,
        uint8 marketingFeeBuy,
        uint8 lpFeeBuy,
        uint8 buybackFeeBuy,
        uint8 burnFeeBuy,
        uint8 reflectionFeeSell,
        uint8 marketingFeeSell,
        uint8 lpFeeSell,
        uint8 buybackFeeSell,
        uint8 burnFeeSell
    ) external onlyOwner {
        uint128 __totalBuyFee = reflectionFeeBuy + marketingFeeBuy + lpFeeBuy + buybackFeeBuy + burnFeeBuy;
        uint128 __totalSellFee = reflectionFeeSell + marketingFeeSell + lpFeeSell + buybackFeeSell + burnFeeSell;

        require(__totalBuyFee <= MAX_FEE, "Buy fees too high");
        require(__totalSellFee <= MAX_FEE, "Sell fees too high");

        buyFee = Fee({
            reflection: reflectionFeeBuy,
            marketing: reflectionFeeBuy,
            lp: reflectionFeeBuy,
            buyback: reflectionFeeBuy,
            burn: burnFeeBuy,
            total: __totalBuyFee
        });

        sellFee = Fee({
            reflection: reflectionFeeSell,
            marketing: reflectionFeeSell,
            lp: reflectionFeeSell,
            buyback: reflectionFeeSell,
            burn: burnFeeSell,
            total: __totalSellFee
        });
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFeeReceivers(address m_, address lp_, address b_) external onlyOwner {
        marketingFeeReceiver = m_;
        lpFeeReceiver = lp_;
        buybackFeeReceiver = b_;
    }

    function setMaxTxBasisPoint(uint256 p_) external onlyOwner {
        _maxTxAmount = _totalSupply * p_ / 10000;
    }

    function setLimitsEnabled(bool e_) external onlyOwner {
        limitsEnabled = e_;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    /* -------------------------------------------------------------------------- */
    /*                                   private                                  */
    /* -------------------------------------------------------------------------- */
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!blacklists[recipient] && !blacklists[sender], "Blacklisted");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (limitsEnabled && !isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        if (_shouldSwapBack()) {
            _swapBack();
        }

        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;

        uint256 proportionReceived = _shouldTakeFee(sender, recipient)
            ? _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, proportionAmount)
            : proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionReceived;

        emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _takeFeeInProportions(bool buying, address sender, uint256 proportionAmount) internal returns (uint256) {
        Fee memory __buyFee = buyFee;
        Fee memory __sellFee = sellFee;

        uint256 proportionFeeAmount =
            buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100;

        // reflect
        uint256 proportionReflected = buying == true
            ? proportionFeeAmount * __buyFee.reflection / __buyFee.total
            : proportionFeeAmount * __sellFee.reflection / __sellFee.total;

        _totalProportion = _totalProportion - proportionReflected;

        // take fees
        uint256 _proportionToContract = proportionFeeAmount - proportionReflected;
        if (_proportionToContract > 0) {
            _rOwned[address(this)] = _rOwned[address(this)] + _proportionToContract;

            emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
        }
        emit Reflect(proportionReflected, _totalProportion);
        return proportionAmount - proportionFeeAmount;
    }

    function _shouldSwapBack() internal view returns (bool) {
        return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold;
    }

    function _swapBack() internal swapping {
        Fee memory __sellFee = sellFee;

        uint256 __swapThreshold = swapThreshold;
        uint256 amountToBurn = __swapThreshold * __sellFee.burn / __sellFee.total;
        uint256 amountToSwap = __swapThreshold - amountToBurn;
        approve(address(UNISWAP_V2_ROUTER), amountToSwap);

        // burn
        _transferFrom(address(this), DEAD, amountToBurn);

        // swap
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = UNISWAP_V2_ROUTER.WETH();

        UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap, 0, path, address(this), block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalSwapFee = __sellFee.total - __sellFee.reflection - __sellFee.burn;
        uint256 amountETHMarketing = amountETH * __sellFee.marketing / totalSwapFee;
        uint256 amountETHLP = amountETH * __sellFee.lp / totalSwapFee;
        uint256 amountETHBuyback = amountETH * __sellFee.buyback / totalSwapFee;

        // send
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(lpFeeReceiver).call{value: amountETHLP}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}("");
    }

    function _shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }
}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "contracts/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.
 *
 * By default, the owner account will be the one that deploys the contract. 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;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @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 {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing 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 {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _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);
    }
}

File 3 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @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 amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves `amount` 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 amount) 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 `amount` 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 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` 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 amount
    ) external returns (bool);
}

File 4 of 4 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @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;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","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":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"reflectionFeeBuy","type":"uint8"},{"internalType":"uint8","name":"marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"lpFeeBuy","type":"uint8"},{"internalType":"uint8","name":"buybackFeeBuy","type":"uint8"},{"internalType":"uint8","name":"burnFeeBuy","type":"uint8"},{"internalType":"uint8","name":"reflectionFeeSell","type":"uint8"},{"internalType":"uint8","name":"marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"lpFeeSell","type":"uint8"},{"internalType":"uint8","name":"buybackFeeSell","type":"uint8"},{"internalType":"uint8","name":"burnFeeSell","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"},{"internalType":"address","name":"lp_","type":"address"},{"internalType":"address","name":"b_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"setLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"p_","type":"uint256"}],"name":"setMaxTxBasisPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","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"},{"stateMutability":"payable","type":"receive"}]

60e0604052600d60a09081526c2337b922bb32b929bab6b6b2b960991b60c0526001906200002e90826200053d565b5060408051808201909152600381526246455360e81b60208201526002906200005890826200053d565b506b033b2e3c9fd0803ce8000000600355606460035460026200007c919062000605565b6200008891906200062f565b60045560035460068190556008805460ff191660019081179091556040805160c08082018352838252602080830185905282840185905260608084018690526080808501879052600560a0958601819052600b8054650501010101016001600160a81b0319918216811790925588519687018952898752948601899052968501889052918401879052830195909552910192909252600c8054909216179055600f805460ff60a01b1916600160a01b1790556103e8906200014b90600262000605565b6200015791906200062f565b60105534801562000166575f80fd5b5062000172336200044e565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ea91906200064f565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027091906200064f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002bb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e191906200064f565b6001600160a01b0381166080819052305f818152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845282528083205f19908190553280855282852091909155938352600a8252808320805460ff1990811660019081179092557fc90215bb1b0ac6bfa50a3c02c4b559c695b6a8e828048a88e327592fc55c5d2c80548216831790559584528184208054871682179055848452818420805487168217905560098352818420805490961617909455600d80546001600160a01b031990811673e3ecdfeffcf28e09adc27a899c7cf61dc95c4d1217909155600e8054821673a06025a0c6567ad89a1a093fdd0a3828e924b138179055600f805490911673d53194f2766c32f143a56a0baee6945522dce4b6179055600354600582528483208190559351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200067e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004c657607f821691505b602082108103620004e557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000538575f81815260208120601f850160051c81016020861015620005135750805b601f850160051c820191505b8181101562000534578281556001016200051f565b5050505b505050565b81516001600160401b038111156200055957620005596200049d565b62000571816200056a8454620004b1565b84620004eb565b602080601f831160018114620005a7575f84156200058f5750858301515b5f19600386901b1c1916600185901b17855562000534565b5f85815260208120601f198616915b82811015620005d757888601518255948401946001909101908401620005b6565b5085821015620005f557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200062957634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200064a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000660575f80fd5b81516001600160a01b038116811462000677575f80fd5b9392505050565b608051611fc9620006a55f395f818161072e015281816111c601526114700152611fc95ff3fe608060405260043610610215575f3560e01c8063571ac8b01161011e578063b0f7ec38116100a8578063df20fd491161006d578063df20fd49146106c0578063e186ec74146106df578063f2fde38b146106fe578063f40acc3d1461071d578063f84ba65d14610750575f80fd5b8063b0f7ec381461060a578063c38a31de1461062a578063d7c0103214610649578063d85a282814610668578063dd62ed3e1461067c575f80fd5b80637d1db4a5116100ee5780637d1db4a51461056b5780638da5cb5b1461058057806395d89b41146105b0578063a82ed9ec146105c4578063a9059cbb146105eb575f80fd5b8063571ac8b0146104fa578063658d4b7f1461051957806370a0823114610538578063715018a614610557575f80fd5b80632b14ca561161019f578063364333f41161016f578063364333f414610436578063404e51291461044c57806341aea9de1461046b57806345ce53651461048a57806347062402146104a9575f80fd5b80632b14ca561461034d5780632d838119146103e3578063313ce567146104025780633582ad231461041d575f80fd5b806316c02129116101e557806316c02129146102c357806317800287146102f157806318160ddd1461030657806323b872dd1461031a5780632b112e4914610339575f80fd5b80630445b6671461022057806306fdde0314610248578063095ea7b3146102695780630cfc15f914610298575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560105481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b5061025c61076f565b60405161023f9190611b57565b348015610274575f80fd5b50610288610283366004611bb6565b6107ff565b604051901515815260200161023f565b3480156102a3575f80fd5b506102356102b2366004611be0565b60056020525f908152604090205481565b3480156102ce575f80fd5b506102886102dd366004611be0565b60126020525f908152604090205460ff1681565b3480156102fc575f80fd5b5061023560065481565b348015610311575f80fd5b50600354610235565b348015610325575f80fd5b50610288610334366004611bfb565b61086b565b348015610344575f80fd5b50610235610973565b348015610358575f80fd5b50600c5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b6040805160ff9788168152958716602087015293861693850193909352908416606084015290921660808201526001600160801b0390911660a082015260c00161023f565b3480156103ee575f80fd5b506102356103fd366004611c39565b6109a4565b34801561040d575f80fd5b506040516012815260200161023f565b348015610428575f80fd5b506008546102889060ff1681565b348015610441575f80fd5b5061044a6109c0565b005b348015610457575f80fd5b5061044a610466366004611c64565b610a1c565b348015610476575f80fd5b5061044a610485366004611c97565b610a4e565b348015610495575f80fd5b506102356104a4366004611c39565b610a69565b3480156104b4575f80fd5b50600b5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b348015610505575f80fd5b50610288610514366004611be0565b610a7b565b348015610524575f80fd5b5061044a610533366004611c64565b610a87565b348015610543575f80fd5b50610235610552366004611be0565b610ab9565b348015610562575f80fd5b5061044a610ada565b348015610576575f80fd5b5061023560045481565b34801561058b575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b3480156105bb575f80fd5b5061025c610aed565b3480156105cf575f80fd5b50610598737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156105f6575f80fd5b50610288610605366004611bb6565b610afc565b348015610615575f80fd5b50600f5461028890600160a01b900460ff1681565b348015610635575f80fd5b5061044a610644366004611cc0565b610b08565b348015610654575f80fd5b5061044a610663366004611d74565b610e45565b348015610673575f80fd5b5061044a610e8c565b348015610687575f80fd5b50610235610696366004611dbc565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156106cb575f80fd5b5061044a6106da366004611df3565b610ea7565b3480156106ea575f80fd5b5061044a6106f9366004611c39565b610ed1565b348015610709575f80fd5b5061044a610718366004611be0565b610efa565b348015610728575f80fd5b506105987f000000000000000000000000000000000000000000000000000000000000000081565b34801561075b575f80fd5b5061044a61076a366004611c64565b610f70565b60606001805461077e90611e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa90611e0d565b80156107f55780601f106107cc576101008083540402835291602001916107f5565b820191905f5260205f20905b8154815290600101906020018083116107d857829003601f168201915b5050505050905090565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108599086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461095e576001600160a01b0384165f90815260076020908152604080832033845290915290205482111561090c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6001600160a01b0384165f90815260076020908152604080832033845290915290205461093a908390611e59565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610969848484610fa2565b90505b9392505050565b5f61097d5f610ab9565b61098861dead610ab9565b6003546109959190611e59565b61099f9190611e59565b905090565b5f600654600354836109b69190611e6c565b6108659190611e83565b6109c8611298565b6040515f90339047908381818185875af1925050503d805f8114610a07576040519150601f19603f3d011682016040523d82523d5f602084013e610a0c565b606091505b5050905080610a19575f80fd5b50565b610a24611298565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b610a56611298565b6008805460ff1916911515919091179055565b5f600354600654836109b69190611e6c565b5f610865825f196107ff565b610a8f611298565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b6001600160a01b0381165f90815260056020526040812054610865906109a4565b610ae2611298565b610aeb5f6112f1565b565b60606002805461077e90611e0d565b5f61096c338484610fa2565b610b10611298565b5f86888a610b1e8d8f611ea2565b610b289190611ea2565b610b329190611ea2565b610b3c9190611ea2565b60ff1690505f828486610b4f898b611ea2565b610b599190611ea2565b610b639190611ea2565b610b6d9190611ea2565b60ff169050600a826001600160801b03161115610bc05760405162461bcd60e51b8152602060048201526011602482015270084eaf240cccacae640e8dede40d0d2ced607b1b6044820152606401610903565b600a816001600160801b03161115610c0f5760405162461bcd60e51b81526020600482015260126024820152710a6cad8d840cccacae640e8dede40d0d2ced60731b6044820152606401610903565b6040518060c001604052808d60ff1681526020018d60ff1681526020018d60ff1681526020018d60ff1681526020018960ff168152602001836001600160801b0316815250600b5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b031602179055509050506040518060c001604052808860ff1681526020018860ff1681526020018860ff1681526020018860ff1681526020018460ff168152602001826001600160801b0316815250600c5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b03160217905550905050505050505050505050505050565b610e4d611298565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b610e94611298565b610a193033610ea230610ab9565b610fa2565b610eaf611298565b600f8054921515600160a01b0260ff60a01b1990931692909217909155601055565b610ed9611298565b61271081600354610eea9190611e6c565b610ef49190611e83565b60045550565b610f02611298565b6001600160a01b038116610f675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610903565b610a19816112f1565b610f78611298565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b0382165f9081526012602052604081205460ff16158015610fe257506001600160a01b0384165f9081526012602052604090205460ff16155b61101c5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610903565b60115460ff161561103957611032848484611340565b905061096c565b60085460ff16801561106357506001600160a01b0384165f908152600a602052604090205460ff16155b801561108757506001600160a01b0383165f908152600a602052604090205460ff16155b156110ef576004548211156110ef5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610903565b6110f7611464565b15611104576111046114d0565b5f61110e83610a69565b6001600160a01b0386165f9081526005602052604090205490915081111561116f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610903565b6001600160a01b0385165f90815260056020526040902054611192908290611e59565b6001600160a01b0386165f908152600560205260408120919091556111b786866118a7565b6111c1578161120d565b61120d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614611203575f611206565b60015b87846118eb565b6001600160a01b0386165f90815260056020526040902054909150611233908290611ebb565b6001600160a01b038087165f8181526005602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61127b846109a4565b60405190815260200160405180910390a350600195945050505050565b5f546001600160a01b03163314610aeb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610903565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8061134b83610a69565b6001600160a01b0386165f908152600560205260409020549091508111156113ac5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610903565b6001600160a01b0385165f908152600560205260409020546113cf908290611e59565b6001600160a01b038087165f9081526005602052604080822093909355908616815220546113fe908290611ebb565b6001600160a01b038086165f8181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114519087815260200190565b60405180910390a3506001949350505050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906114a1575060115460ff16155b80156114b65750600f54600160a01b900460ff165b801561099f57506010546114c930610ab9565b1015905090565b60118054600160ff199091161790556040805160c081018252600c5460ff80821683526101008204811660208401526201000082048116938301939093526301000000810483166060830152640100000000810490921660808201819052600160281b9092046001600160801b031660a0820181905260105491925f91906115589084611e6c565b6115629190611e83565b90505f61156f8284611e59565b905061158f737a250d5630b4cf539739df2c5dacb4c659f2488d826107ff565b5061159d3061dead84610fa2565b506040805160028082526060820183525f9260208301908036833701905050905030815f815181106115d1576115d1611ece565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611641573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116659190611ee2565b8160018151811061167857611678611ece565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116cf9085905f90869030904290600401611efd565b5f604051808303815f87803b1580156116e6575f80fd5b505af11580156116f8573d5f803e3d5ffd5b505050505f4790505f866080015160ff16875f015160ff168860a0015161171f9190611f6c565b6117299190611f6c565b6001600160801b031690505f81886020015160ff16846117499190611e6c565b6117539190611e83565b90505f82896040015160ff168561176a9190611e6c565b6117749190611e83565b90505f838a6060015160ff168661178b9190611e6c565b6117959190611e83565b600d546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146117e4576040519150601f19603f3d011682016040523d82523d5f602084013e6117e9565b606091505b5050600e546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611836576040519150601f19603f3d011682016040523d82523d5f602084013e61183b565b606091505b5050600f546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611888576040519150601f19603f3d011682016040523d82523d5f602084013e61188d565b606091505b50506011805460ff19169055505050505050505050505050565b6001600160a01b0382165f9081526009602052604081205460ff1615801561096c5750506001600160a01b03165f9081526009602052604090205460ff1615919050565b6040805160c08082018352600b5460ff8082168452610100808304821660208087019190915262010000808504841687890152630100000080860485166060808a019190915264010000000080880487166080808c01919091526001600160801b03600160281b998a9004811660a0808e01919091528d519b8c018e52600c54808b168d529889048a16978c019790975294870488169b8a019b909b529185048616908801528304909316968501969096529190910416928101929092525f91828615156001146119e05760648260a001516001600160801b0316866119d19190611e6c565b6119db9190611e83565b611a05565b60648360a001516001600160801b0316866119fb9190611e6c565b611a059190611e83565b90505f600188151514611a41578260a001516001600160801b0316835f015160ff1683611a329190611e6c565b611a3c9190611e83565b611a6b565b8360a001516001600160801b0316845f015160ff1683611a619190611e6c565b611a6b9190611e83565b905080600654611a7b9190611e59565b6006555f611a898284611e59565b90508015611b0357305f90815260056020526040902054611aab908290611ebb565b305f818152600560205260409020919091556001600160a01b0389167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611af1846109a4565b60405190815260200160405180910390a35b6006546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a1611b4a8388611e59565b9998505050505050505050565b5f6020808352835180828501525f5b81811015611b8257858101830151858201604001528201611b66565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a19575f80fd5b5f8060408385031215611bc7575f80fd5b8235611bd281611ba2565b946020939093013593505050565b5f60208284031215611bf0575f80fd5b813561096c81611ba2565b5f805f60608486031215611c0d575f80fd5b8335611c1881611ba2565b92506020840135611c2881611ba2565b929592945050506040919091013590565b5f60208284031215611c49575f80fd5b5035919050565b80358015158114611c5f575f80fd5b919050565b5f8060408385031215611c75575f80fd5b8235611c8081611ba2565b9150611c8e60208401611c50565b90509250929050565b5f60208284031215611ca7575f80fd5b61096c82611c50565b803560ff81168114611c5f575f80fd5b5f805f805f805f805f806101408b8d031215611cda575f80fd5b611ce38b611cb0565b9950611cf160208c01611cb0565b9850611cff60408c01611cb0565b9750611d0d60608c01611cb0565b9650611d1b60808c01611cb0565b9550611d2960a08c01611cb0565b9450611d3760c08c01611cb0565b9350611d4560e08c01611cb0565b9250611d546101008c01611cb0565b9150611d636101208c01611cb0565b90509295989b9194979a5092959850565b5f805f60608486031215611d86575f80fd5b8335611d9181611ba2565b92506020840135611da181611ba2565b91506040840135611db181611ba2565b809150509250925092565b5f8060408385031215611dcd575f80fd5b8235611dd881611ba2565b91506020830135611de881611ba2565b809150509250929050565b5f8060408385031215611e04575f80fd5b611bd283611c50565b600181811c90821680611e2157607f821691505b602082108103611e3f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561086557610865611e45565b808202811582820484141761086557610865611e45565b5f82611e9d57634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561086557610865611e45565b8082018082111561086557610865611e45565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611ef2575f80fd5b815161096c81611ba2565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f4b5784516001600160a01b031683529383019391830191600101611f26565b50506001600160a01b03969096166060850152505050608001529392505050565b6001600160801b03828116828216039080821115611f8c57611f8c611e45565b509291505056fea264697066735822122059f78037c5da123552b4e0a808993a99414545f07bbb687c0ea559f7a5d3c00a64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610215575f3560e01c8063571ac8b01161011e578063b0f7ec38116100a8578063df20fd491161006d578063df20fd49146106c0578063e186ec74146106df578063f2fde38b146106fe578063f40acc3d1461071d578063f84ba65d14610750575f80fd5b8063b0f7ec381461060a578063c38a31de1461062a578063d7c0103214610649578063d85a282814610668578063dd62ed3e1461067c575f80fd5b80637d1db4a5116100ee5780637d1db4a51461056b5780638da5cb5b1461058057806395d89b41146105b0578063a82ed9ec146105c4578063a9059cbb146105eb575f80fd5b8063571ac8b0146104fa578063658d4b7f1461051957806370a0823114610538578063715018a614610557575f80fd5b80632b14ca561161019f578063364333f41161016f578063364333f414610436578063404e51291461044c57806341aea9de1461046b57806345ce53651461048a57806347062402146104a9575f80fd5b80632b14ca561461034d5780632d838119146103e3578063313ce567146104025780633582ad231461041d575f80fd5b806316c02129116101e557806316c02129146102c357806317800287146102f157806318160ddd1461030657806323b872dd1461031a5780632b112e4914610339575f80fd5b80630445b6671461022057806306fdde0314610248578063095ea7b3146102695780630cfc15f914610298575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560105481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b5061025c61076f565b60405161023f9190611b57565b348015610274575f80fd5b50610288610283366004611bb6565b6107ff565b604051901515815260200161023f565b3480156102a3575f80fd5b506102356102b2366004611be0565b60056020525f908152604090205481565b3480156102ce575f80fd5b506102886102dd366004611be0565b60126020525f908152604090205460ff1681565b3480156102fc575f80fd5b5061023560065481565b348015610311575f80fd5b50600354610235565b348015610325575f80fd5b50610288610334366004611bfb565b61086b565b348015610344575f80fd5b50610235610973565b348015610358575f80fd5b50600c5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b6040805160ff9788168152958716602087015293861693850193909352908416606084015290921660808201526001600160801b0390911660a082015260c00161023f565b3480156103ee575f80fd5b506102356103fd366004611c39565b6109a4565b34801561040d575f80fd5b506040516012815260200161023f565b348015610428575f80fd5b506008546102889060ff1681565b348015610441575f80fd5b5061044a6109c0565b005b348015610457575f80fd5b5061044a610466366004611c64565b610a1c565b348015610476575f80fd5b5061044a610485366004611c97565b610a4e565b348015610495575f80fd5b506102356104a4366004611c39565b610a69565b3480156104b4575f80fd5b50600b5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b348015610505575f80fd5b50610288610514366004611be0565b610a7b565b348015610524575f80fd5b5061044a610533366004611c64565b610a87565b348015610543575f80fd5b50610235610552366004611be0565b610ab9565b348015610562575f80fd5b5061044a610ada565b348015610576575f80fd5b5061023560045481565b34801561058b575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b3480156105bb575f80fd5b5061025c610aed565b3480156105cf575f80fd5b50610598737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156105f6575f80fd5b50610288610605366004611bb6565b610afc565b348015610615575f80fd5b50600f5461028890600160a01b900460ff1681565b348015610635575f80fd5b5061044a610644366004611cc0565b610b08565b348015610654575f80fd5b5061044a610663366004611d74565b610e45565b348015610673575f80fd5b5061044a610e8c565b348015610687575f80fd5b50610235610696366004611dbc565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156106cb575f80fd5b5061044a6106da366004611df3565b610ea7565b3480156106ea575f80fd5b5061044a6106f9366004611c39565b610ed1565b348015610709575f80fd5b5061044a610718366004611be0565b610efa565b348015610728575f80fd5b506105987f00000000000000000000000084134a666f00ec0544bf94ec2fb317628852444681565b34801561075b575f80fd5b5061044a61076a366004611c64565b610f70565b60606001805461077e90611e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa90611e0d565b80156107f55780601f106107cc576101008083540402835291602001916107f5565b820191905f5260205f20905b8154815290600101906020018083116107d857829003601f168201915b5050505050905090565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108599086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461095e576001600160a01b0384165f90815260076020908152604080832033845290915290205482111561090c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6001600160a01b0384165f90815260076020908152604080832033845290915290205461093a908390611e59565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610969848484610fa2565b90505b9392505050565b5f61097d5f610ab9565b61098861dead610ab9565b6003546109959190611e59565b61099f9190611e59565b905090565b5f600654600354836109b69190611e6c565b6108659190611e83565b6109c8611298565b6040515f90339047908381818185875af1925050503d805f8114610a07576040519150601f19603f3d011682016040523d82523d5f602084013e610a0c565b606091505b5050905080610a19575f80fd5b50565b610a24611298565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b610a56611298565b6008805460ff1916911515919091179055565b5f600354600654836109b69190611e6c565b5f610865825f196107ff565b610a8f611298565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b6001600160a01b0381165f90815260056020526040812054610865906109a4565b610ae2611298565b610aeb5f6112f1565b565b60606002805461077e90611e0d565b5f61096c338484610fa2565b610b10611298565b5f86888a610b1e8d8f611ea2565b610b289190611ea2565b610b329190611ea2565b610b3c9190611ea2565b60ff1690505f828486610b4f898b611ea2565b610b599190611ea2565b610b639190611ea2565b610b6d9190611ea2565b60ff169050600a826001600160801b03161115610bc05760405162461bcd60e51b8152602060048201526011602482015270084eaf240cccacae640e8dede40d0d2ced607b1b6044820152606401610903565b600a816001600160801b03161115610c0f5760405162461bcd60e51b81526020600482015260126024820152710a6cad8d840cccacae640e8dede40d0d2ced60731b6044820152606401610903565b6040518060c001604052808d60ff1681526020018d60ff1681526020018d60ff1681526020018d60ff1681526020018960ff168152602001836001600160801b0316815250600b5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b031602179055509050506040518060c001604052808860ff1681526020018860ff1681526020018860ff1681526020018860ff1681526020018460ff168152602001826001600160801b0316815250600c5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b03160217905550905050505050505050505050505050565b610e4d611298565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b610e94611298565b610a193033610ea230610ab9565b610fa2565b610eaf611298565b600f8054921515600160a01b0260ff60a01b1990931692909217909155601055565b610ed9611298565b61271081600354610eea9190611e6c565b610ef49190611e83565b60045550565b610f02611298565b6001600160a01b038116610f675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610903565b610a19816112f1565b610f78611298565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b0382165f9081526012602052604081205460ff16158015610fe257506001600160a01b0384165f9081526012602052604090205460ff16155b61101c5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610903565b60115460ff161561103957611032848484611340565b905061096c565b60085460ff16801561106357506001600160a01b0384165f908152600a602052604090205460ff16155b801561108757506001600160a01b0383165f908152600a602052604090205460ff16155b156110ef576004548211156110ef5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610903565b6110f7611464565b15611104576111046114d0565b5f61110e83610a69565b6001600160a01b0386165f9081526005602052604090205490915081111561116f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610903565b6001600160a01b0385165f90815260056020526040902054611192908290611e59565b6001600160a01b0386165f908152600560205260408120919091556111b786866118a7565b6111c1578161120d565b61120d7f00000000000000000000000084134a666f00ec0544bf94ec2fb31762885244466001600160a01b0316876001600160a01b031614611203575f611206565b60015b87846118eb565b6001600160a01b0386165f90815260056020526040902054909150611233908290611ebb565b6001600160a01b038087165f8181526005602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61127b846109a4565b60405190815260200160405180910390a350600195945050505050565b5f546001600160a01b03163314610aeb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610903565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8061134b83610a69565b6001600160a01b0386165f908152600560205260409020549091508111156113ac5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610903565b6001600160a01b0385165f908152600560205260409020546113cf908290611e59565b6001600160a01b038087165f9081526005602052604080822093909355908616815220546113fe908290611ebb565b6001600160a01b038086165f8181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114519087815260200190565b60405180910390a3506001949350505050565b5f336001600160a01b037f00000000000000000000000084134a666f00ec0544bf94ec2fb317628852444616148015906114a1575060115460ff16155b80156114b65750600f54600160a01b900460ff165b801561099f57506010546114c930610ab9565b1015905090565b60118054600160ff199091161790556040805160c081018252600c5460ff80821683526101008204811660208401526201000082048116938301939093526301000000810483166060830152640100000000810490921660808201819052600160281b9092046001600160801b031660a0820181905260105491925f91906115589084611e6c565b6115629190611e83565b90505f61156f8284611e59565b905061158f737a250d5630b4cf539739df2c5dacb4c659f2488d826107ff565b5061159d3061dead84610fa2565b506040805160028082526060820183525f9260208301908036833701905050905030815f815181106115d1576115d1611ece565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611641573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116659190611ee2565b8160018151811061167857611678611ece565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116cf9085905f90869030904290600401611efd565b5f604051808303815f87803b1580156116e6575f80fd5b505af11580156116f8573d5f803e3d5ffd5b505050505f4790505f866080015160ff16875f015160ff168860a0015161171f9190611f6c565b6117299190611f6c565b6001600160801b031690505f81886020015160ff16846117499190611e6c565b6117539190611e83565b90505f82896040015160ff168561176a9190611e6c565b6117749190611e83565b90505f838a6060015160ff168661178b9190611e6c565b6117959190611e83565b600d546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146117e4576040519150601f19603f3d011682016040523d82523d5f602084013e6117e9565b606091505b5050600e546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611836576040519150601f19603f3d011682016040523d82523d5f602084013e61183b565b606091505b5050600f546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611888576040519150601f19603f3d011682016040523d82523d5f602084013e61188d565b606091505b50506011805460ff19169055505050505050505050505050565b6001600160a01b0382165f9081526009602052604081205460ff1615801561096c5750506001600160a01b03165f9081526009602052604090205460ff1615919050565b6040805160c08082018352600b5460ff8082168452610100808304821660208087019190915262010000808504841687890152630100000080860485166060808a019190915264010000000080880487166080808c01919091526001600160801b03600160281b998a9004811660a0808e01919091528d519b8c018e52600c54808b168d529889048a16978c019790975294870488169b8a019b909b529185048616908801528304909316968501969096529190910416928101929092525f91828615156001146119e05760648260a001516001600160801b0316866119d19190611e6c565b6119db9190611e83565b611a05565b60648360a001516001600160801b0316866119fb9190611e6c565b611a059190611e83565b90505f600188151514611a41578260a001516001600160801b0316835f015160ff1683611a329190611e6c565b611a3c9190611e83565b611a6b565b8360a001516001600160801b0316845f015160ff1683611a619190611e6c565b611a6b9190611e83565b905080600654611a7b9190611e59565b6006555f611a898284611e59565b90508015611b0357305f90815260056020526040902054611aab908290611ebb565b305f818152600560205260409020919091556001600160a01b0389167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611af1846109a4565b60405190815260200160405180910390a35b6006546040805184815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a1611b4a8388611e59565b9998505050505050505050565b5f6020808352835180828501525f5b81811015611b8257858101830151858201604001528201611b66565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a19575f80fd5b5f8060408385031215611bc7575f80fd5b8235611bd281611ba2565b946020939093013593505050565b5f60208284031215611bf0575f80fd5b813561096c81611ba2565b5f805f60608486031215611c0d575f80fd5b8335611c1881611ba2565b92506020840135611c2881611ba2565b929592945050506040919091013590565b5f60208284031215611c49575f80fd5b5035919050565b80358015158114611c5f575f80fd5b919050565b5f8060408385031215611c75575f80fd5b8235611c8081611ba2565b9150611c8e60208401611c50565b90509250929050565b5f60208284031215611ca7575f80fd5b61096c82611c50565b803560ff81168114611c5f575f80fd5b5f805f805f805f805f806101408b8d031215611cda575f80fd5b611ce38b611cb0565b9950611cf160208c01611cb0565b9850611cff60408c01611cb0565b9750611d0d60608c01611cb0565b9650611d1b60808c01611cb0565b9550611d2960a08c01611cb0565b9450611d3760c08c01611cb0565b9350611d4560e08c01611cb0565b9250611d546101008c01611cb0565b9150611d636101208c01611cb0565b90509295989b9194979a5092959850565b5f805f60608486031215611d86575f80fd5b8335611d9181611ba2565b92506020840135611da181611ba2565b91506040840135611db181611ba2565b809150509250925092565b5f8060408385031215611dcd575f80fd5b8235611dd881611ba2565b91506020830135611de881611ba2565b809150509250929050565b5f8060408385031215611e04575f80fd5b611bd283611c50565b600181811c90821680611e2157607f821691505b602082108103611e3f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561086557610865611e45565b808202811582820484141761086557610865611e45565b5f82611e9d57634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561086557610865611e45565b8082018082111561086557610865611e45565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611ef2575f80fd5b815161096c81611ba2565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f4b5784516001600160a01b031683529383019391830191600101611f26565b50506001600160a01b03969096166060850152505050608001529392505050565b6001600160801b03828116828216039080821115611f8c57611f8c611e45565b509291505056fea264697066735822122059f78037c5da123552b4e0a808993a99414545f07bbb687c0ea559f7a5d3c00a64736f6c63430008140033

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.