/// import { AccountInfo, PublicKey } from "@solana/web3.js"; import Big from "big.js"; import * as BufferLayout from "@solana/buffer-layout"; import { Lamport, Percentage } from "../models/basic"; import { ExchangeRate } from "../models/ExchangeRate"; import { MintId } from "../models/MintId"; import { StakingPoolId } from "../models/staking"; import { TokenAccountId } from "../models/TokenAccountId"; import { SlotInfo } from "./SlotInfo"; import BN from "bn.js"; export interface ReserveData { version: number; lastUpdate: SlotInfo; lendingMarket: PublicKey; liquidity: ReserveLiquidity; collateral: ReserveCollateral; config: ReserveConfig; } export interface ReserveLiquidity { mintPubkey: MintId; mintDecimals: number; supplyPubkey: TokenAccountId; feeReceiver: TokenAccountId; oracleOption: number; oraclePubkey: PublicKey; availableAmount: Lamport; borrowedAmountWads: Lamport; cumulativeBorrowRateWads: ExchangeRate; marketPrice: Big; } export interface ReserveCollateral { mintPubkey: MintId; mintTotalSupply: Lamport; supplyPubkey: TokenAccountId; } export interface ReserveConfigProto { optimalUtilizationRate: number; loanToValueRatio: number; liquidationBonus: number; liquidationThreshold: number; minBorrowRate: number; optimalBorrowRate: number; maxBorrowRate: number; fees: { borrowFeeWad: BN; flashLoanFeeWad: BN; hostFeePercentage: number; }; stakingPoolOption: number; stakingPool: PublicKey; } export declare const ReserveConfigProtoLayout: (property: string) => BufferLayout.Structure; export interface ReserveConfig { optimalUtilizationRate: Percentage; loanToValueRatio: Percentage; liquidationBonus: Percentage; liquidationThreshold: Percentage; minBorrowRate: Percentage; optimalBorrowRate: Percentage; maxBorrowRate: Percentage; fees: { borrowFeeWad: Big; flashLoanFeeWad: Big; hostFeePercentage: number; }; stakingPoolId: StakingPoolId | undefined; } export declare const ReserveLiquidityLayout: (property: string) => BufferLayout.Structure; export declare const ReserveCollateralLayout: (property: string) => BufferLayout.Structure; export declare const ReserveFeesLayout: (property: string) => BufferLayout.Structure; export declare const ReserveConfigLayout: (property: string) => BufferLayout.Structure; export declare const ReserveLayout: BufferLayout.Structure; export declare const isReserve: (info: AccountInfo) => boolean; export declare const RESERVE_DATA_SIZE: number; //# sourceMappingURL=ReserveData.d.ts.map