UNPKG

@frakters/nft-lending-v2

Version:

Client library for interacting with nft lenging solana program

158 lines (157 loc) 4.65 kB
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;