///
///
///
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export type BigFractionBytes = {
value0: BigNumber;
value1: BigNumber;
value2: BigNumber;
value3: BigNumber;
padding: BigNumber;
padding1: BigNumber;
};
export declare const bigFractionBytesStruct: BeetStruct>;
export type ObligationLiquidity = {
borrowReserve: PublicKey;
cumulativeBorrowRateBsf: BigFractionBytes;
padding: BigNumber;
borrowedAmountSf: BigNumber;
marketValueSf: BigNumber;
borrowFactorAdjustedMarketValueSf: BigNumber;
padding2: BigNumber[];
};
export declare const obligationLiquidityStruct: BeetStruct>;
export type ObligationCollateral = {
depositReserve: PublicKey;
depositedAmount: BigNumber;
marketValueSf: BigNumber;
padding: BigNumber[];
};
export declare const obligationCollateralStruct: BeetStruct>;
export type LastUpdate = {
slot: BigNumber;
stale: number;
placeholder: number[];
};
export declare const lastUpdateStruct: BeetStruct>;
export type Obligation = {
buffer: Buffer;
tag: BigNumber;
lastUpdate: LastUpdate;
lendingMarket: PublicKey;
owner: PublicKey;
deposits: ObligationCollateral[];
lowestReserveDepositLtv: BigNumber;
depositedValueSf: BigNumber;
borrows: ObligationLiquidity[];
borrowFactorAdjustedDebtValueSf: BigNumber;
borrowedAssetsMarketValueSf: BigNumber;
allowedBorrowValueSf: BigNumber;
unhealthyBorrowValueSf: BigNumber;
depositsAssetTiers: number[];
borrowsAssetTiers: number[];
elevationGroup: number;
reserved: number;
referrer: PublicKey;
padding3: BigNumber[];
};
export declare const obligationStruct: BeetStruct>;
export type ElevationGroup = {
maxLiquidationBonusBps: number;
id: number;
ltvPct: number;
liquidationThresholdPct: number;
allowNewLoans: number;
reserved: number[];
padding: Buffer;
};
export declare const elevationGroupStruct: BeetStruct>;
export type LendingMarket = {
buffer: Buffer;
version: BigNumber;
bumpSeed: BigNumber;
lendingMarketOwner: PublicKey;
lendingMarketOwnerCached: PublicKey;
quoteCurrency: number[];
referralFeeBps: number;
emergencyMode: number;
reserved: number[];
priceRefreshTriggerToMaxAgePct: number;
liquidationMaxDebtCloseFactorPct: number;
insolvencyRiskUnhealthyLtvPct: number;
minFullLiquidationAmountThreshold: BigNumber;
maxLiquidatableDebtMarketValueAtOnce: BigNumber;
globalUnhealthyBorrowValue: BigNumber;
globalAllowedBorrowValue: BigNumber;
riskCouncil: PublicKey;
multiplierPointsTagBoost: number[];
elevationGroups: ElevationGroup[];
elevationGroupPadding: BigNumber[];
padding1: BigNumber[];
};
export declare const lendingMarketStruct: BeetStruct>;
export type WithdrawalCaps = {
configCapacity: BigNumber;
currentTotal: BigNumber;
lastIntervalStartTimestamp: BigNumber;
configIntervalLengthSeconds: BigNumber;
};
export declare const withdrawalCapsStruct: BeetStruct>;
export type PythConfiguration = {
price: PublicKey;
};
export declare const pythConfigurationStruct: BeetStruct>;
export type SwitchboardConfiguration = {
priceAggregator: PublicKey;
twapAggregator: PublicKey;
};
export declare const switchboardConfigurationStruct: BeetStruct>;
export type ScopeConfiguration = {
priceFeed: PublicKey;
priceChain: number[];
twapChain: number[];
};
export declare const scopeConfigurationStruct: BeetStruct>;
export type PriceHeuristic = {
lower: BigNumber;
upper: BigNumber;
exp: BigNumber;
};
export declare const priceHeuristicStruct: BeetStruct>;
export type TokenInfo = {
name: number[];
heuristic: PriceHeuristic;
maxTwapDivergenceBps: BigNumber;
maxAgePriceSeconds: BigNumber;
maxAgeTwapSeconds: BigNumber;
scopeConfiguration: ScopeConfiguration;
switchboardConfiguration: SwitchboardConfiguration;
pythConfiguration: PythConfiguration;
padding: Buffer;
};
export declare const tokenInfoStruct: BeetStruct>;
export type CurvePoint = {
utilizationRateBps: number;
borrowRateBps: number;
};
export declare const CurvePointStruct: BeetStruct>;
export type BorrowRateCurve = {
points: CurvePoint[];
};
export declare const borrowRateCurveStruct: FixableBeetStruct>;
export type ReserveFees = {
borrowFeeSf: BigNumber;
flashLoanFeeSf: BigNumber;
padding: number[];
};
export declare const reserveFeesStruct: BeetStruct>;
export type ReserveConfig = {
status: number;
assetTier: number;
reserved0: number[];
multiplierSideBoost: number[];
multiplierTagBoost: number[];
protocolTakeRatePct: number;
protocolLiquidationFeePct: number;
loanToValuePct: number;
liquidationThresholdPct: number;
minLiquidationBonusBps: number;
maxLiquidationBonusBps: number;
badDebtLiquidationBonusBps: number;
deleveragingMarginCallPeriodSecs: BigNumber;
deleveragingThresholdSlotsPerBps: BigNumber;
fees: ReserveFees;
borrowRateCurve: BorrowRateCurve;
borrowFactorPct: BigNumber;
depositLimit: BigNumber;
borrowLimit: BigNumber;
tokenInfo: TokenInfo;
depositWithdrawalCap: WithdrawalCaps;
debtWithdrawalCap: WithdrawalCaps;
elevationGroups: number[];
reserved1: number[];
};
export declare const reserveConfigStruct: FixableBeetStruct>;
export type ReserveCollateral = {
mintPubkey: PublicKey;
mintTotalSupply: BigNumber;
supplyVault: PublicKey;
padding1: BigNumber[];
padding2: BigNumber[];
};
export declare const reserveCollateralStruct: BeetStruct>;
export type ReserveLiquidity = {
mintPubkey: PublicKey;
supplyVault: PublicKey;
feeVault: PublicKey;
availableAmount: BigNumber;
borrowedAmountSf: BigNumber;
marketPriceSf: BigNumber;
marketPriceLastUpdatedTs: BigNumber;
mintDecimals: BigNumber;
depositLimitCrossedSlot: BigNumber;
borrowLimitCrossedSlot: BigNumber;
cumulativeBorrowRateBsf: BigFractionBytes;
accumulatedProtocolFeesSf: BigNumber;
accumulatedReferrerFeesSf: BigNumber;
pendingReferrerFeesSf: BigNumber;
absoluteReferralRateSf: BigNumber;
padding2: BigNumber[];
padding3: BigNumber[];
};
export declare const reserveLiquidityStruct: BeetStruct>;
export type Reserve = {
buffer: Buffer;
version: BigNumber;
lastUpdate: LastUpdate;
lendingMarket: PublicKey;
farmCollateral: PublicKey;
farmDebt: PublicKey;
liquidity: ReserveLiquidity;
reserveLiquidityPadding: BigNumber[];
collateral: ReserveCollateral;
reserveCollateralPadding: BigNumber[];
config: ReserveConfig;
configPadding: BigNumber[];
padding: BigNumber[];
};
export declare const reserveStruct: FixableBeetStruct>;