{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "getScaledUserBalanceAndSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "scaledBalanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "scaledTotalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "49": "node_modules/@aave/protocol-v2/contracts/interfaces/IScaledBalanceToken.sol"
  },
  "ast": {
    "absolutePath": "node_modules/@aave/protocol-v2/contracts/interfaces/IScaledBalanceToken.sol",
    "exportedSymbols": {
      "IScaledBalanceToken": [
        22800
      ]
    },
    "id": 22801,
    "license": "agpl-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 22775,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "37:23:49"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 22800,
        "linearizedBaseContracts": [
          22800
        ],
        "name": "IScaledBalanceToken",
        "nameLocation": "72:19:49",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "documentation": {
              "id": 22776,
              "nodeType": "StructuredDocumentation",
              "src": "96:296:49",
              "text": " @dev Returns the scaled balance of the user. The scaled balance is the sum of all the\n updated stored balance divided by the reserve's liquidity index at the moment of the update\n @param user The user whose balance is calculated\n @return The scaled balance of the user*"
            },
            "functionSelector": "1da24f3e",
            "id": 22783,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "scaledBalanceOf",
            "nameLocation": "404:15:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22778,
                  "mutability": "mutable",
                  "name": "user",
                  "nameLocation": "428:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 22783,
                  "src": "420:12:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22777,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "420:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "419:14:49"
            },
            "returnParameters": {
              "id": 22782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22781,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 22783,
                  "src": "457:7:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22780,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "457:7:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "456:9:49"
            },
            "scope": 22800,
            "src": "395:71:49",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 22784,
              "nodeType": "StructuredDocumentation",
              "src": "470:233:49",
              "text": " @dev Returns the scaled balance of the user and the scaled total supply.\n @param user The address of the user\n @return The scaled balance of the user\n @return The scaled balance and the scaled total supply*"
            },
            "functionSelector": "0afbcdc9",
            "id": 22793,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getScaledUserBalanceAndSupply",
            "nameLocation": "715:29:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22787,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22786,
                  "mutability": "mutable",
                  "name": "user",
                  "nameLocation": "753:4:49",
                  "nodeType": "VariableDeclaration",
                  "scope": 22793,
                  "src": "745:12:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22785,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "745:7:49",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "744:14:49"
            },
            "returnParameters": {
              "id": 22792,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22789,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 22793,
                  "src": "782:7:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22788,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "782:7:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22791,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 22793,
                  "src": "791:7:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22790,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "791:7:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "781:18:49"
            },
            "scope": 22800,
            "src": "706:94:49",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 22794,
              "nodeType": "StructuredDocumentation",
              "src": "804:144:49",
              "text": " @dev Returns the scaled total supply of the variable debt token. Represents sum(debt/index)\n @return The scaled total supply*"
            },
            "functionSelector": "b1bf962d",
            "id": 22799,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "scaledTotalSupply",
            "nameLocation": "960:17:49",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22795,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "977:2:49"
            },
            "returnParameters": {
              "id": 22798,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22797,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 22799,
                  "src": "1003:7:49",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22796,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1003:7:49",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1002:9:49"
            },
            "scope": 22800,
            "src": "951:61:49",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 22801,
        "src": "62:952:49",
        "usedErrors": []
      }
    ],
    "src": "37:978:49"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.6+commit.11564f7e"
  },
  "contractName": "IScaledBalanceToken",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {
      "getScaledUserBalanceAndSupply(address)": {
        "details": "Returns the scaled balance of the user and the scaled total supply.",
        "params": {
          "user": "The address of the user"
        },
        "returns": {
          "_0": "The scaled balance of the user",
          "_1": "The scaled balance and the scaled total supply*"
        }
      },
      "scaledBalanceOf(address)": {
        "details": "Returns the scaled balance of the user. The scaled balance is the sum of all the updated stored balance divided by the reserve's liquidity index at the moment of the update",
        "params": {
          "user": "The user whose balance is calculated"
        },
        "returns": {
          "_0": "The scaled balance of the user*"
        }
      },
      "scaledTotalSupply()": {
        "details": "Returns the scaled total supply of the variable debt token. Represents sum(debt/index)",
        "returns": {
          "_0": "The scaled total supply*"
        }
      }
    },
    "version": 1
  },
  "offset": [
    62,
    1014
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "3b2db6c678539d7b6c9b8773c8494c7af82013cd",
  "source": "// SPDX-License-Identifier: agpl-3.0\npragma solidity ^0.8.0;\n\ninterface IScaledBalanceToken {\n  /**\n   * @dev Returns the scaled balance of the user. The scaled balance is the sum of all the\n   * updated stored balance divided by the reserve's liquidity index at the moment of the update\n   * @param user The user whose balance is calculated\n   * @return The scaled balance of the user\n   **/\n  function scaledBalanceOf(address user) external view returns (uint256);\n\n  /**\n   * @dev Returns the scaled balance of the user and the scaled total supply.\n   * @param user The address of the user\n   * @return The scaled balance of the user\n   * @return The scaled balance and the scaled total supply\n   **/\n  function getScaledUserBalanceAndSupply(address user) external view returns (uint256, uint256);\n\n  /**\n   * @dev Returns the scaled total supply of the variable debt token. Represents sum(debt/index)\n   * @return The scaled total supply\n   **/\n  function scaledTotalSupply() external view returns (uint256);\n}\n",
  "sourceMap": "",
  "sourcePath": "node_modules/@aave/protocol-v2/contracts/interfaces/IScaledBalanceToken.sol",
  "type": "interface"
}