[
  {
    "type": "function",
    "name": "auctionInfo",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "borrower_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "kicker_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "bondFactor_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "bondSize_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "kickTime_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "referencePrice_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "neutralPrice_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "debtToCollateral_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "head_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "next_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "prev_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "auctionStatus",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "borrower_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "kickTime_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "collateral_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "debtToCover_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "isCollateralized_",
        "type": "bool",
        "internalType": "bool"
      },
      {
        "name": "price_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "neutralPrice_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "referencePrice_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "debtToCollateral_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "bondFactor_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "availableQuoteTokenAmount",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "amount_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "borrowFeeRate",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "borrowerInfo",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "borrower_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "debt_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "collateral_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "t0Np_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "thresholdPrice_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "bucketInfo",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "index_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "price_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "quoteTokens_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "collateral_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "bucketLP_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "scale_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "exchangeRate_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "depositFeeRate",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "hpb",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "hpbIndex",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "htp",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "htp_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "indexToPrice",
    "inputs": [
      {
        "name": "index_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "lenderInterestMargin",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "lenderInterestMargin_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "lpToCollateral",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "lp_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "index_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "collateralAmount_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "lpToQuoteTokens",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "lp_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "index_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "quoteAmount_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "lup",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "lupIndex",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "multicall",
    "inputs": [
      {
        "name": "data",
        "type": "bytes[]",
        "internalType": "bytes[]"
      }
    ],
    "outputs": [
      {
        "name": "results",
        "type": "bytes[]",
        "internalType": "bytes[]"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "poolLoansInfo",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "poolSize_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "loansCount_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "maxBorrower_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "pendingInflator_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "pendingInterestFactor_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "poolPricesInfo",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "hpb_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "hpbIndex_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "htp_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "htpIndex_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "lup_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "lupIndex_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "poolReservesInfo",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "reserves_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "claimableReserves_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "claimableReservesRemaining_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "auctionPrice_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "timeRemaining_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "poolUtilizationInfo",
    "inputs": [
      {
        "name": "ajnaPool_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "poolMinDebtAmount_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "poolCollateralization_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "poolActualUtilization_",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "poolTargetUtilization_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "priceToIndex",
    "inputs": [
      {
        "name": "price_",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "error",
    "name": "BucketIndexOutOfBounds",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BucketPriceOutOfBounds",
    "inputs": []
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__CeilOverflow",
    "inputs": [
      {
        "name": "x",
        "type": "int256",
        "internalType": "int256"
      }
    ]
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__DivInputTooSmall",
    "inputs": []
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__DivOverflow",
    "inputs": [
      {
        "name": "rAbs",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__Exp2InputTooBig",
    "inputs": [
      {
        "name": "x",
        "type": "int256",
        "internalType": "int256"
      }
    ]
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__FromIntOverflow",
    "inputs": [
      {
        "name": "x",
        "type": "int256",
        "internalType": "int256"
      }
    ]
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__FromIntUnderflow",
    "inputs": [
      {
        "name": "x",
        "type": "int256",
        "internalType": "int256"
      }
    ]
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__LogInputTooSmall",
    "inputs": [
      {
        "name": "x",
        "type": "int256",
        "internalType": "int256"
      }
    ]
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__MulInputTooSmall",
    "inputs": []
  },
  {
    "type": "error",
    "name": "PRBMathSD59x18__MulOverflow",
    "inputs": [
      {
        "name": "rAbs",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "PRBMath__MulDivFixedPointOverflow",
    "inputs": [
      {
        "name": "prod1",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "PRBMath__MulDivOverflow",
    "inputs": [
      {
        "name": "prod1",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "denominator",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  }
]