@frakters/nft-lending-v2
Version:
Client library for interacting with nft lenging solana program
158 lines (157 loc) • 4.65 kB
TypeScript
import { PublicKey } from '@solana/web3.js';
export interface AllAccounts {
collectionInfos: CollectionInfoView[];
deposits: DepositView[];
timeBasedLiquidityPools: TimeBasedLiquidityPoolView[];
priceBasedLiquidityPools: PriceBasedLiquidityPoolView[];
loans: LoanView[];
liquidationLots: LiquidationLotView[];
lotTickets: LotTicketView[];
nftAttempts: NftAttemptView[];
lendingStake: LendingStakeView[];
}
export interface LendingStakeView {
lendingStakePubkey: string;
stakeType: string;
loan: string;
stakeContract: string;
stakeConstractOptional: string;
stakeState: string;
identity: string;
dataA: string;
dataB: string;
dataC: string;
dataD: string;
totalHarvested: number;
totalHarvestedOptional: number;
lastTime: number;
}
export declare function decodedLendingStake(decodedLendingStake: any, address: PublicKey): LendingStakeView;
export interface CollectionInfoView {
collectionInfoPubkey: string;
creator: string;
liquidityPool: string;
pricingLookupAddress: string;
royaltyAddress: string;
royaltyFeeTime: number;
royaltyFeePrice: number;
loanToValue: number;
collaterizationRate: number;
availableLoanTypes: string;
expirationTime: number;
}
export declare function decodedCollectionInfo(decodedCollection: any, address: PublicKey): CollectionInfoView;
export interface TimeBasedLiquidityPoolView {
liquidityPoolPubkey: string;
id: number;
rewardInterestRateTime: number;
feeInterestRateTime: number;
rewardInterestRatePrice: number;
feeInterestRatePrice: number;
liquidityAmount: number;
liqOwner: string;
amountOfStaked: number;
userRewardsAmount: number;
apr: number;
cumulative: number;
lastTime: number;
oldCumulative: number;
period: number;
}
export declare function decodedTimeBasedLiquidityPool(decodedLiquidityPool: any, address: PublicKey): TimeBasedLiquidityPoolView;
export interface PriceBasedLiquidityPoolView {
liquidityPoolPubkey: string;
id: number;
baseBorrowRate: number;
variableSlope1: number;
variableSlope2: number;
utilizationRateOptimal: number;
reserveFactor: number;
reserveAmount: string;
liquidityAmount: number;
liqOwner: string;
amountOfStaked: number;
depositApr: number;
borrowApr: number;
borrowCumulative: number;
depositCumulative: number;
lastTime: number;
depositCommission: number;
borrowCommission: number;
}
export declare function decodedPriceBasedLiquidityPool(decodedLiquidityPool: any, address: PublicKey): PriceBasedLiquidityPoolView;
export interface DepositView {
depositPubkey: string;
liquidityPool: string;
user: string;
amount: number;
stakedAt: number;
stakedAtCumulative: number;
}
export declare function decodedDeposit(decodedDeposit: any, address: PublicKey): DepositView;
export interface LoanView {
loanPubkey: string;
user: string;
nftMint: string;
nftUserTokenAccount: string;
liquidityPool: string;
collectionInfo: string;
startedAt: number;
expiredAt: number;
finishedAt: number;
originalPrice: number;
amountToGet: number;
rewardAmount: number;
feeAmount: number;
royaltyAmount: number;
borrowedAtCumulative: number;
alreadyPaidBack: number;
loanStatus: string;
loanType: string;
}
export interface LotTicketView {
liquidationLot: string;
user: string;
usedNftAttempts: string;
ticketState: string;
publicKey: string;
}
export interface NftAttemptView {
nftMint: string;
blockedUntil: number;
attempts: number;
cycleStartedAt: number;
lastTriedAt: number;
publicKey: string;
}
export interface LiquidationLotView {
loan: string;
nftMint: string;
vaultNftTokenAccount: string;
lotNoFeesPrice: number;
winningChanceInBasePoints: number;
startedAt: number;
endingAt: number;
lotState: string;
ticketsCount: number;
gracePeriod: number;
graceFee: number;
publicKey: string;
}
export declare function decodedLoan(decodedLoan: any, address: PublicKey): LoanView;
export interface TokenView {
tokenAccountPubkey: string;
mint: string;
owner: string;
amount: number;
amountBN: any;
delegateOption: boolean;
delegate: string;
state: boolean;
isNativeOption: boolean;
isNative: number;
delegatedAmount: number;
closeAuthorityOption: boolean;
closeAuthority: string;
}
export declare function decodedTokenBuffersToUI(decodedTokenState: any, tokenAddress: PublicKey): TokenView;