{
  "compiler": {
    "version": "0.8.27+commit.40a35a09"
  },
  "language": "Solidity",
  "output": {
    "abi": [
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "owner",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "address",
            "name": "spender",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256",
            "indexed": false
          }
        ],
        "type": "event",
        "name": "Approval",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "from",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "address",
            "name": "to",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "uint256",
            "name": "value",
            "type": "uint256",
            "indexed": false
          }
        ],
        "type": "event",
        "name": "Transfer",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "owner",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "spender",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "allowance",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "spender",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "approve",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "account",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "balanceOf",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "decimals",
        "outputs": [
          {
            "internalType": "uint8",
            "name": "",
            "type": "uint8"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "name",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "symbol",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "totalSupply",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "to",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "transfer",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "from",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "to",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "transferFrom",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      }
    ],
    "devdoc": {
      "kind": "dev",
      "methods": {
        "approve(address,uint256)": {
          "details": "Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"
        }
      },
      "version": 1
    },
    "userdoc": {
      "kind": "user",
      "methods": {
        "allowance(address,address)": {
          "notice": "Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"
        },
        "approve(address,uint256)": {
          "notice": "Sets `amount` as the allowance of `spender` over the caller's tokens."
        },
        "balanceOf(address)": {
          "notice": "Returns the amount of tokens owned by `account`."
        },
        "decimals()": {
          "notice": "Returns the decimals places of the token."
        },
        "name()": {
          "notice": "Returns the name of the token."
        },
        "symbol()": {
          "notice": "Returns the symbol of the token."
        },
        "totalSupply()": {
          "notice": "Returns the amount of tokens in existence."
        },
        "transfer(address,uint256)": {
          "notice": "Moves `amount` tokens from the caller's account to `to`."
        },
        "transferFrom(address,address,uint256)": {
          "notice": "Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."
        }
      },
      "version": 1
    }
  },
  "settings": {
    "remappings": [
      "@openzeppelin/=node_modules/@openzeppelin/",
      "eth-gas-reporter/=node_modules/eth-gas-reporter/",
      "forge-std/=lib/forge-std/src/",
      "hardhat/=node_modules/hardhat/"
    ],
    "optimizer": {
      "enabled": true,
      "runs": 10000
    },
    "metadata": {
      "bytecodeHash": "ipfs"
    },
    "compilationTarget": {
      "lib/forge-std/src/interfaces/IERC20.sol": "IERC20"
    },
    "evmVersion": "cancun",
    "libraries": {},
    "viaIR": true
  },
  "sources": {
    "lib/forge-std/src/interfaces/IERC20.sol": {
      "keccak256": "0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947",
      "urls": [
        "bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7",
        "dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"
      ],
      "license": "MIT"
    }
  },
  "version": 1
}