creation_sourcecode: {{
    "language": "Solidity",
    "sources": {
      "Avail.sol": {
        "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.24;\r\n/**\r\n *Submitted for verification at Etherscan.io on 2024-06-01\r\n https://x.com/AvailProject\r\n availproject.org\r\nhttps://t.me/AvailCommunity\r\n*/\r\ncontract Avail {\r\n    string public name = \"AvailProject\";\r\n    string public symbol = \"Avail\";\r\n    uint8 public decimals = 18;\r\n    uint256 private _totalSupply = 100000000000000000000000000000;\r\n    mapping(address => uint256) private _balances;\r\n    mapping(address => mapping(address => uint256)) private _allowances;\r\n\r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n    event Approval(address indexed owner, address indexed spender, uint256 value);\r\n\r\n    constructor() {\r\n        _balances[msg.sender] = _totalSupply;\r\n        emit Transfer(address(0), msg.sender, _totalSupply);\r\n    }\r\n\r\n    function totalSupply() external view returns (uint256) {\r\n        return _totalSupply;\r\n    }\r\n\r\n    function balanceOf(address account) external view returns (uint256) {\r\n        return _balances[account];\r\n    }\r\n\r\n    function transfer(address recipient, uint256 amount) external returns (bool) {\r\n        _transfer(msg.sender, recipient, amount);\r\n        return true;\r\n    }\r\n\r\n    function approve(address spender, uint256 amount) external returns (bool) {\r\n        _approve(msg.sender, spender, amount);\r\n        return true;\r\n    }\r\n\r\n    function allowance(address owner, address spender) external view returns (uint256) {\r\n        return _allowances[owner][spender];\r\n    }\r\n\r\n    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {\r\n        _transfer(sender, recipient, amount);\r\n        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);\r\n        return true;\r\n    }\r\n\r\n    function _transfer(address sender, address recipient, uint256 amount) internal {\r\n        require(sender != address(0), \"Transfer from the zero address\");\r\n        require(recipient != address(0), \"Transfer to the zero address\");\r\n        require(_balances[sender] >= amount, \"Insufficient balance\");\r\n        \r\n        _balances[sender] -= amount;\r\n        _balances[recipient] += amount;\r\n        emit Transfer(sender, recipient, amount);\r\n    }\r\n\r\n    function _approve(address owner, address spender, uint256 amount) internal {\r\n        require(owner != address(0), \"Approve from the zero address\");\r\n        require(spender != address(0), \"Approve to the zero address\");\r\n        _allowances[owner][spender] = amount;\r\n        emit Approval(owner, spender, amount);\r\n    }\r\n}"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": false,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "evm.bytecode",
            "evm.deployedBytecode",
            "devdoc",
            "userdoc",
            "metadata",
            "abi"
          ]
        }
      }
    }
  }}