ETH Price: $3,503.46 (-0.17%)
Gas: 2 Gwei

Token

Chad Game (GAME)
 

Overview

Max Total Supply

1,000,000 GAME

Holders

162

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ChadGame

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 10 : ChadGame.sol
// SPDX-License-Identifier: MIT

//    █▀▀ █░█ ▄▀█ █▀▄   █▀▀ ▄▀█ █▀▄▀█ █▀▀
//    █▄▄ █▀█ █▀█ █▄▀   █▄█ █▀█ █░▀░█ ██▄

//    BE THE LAST CHAD STANDING!

//    If you buy $GAME and no one else buys after you within 60 minutes, you win ETH from taxes!

//    To play, simply buy $GAME on Uniswap.
//    You must buy at least 1000 GAME to play, or it will revert.

//    The prize pool increases with each sell.
//    9% sell tax is split this way: 3% to the current winner, 3% reserved for future rounds, 3% to the dev.

//    The prize will be sent to you automatically (see line 171).

//    Good luck!

//   +----------------------------------------------------------------------+
//   |  THERE IS NO OFFICIAL WEBSITE OR TWITTER!                            |
//   |  KEEP UPDATED BY JOINING THE TELEGRAM GROUP: https://t.me/ChadGame   |
//   +----------------------------------------------------------------------+

pragma solidity 0.8.19;

import "lib/openzeppelin-contracts/contracts/access/Ownable.sol";
import "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol";
import "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol";
import "interfaces/IUniswapV2Router02.sol";
import "interfaces/IUniswapV2Pair.sol";
import "interfaces/IUniswapV2Factory.sol";

contract ChadGame is IERC20, Ownable, ReentrancyGuard {
    string public name = "Chad Game";
    string public symbol = "GAME";
    uint8 public decimals = 18;
    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isExcludedFromTax;

    bool public tradingOpen;
    uint256 public sellTax = 9;

    uint256 public minBuy = 1_000e18;
    uint256 public maxWallet = 10_000e18;
    uint256 public lastBuyTimestamp = block.timestamp;
    uint256 public cooldown = 1 hours;
    address public currentWinner;

    IUniswapV2Pair public immutable uniswapV2Pair;
    IUniswapV2Router02 public immutable uniswapV2Router;
    address payable public immutable devWallet;

    constructor() {
        totalSupply = 1_000_000e18;
        balanceOf[msg.sender] = totalSupply;

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

        devWallet = payable(0x3FCdF3bd5Bd701268834E577E9218C38E789A92E);

        isExcludedFromTax[owner()] = true;
        isExcludedFromTax[address(this)] = true;
        isExcludedFromTax[devWallet] = true;
    }

    event WinnerReset(address indexed winner, address indexed prevWinner, uint256 timeLeft);
    event PrizePoolIncreased(uint256 amountIncreased);
    event WinnerPaid(address indexed winner, uint256 amount);

    bool inSwap = false;

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    receive() external payable {}

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

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

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

    function _spendAllowance(address owner, address spender, uint256 amount) private {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function transfer(address recipient, uint256 amount) external returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        emit Transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        _spendAllowance(sender, _msgSender(), amount);
        _transfer(sender, recipient, amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!tradingOpen) {
            require(isExcludedFromTax[from], "Can't trade yet");
        }

        uint256 taxAmount = 0;

        if (!isExcludedFromTax[from] && !isExcludedFromTax[to]) {
            if (from == address(uniswapV2Pair) && to != address(uniswapV2Router)) {
                require(amount >= minBuy, "minBuy not satisfied");
                require(balanceOf[to] + amount <= maxWallet, "maxWallet exceeded");

                uint256 timeLeft = getTimeLeft();

                if (timeLeft > 0) {
                    // Get previous winner
                    address prevWinner = currentWinner;

                    // Set buyer as current winner
                    currentWinner = to;

                    // Reset timestamp
                    lastBuyTimestamp = block.timestamp;

                    // Emit event
                    emit WinnerReset(currentWinner, prevWinner, timeLeft);
                } else {
                    // Get winner
                    address winner = currentWinner;

                    // Set buyer as next winner
                    currentWinner = to;

                    // Reset timestamp
                    lastBuyTimestamp = block.timestamp;

                    // Get win amount
                    uint256 winAmount = getWinAmount();

                    // Send eth to winner. Only half will be sent.
                    // Other half is reserved for future rounds
                    (bool success,) = winner.call{value: winAmount}("");

                    // Fallback in case winner is unable to receive ether.
                    // This would only happen if winner is a contract that
                    // does not have a payable fallback function.
                    // In that case winner should contact dev to claim their prize
                    if (!success) {
                        (bool success2,) = devWallet.call{value: winAmount}("");
                        require(success2);
                    }

                    // Emit event
                    emit WinnerPaid(winner, winAmount);
                    emit WinnerReset(currentWinner, winner, timeLeft);
                }
            }

            // Charge 9% tax on sell
            if (to == address(uniswapV2Pair) && from != address(this)) {
                taxAmount = (amount * sellTax) / 100;
            }

            if (taxAmount > 0) {
                balanceOf[address(this)] += taxAmount;
                emit Transfer(from, address(this), taxAmount);
            }

            uint256 contractTokenBalance = balanceOf[address(this)];
            bool canSwap = contractTokenBalance > 0;

            if (canSwap && !inSwap && to == address(uniswapV2Pair)) {
                _swapTokensForEth(min(amount, contractTokenBalance));
            }
        }

        balanceOf[from] -= amount;
        balanceOf[to] += amount - taxAmount;
    }

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

        uint256 balanceBefore = address(this).balance;

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount, 0, path, address(this), block.timestamp
        );

        uint256 ethAmount = address(this).balance - balanceBefore;
        uint256 ethToDev = ethAmount / 3;
        uint256 ethToPool = ethAmount - ethToDev;

        (bool success,) = devWallet.call{value: ethToDev}("");
        require(success);

        emit PrizePoolIncreased(ethToPool);
    }

    function manualSwap() external {
        require(_msgSender() == devWallet, "Not authorized");
        uint256 tokenBalance = balanceOf[address(this)];
        if (tokenBalance > 0) {
            _swapTokensForEth(tokenBalance);
        }
    }

    function getWinAmount() public view returns (uint256) {
        return address(this).balance / 2;
    }

    function getTimeLeft() public view returns (uint256) {
        if (lastBuyTimestamp + cooldown > block.timestamp) {
            return (lastBuyTimestamp + cooldown) - block.timestamp;
        } else {
            return 0;
        }
    }

    // Set minimum buy amount
    function setMinBuy(uint256 _minBuy) external onlyOwner {
        minBuy = _minBuy;
    }

    function setMaxWallet(uint256 _maxWallet) external onlyOwner {
        require(_maxWallet > 10_000e18, "Max wallet must be greater than 10,000");
        maxWallet = _maxWallet;
    }

    // Set cooldown needed to win
    function setCooldown(uint256 _cooldown) external onlyOwner {
        require(_cooldown > 60, "Cooldown must be greater than 60 seconds");
        cooldown = _cooldown;
    }

    // Emergency only
    function withdrawEth() external onlyOwner {
        (bool success,) = devWallet.call{value: address(this).balance}("");
        require(success);
    }

    function openTrading() external payable onlyOwner {
        tradingOpen = true;
    }

    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }
}

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

pragma solidity ^0.8.0;

import "../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.
 *
 * 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 10 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

File 4 of 10 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)

pragma solidity ^0.8.0;

import "../token/ERC20/IERC20.sol";

File 5 of 10 : IUniswapV2Router02.sol
pragma solidity >=0.6.2;

import './IUniswapV2Router01.sol';

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

File 6 of 10 : IUniswapV2Pair.sol
pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

File 7 of 10 : IUniswapV2Factory.sol
pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

File 8 of 10 : 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;
    }
}

File 9 of 10 : 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 10 of 10 : IUniswapV2Router01.sol
pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "lib/forge-std:ds-test/=lib/forge-std/lib/ds-test/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

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":"amountIncreased","type":"uint256"}],"name":"PrizePoolIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WinnerPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"winner","type":"address"},{"indexed":true,"internalType":"address","name":"prevWinner","type":"address"},{"indexed":false,"internalType":"uint256","name":"timeLeft","type":"uint256"}],"name":"WinnerReset","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentWinner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWinAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBuyTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","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":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cooldown","type":"uint256"}],"name":"setCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minBuy","type":"uint256"}],"name":"setMinBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

610120604052600960e090815268436861642047616d6560b81b610100526002906200002c9082620003d0565b5060408051808201909152600481526347414d4560e01b6020820152600390620000579082620003d0565b506004805460ff191660121790556009600a55683635c9adc5dea00000600b5569021e19e0c9bab2400000600c5542600d55610e10600e55600f805460ff60a01b19169055348015620000a957600080fd5b50620000b533620002db565b6001805569d3c21bcecceda100000060058190553360009081526006602090815260409182902092909255737a250d5630b4cf539739df2c5dacb4c659f2488d60a0819052815163c45a015560e01b81529151909263c45a015592600480820193918290030181865afa15801562000131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015791906200049c565b6001600160a01b031663c9c653963060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cd91906200049c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024191906200049c565b6001600160a01b0316608052733fcdf3bd5bd701268834e577e9218c38e789a92e60c0526001600860006200027e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600890935281832080548516600190811790915560c051909116835291208054909216179055620004ce565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035657607f821691505b6020821081036200037757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003cb57600081815260208120601f850160051c81016020861015620003a65750805b601f850160051c820191505b81811015620003c757828155600101620003b2565b5050505b505050565b81516001600160401b03811115620003ec57620003ec6200032b565b6200040481620003fd845462000341565b846200037d565b602080601f8311600181146200043c5760008415620004235750858301515b600019600386901b1c1916600185901b178555620003c7565b600085815260208120601f198616915b828110156200046d578886015182559484019460019091019084016200044c565b50858210156200048c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620004af57600080fd5b81516001600160a01b0381168114620004c757600080fd5b9392505050565b60805160a05160c0516119176200054b6000396000818161047301528181610794015281816108cb01528181611020015261152f01526000818161027801528181610e2b015281816113a001528181611452015261148e01526000818161033c01528181610def0152818161112d015261123601526119176000f3fe6080604052600436106101dc5760003560e01c8063787a08a611610102578063c7e284b811610095578063dd62ed3e11610064578063dd62ed3e14610562578063f2fde38b146105a8578063f8b45b05146105c8578063ffb54a99146105de57600080fd5b8063c7e284b8146104ff578063c9567bf914610514578063cb4ca6311461051c578063cc1776d31461054c57600080fd5b806395d89b41116100d157806395d89b4114610495578063a0ef91df146104aa578063a9059cbb146104bf578063aabe2fe3146104df57600080fd5b8063787a08a61461040d578063860779e7146104235780638da5cb5b146104435780638ea5220f1461046157600080fd5b80634985746f1161017a5780635d0044ca116101495780635d0044ca1461039557806370a08231146103b55780637107d7a6146103e2578063715018a6146103f857600080fd5b80634985746f1461031457806349bd5a5e1461032a5780634fc3f41a1461035e57806351bc3c851461038057600080fd5b80631694505e116101b65780631694505e1461026657806318160ddd146102b257806323b872dd146102c8578063313ce567146102e857600080fd5b806306fdde03146101e8578063095ea7b314610213578063164aac251461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6105f8565b60405161020a919061164f565b60405180910390f35b34801561021f57600080fd5b5061023361022e3660046116b2565b610686565b604051901515815260200161020a565b34801561024f57600080fd5b5061025861069d565b60405190815260200161020a565b34801561027257600080fd5b5061029a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020a565b3480156102be57600080fd5b5061025860055481565b3480156102d457600080fd5b506102336102e33660046116de565b6106af565b3480156102f457600080fd5b506004546103029060ff1681565b60405160ff909116815260200161020a565b34801561032057600080fd5b50610258600d5481565b34801561033657600080fd5b5061029a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036a57600080fd5b5061037e61037936600461171f565b61071e565b005b34801561038c57600080fd5b5061037e610791565b3480156103a157600080fd5b5061037e6103b036600461171f565b61081c565b3480156103c157600080fd5b506102586103d0366004611738565b60066020526000908152604090205481565b3480156103ee57600080fd5b50610258600b5481565b34801561040457600080fd5b5061037e610891565b34801561041957600080fd5b50610258600e5481565b34801561042f57600080fd5b5061037e61043e36600461171f565b6108a5565b34801561044f57600080fd5b506000546001600160a01b031661029a565b34801561046d57600080fd5b5061029a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a157600080fd5b506101fd6108b2565b3480156104b657600080fd5b5061037e6108bf565b3480156104cb57600080fd5b506102336104da3660046116b2565b610947565b3480156104eb57600080fd5b50600f5461029a906001600160a01b031681565b34801561050b57600080fd5b5061025861099d565b61037e6109d7565b34801561052857600080fd5b50610233610537366004611738565b60086020526000908152604090205460ff1681565b34801561055857600080fd5b50610258600a5481565b34801561056e57600080fd5b5061025861057d366004611755565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156105b457600080fd5b5061037e6105c3366004611738565b6109ee565b3480156105d457600080fd5b50610258600c5481565b3480156105ea57600080fd5b506009546102339060ff1681565b600280546106059061178e565b80601f01602080910402602001604051908101604052809291908181526020018280546106319061178e565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b505050505081565b6000610693338484610a64565b5060015b92915050565b60006106aa6002476117de565b905090565b60006106bc843384610b88565b6106c7848484610c1a565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161070c91815260200190565b60405180910390a35060019392505050565b6107266112ef565b603c811161078c5760405162461bcd60e51b815260206004820152602860248201527f436f6f6c646f776e206d7573742062652067726561746572207468616e203630604482015267207365636f6e647360c01b60648201526084015b60405180910390fd5b600e55565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146107fa5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610783565b3060009081526006602052604090205480156108195761081981611349565b50565b6108246112ef565b69021e19e0c9bab2400000811161088c5760405162461bcd60e51b815260206004820152602660248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015265031302c3030360d41b6064820152608401610783565b600c55565b6108996112ef565b6108a360006115e7565b565b6108ad6112ef565b600b55565b600380546106059061178e565b6108c76112ef565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03164760405160006040518083038185875af1925050503d8060008114610934576040519150601f19603f3d011682016040523d82523d6000602084013e610939565b606091505b505090508061081957600080fd5b6000610954338484610c1a565b6040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600192915050565b600042600e54600d546109b09190611800565b11156109d15742600e54600d546109c79190611800565b6106aa9190611813565b50600090565b6109df6112ef565b6009805460ff19166001179055565b6109f66112ef565b6001600160a01b038116610a5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610783565b610819816115e7565b6001600160a01b038316610ac65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610783565b6001600160a01b038216610b275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610783565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600760209081526040808320938616835292905220546000198114610c145781811015610c075760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610783565b610c148484848403610a64565b50505050565b6001600160a01b038316610c7e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610783565b6001600160a01b038216610ce05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610783565b60008111610d425760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610783565b60095460ff16610da6576001600160a01b03831660009081526008602052604090205460ff16610da65760405162461bcd60e51b815260206004820152600f60248201526e10d85b89dd081d1c985919481e595d608a1b6044820152606401610783565b6001600160a01b03831660009081526008602052604081205460ff16158015610de857506001600160a01b03831660009081526008602052604090205460ff16155b15611284577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015610e6057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b1561112b57600b54821015610eae5760405162461bcd60e51b81526020600482015260146024820152731b5a5b909d5e481b9bdd081cd85d1a5cd99a595960621b6044820152606401610783565b600c546001600160a01b038416600090815260066020526040902054610ed5908490611800565b1115610f185760405162461bcd60e51b81526020600482015260126024820152711b585e15d85b1b195d08195e18d95959195960721b6044820152606401610783565b6000610f2261099d565b90508015610f9257600f80546001600160a01b038681166001600160a01b03198316811790935542600d5560405191169182917fcd59426740ab85c89d34f8dfcc1ce20ec8d097d8d04a52debaf2841a48bc4ad690610f849086815260200190565b60405180910390a350611129565b600f80546001600160a01b038681166001600160a01b031983161790925542600d55166000610fbf61069d565b90506000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461100e576040519150601f19603f3d011682016040523d82523d6000602084013e611013565b606091505b505090508061109e5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168360405160006040518083038185875af1925050503d8060008114611089576040519150601f19603f3d011682016040523d82523d6000602084013e61108e565b606091505b505090508061109c57600080fd5b505b826001600160a01b03167f8cbbe5cd65720098fc8ce6e99a5deb232085117dd486475b49cb11604b528f30836040516110d991815260200190565b60405180910390a2600f546040518581526001600160a01b038581169216907fcd59426740ab85c89d34f8dfcc1ce20ec8d097d8d04a52debaf2841a48bc4ad69060200160405180910390a35050505b505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614801561117557506001600160a01b0384163014155b15611197576064600a548361118a9190611826565b61119491906117de565b90505b80156112025730600090815260066020526040812080548392906111bc908490611800565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b306000908152600660205260409020548015801590819061122d5750600f54600160a01b900460ff16155b801561126a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b156112815761128161127c8584611637565b611349565b50505b6001600160a01b038416600090815260066020526040812080548492906112ac908490611813565b909155506112bc90508183611813565b6001600160a01b038416600090815260066020526040812080549091906112e4908490611800565b909155505050505050565b6000546001600160a01b031633146108a35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610783565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061137e5761137e61183d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114209190611853565b816001815181106114335761143361183d565b6001600160a01b039092166020928302919091019091015247611477307f000000000000000000000000000000000000000000000000000000000000000085610a64565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906114cc908690600090879030904290600401611870565b600060405180830381600087803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b505050506000814761150c9190611813565b9050600061151b6003836117de565b905060006115298284611813565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168360405160006040518083038185875af1925050503d8060008114611598576040519150601f19603f3d011682016040523d82523d6000602084013e61159d565b606091505b50509050806115ab57600080fd5b6040518281527f3c231f64b16483d16ca517ccd881f34f86dd04ccc1305e65b854fe82189b76259060200160405180910390a150505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183106116465781611648565b825b9392505050565b600060208083528351808285015260005b8181101561167c57858101830151858201604001528201611660565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461081957600080fd5b600080604083850312156116c557600080fd5b82356116d08161169d565b946020939093013593505050565b6000806000606084860312156116f357600080fd5b83356116fe8161169d565b9250602084013561170e8161169d565b929592945050506040919091013590565b60006020828403121561173157600080fd5b5035919050565b60006020828403121561174a57600080fd5b81356116488161169d565b6000806040838503121561176857600080fd5b82356117738161169d565b915060208301356117838161169d565b809150509250929050565b600181811c908216806117a257607f821691505b6020821081036117c257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000826117fb57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610697576106976117c8565b81810381811115610697576106976117c8565b8082028115828204841417610697576106976117c8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561186557600080fd5b81516116488161169d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118c05784516001600160a01b03168352938301939183019160010161189b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f60ef9f68059b1c4784b4e19a7d686b04159c9deb1d7b88a8a839e91c7a2c71d64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063787a08a611610102578063c7e284b811610095578063dd62ed3e11610064578063dd62ed3e14610562578063f2fde38b146105a8578063f8b45b05146105c8578063ffb54a99146105de57600080fd5b8063c7e284b8146104ff578063c9567bf914610514578063cb4ca6311461051c578063cc1776d31461054c57600080fd5b806395d89b41116100d157806395d89b4114610495578063a0ef91df146104aa578063a9059cbb146104bf578063aabe2fe3146104df57600080fd5b8063787a08a61461040d578063860779e7146104235780638da5cb5b146104435780638ea5220f1461046157600080fd5b80634985746f1161017a5780635d0044ca116101495780635d0044ca1461039557806370a08231146103b55780637107d7a6146103e2578063715018a6146103f857600080fd5b80634985746f1461031457806349bd5a5e1461032a5780634fc3f41a1461035e57806351bc3c851461038057600080fd5b80631694505e116101b65780631694505e1461026657806318160ddd146102b257806323b872dd146102c8578063313ce567146102e857600080fd5b806306fdde03146101e8578063095ea7b314610213578063164aac251461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6105f8565b60405161020a919061164f565b60405180910390f35b34801561021f57600080fd5b5061023361022e3660046116b2565b610686565b604051901515815260200161020a565b34801561024f57600080fd5b5061025861069d565b60405190815260200161020a565b34801561027257600080fd5b5061029a7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161020a565b3480156102be57600080fd5b5061025860055481565b3480156102d457600080fd5b506102336102e33660046116de565b6106af565b3480156102f457600080fd5b506004546103029060ff1681565b60405160ff909116815260200161020a565b34801561032057600080fd5b50610258600d5481565b34801561033657600080fd5b5061029a7f000000000000000000000000affdb31d0c9c7d203265cdf058f8518f1457af3e81565b34801561036a57600080fd5b5061037e61037936600461171f565b61071e565b005b34801561038c57600080fd5b5061037e610791565b3480156103a157600080fd5b5061037e6103b036600461171f565b61081c565b3480156103c157600080fd5b506102586103d0366004611738565b60066020526000908152604090205481565b3480156103ee57600080fd5b50610258600b5481565b34801561040457600080fd5b5061037e610891565b34801561041957600080fd5b50610258600e5481565b34801561042f57600080fd5b5061037e61043e36600461171f565b6108a5565b34801561044f57600080fd5b506000546001600160a01b031661029a565b34801561046d57600080fd5b5061029a7f0000000000000000000000003fcdf3bd5bd701268834e577e9218c38e789a92e81565b3480156104a157600080fd5b506101fd6108b2565b3480156104b657600080fd5b5061037e6108bf565b3480156104cb57600080fd5b506102336104da3660046116b2565b610947565b3480156104eb57600080fd5b50600f5461029a906001600160a01b031681565b34801561050b57600080fd5b5061025861099d565b61037e6109d7565b34801561052857600080fd5b50610233610537366004611738565b60086020526000908152604090205460ff1681565b34801561055857600080fd5b50610258600a5481565b34801561056e57600080fd5b5061025861057d366004611755565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156105b457600080fd5b5061037e6105c3366004611738565b6109ee565b3480156105d457600080fd5b50610258600c5481565b3480156105ea57600080fd5b506009546102339060ff1681565b600280546106059061178e565b80601f01602080910402602001604051908101604052809291908181526020018280546106319061178e565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b505050505081565b6000610693338484610a64565b5060015b92915050565b60006106aa6002476117de565b905090565b60006106bc843384610b88565b6106c7848484610c1a565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161070c91815260200190565b60405180910390a35060019392505050565b6107266112ef565b603c811161078c5760405162461bcd60e51b815260206004820152602860248201527f436f6f6c646f776e206d7573742062652067726561746572207468616e203630604482015267207365636f6e647360c01b60648201526084015b60405180910390fd5b600e55565b337f0000000000000000000000003fcdf3bd5bd701268834e577e9218c38e789a92e6001600160a01b0316146107fa5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610783565b3060009081526006602052604090205480156108195761081981611349565b50565b6108246112ef565b69021e19e0c9bab2400000811161088c5760405162461bcd60e51b815260206004820152602660248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015265031302c3030360d41b6064820152608401610783565b600c55565b6108996112ef565b6108a360006115e7565b565b6108ad6112ef565b600b55565b600380546106059061178e565b6108c76112ef565b60007f0000000000000000000000003fcdf3bd5bd701268834e577e9218c38e789a92e6001600160a01b03164760405160006040518083038185875af1925050503d8060008114610934576040519150601f19603f3d011682016040523d82523d6000602084013e610939565b606091505b505090508061081957600080fd5b6000610954338484610c1a565b6040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600192915050565b600042600e54600d546109b09190611800565b11156109d15742600e54600d546109c79190611800565b6106aa9190611813565b50600090565b6109df6112ef565b6009805460ff19166001179055565b6109f66112ef565b6001600160a01b038116610a5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610783565b610819816115e7565b6001600160a01b038316610ac65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610783565b6001600160a01b038216610b275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610783565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600760209081526040808320938616835292905220546000198114610c145781811015610c075760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610783565b610c148484848403610a64565b50505050565b6001600160a01b038316610c7e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610783565b6001600160a01b038216610ce05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610783565b60008111610d425760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610783565b60095460ff16610da6576001600160a01b03831660009081526008602052604090205460ff16610da65760405162461bcd60e51b815260206004820152600f60248201526e10d85b89dd081d1c985919481e595d608a1b6044820152606401610783565b6001600160a01b03831660009081526008602052604081205460ff16158015610de857506001600160a01b03831660009081526008602052604090205460ff16155b15611284577f000000000000000000000000affdb31d0c9c7d203265cdf058f8518f1457af3e6001600160a01b0316846001600160a01b0316148015610e6057507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316836001600160a01b031614155b1561112b57600b54821015610eae5760405162461bcd60e51b81526020600482015260146024820152731b5a5b909d5e481b9bdd081cd85d1a5cd99a595960621b6044820152606401610783565b600c546001600160a01b038416600090815260066020526040902054610ed5908490611800565b1115610f185760405162461bcd60e51b81526020600482015260126024820152711b585e15d85b1b195d08195e18d95959195960721b6044820152606401610783565b6000610f2261099d565b90508015610f9257600f80546001600160a01b038681166001600160a01b03198316811790935542600d5560405191169182917fcd59426740ab85c89d34f8dfcc1ce20ec8d097d8d04a52debaf2841a48bc4ad690610f849086815260200190565b60405180910390a350611129565b600f80546001600160a01b038681166001600160a01b031983161790925542600d55166000610fbf61069d565b90506000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461100e576040519150601f19603f3d011682016040523d82523d6000602084013e611013565b606091505b505090508061109e5760007f0000000000000000000000003fcdf3bd5bd701268834e577e9218c38e789a92e6001600160a01b03168360405160006040518083038185875af1925050503d8060008114611089576040519150601f19603f3d011682016040523d82523d6000602084013e61108e565b606091505b505090508061109c57600080fd5b505b826001600160a01b03167f8cbbe5cd65720098fc8ce6e99a5deb232085117dd486475b49cb11604b528f30836040516110d991815260200190565b60405180910390a2600f546040518581526001600160a01b038581169216907fcd59426740ab85c89d34f8dfcc1ce20ec8d097d8d04a52debaf2841a48bc4ad69060200160405180910390a35050505b505b7f000000000000000000000000affdb31d0c9c7d203265cdf058f8518f1457af3e6001600160a01b0316836001600160a01b031614801561117557506001600160a01b0384163014155b15611197576064600a548361118a9190611826565b61119491906117de565b90505b80156112025730600090815260066020526040812080548392906111bc908490611800565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b306000908152600660205260409020548015801590819061122d5750600f54600160a01b900460ff16155b801561126a57507f000000000000000000000000affdb31d0c9c7d203265cdf058f8518f1457af3e6001600160a01b0316856001600160a01b0316145b156112815761128161127c8584611637565b611349565b50505b6001600160a01b038416600090815260066020526040812080548492906112ac908490611813565b909155506112bc90508183611813565b6001600160a01b038416600090815260066020526040812080549091906112e4908490611800565b909155505050505050565b6000546001600160a01b031633146108a35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610783565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061137e5761137e61183d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114209190611853565b816001815181106114335761143361183d565b6001600160a01b039092166020928302919091019091015247611477307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d85610a64565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906114cc908690600090879030904290600401611870565b600060405180830381600087803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b505050506000814761150c9190611813565b9050600061151b6003836117de565b905060006115298284611813565b905060007f0000000000000000000000003fcdf3bd5bd701268834e577e9218c38e789a92e6001600160a01b03168360405160006040518083038185875af1925050503d8060008114611598576040519150601f19603f3d011682016040523d82523d6000602084013e61159d565b606091505b50509050806115ab57600080fd5b6040518281527f3c231f64b16483d16ca517ccd881f34f86dd04ccc1305e65b854fe82189b76259060200160405180910390a150505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183106116465781611648565b825b9392505050565b600060208083528351808285015260005b8181101561167c57858101830151858201604001528201611660565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461081957600080fd5b600080604083850312156116c557600080fd5b82356116d08161169d565b946020939093013593505050565b6000806000606084860312156116f357600080fd5b83356116fe8161169d565b9250602084013561170e8161169d565b929592945050506040919091013590565b60006020828403121561173157600080fd5b5035919050565b60006020828403121561174a57600080fd5b81356116488161169d565b6000806040838503121561176857600080fd5b82356117738161169d565b915060208301356117838161169d565b809150509250929050565b600181811c908216806117a257607f821691505b6020821081036117c257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000826117fb57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610697576106976117c8565b81810381811115610697576106976117c8565b8082028115828204841417610697576106976117c8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561186557600080fd5b81516116488161169d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118c05784516001600160a01b03168352938301939183019160010161189b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f60ef9f68059b1c4784b4e19a7d686b04159c9deb1d7b88a8a839e91c7a2c71d64736f6c63430008130033

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.