UNPKG

@frakt-protocol/frakt-sdk

Version:

Frakt SDK for interacting with frakt.xyz protocols

288 lines (287 loc) 7.22 kB
export declare const TIME_BASED_LOAN_TYPE = "timeBased"; export declare const PRICE_BASED_LOAN_TYPE = "priceBased"; 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 interface StakeEntryView { bump: number; kind: number; pool: string; amount: number; stakeMint: string; lastStaker: string; lastStakedAt: number; lastUpdatedAt: number; totalStakeSeconds: number; usedStakeSeconds: number; cooldownStartSeconds?: number; } export interface RewardEntryView { bump: number; stakeEntry: string; rewardDistributor: string; rewardSecondsReceived: number; multiplier: number; } export interface RewardDistributorView { bump: number; stakePool: string; kind: number; authority: string; identifier: number; rewardMint: string; rewardAmount: number; rewardDurationSeconds: number; rewardsIssued: string; defaultMultiplier: number; multiplierDecimals: number; claimRewardsPaymentInfo: string; maxRewardSecondsReceived?: number; } export interface StakePoolView { bump: number; authority: string; totalStaked: number; resetOnUnstake: boolean; cooldownSeconds?: number; minStakeSeconds?: number; endDate?: number; stakePaymentInfo: string; unstakePaymentInfo: string; requiresAuthorization: boolean; identifier: string; } 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 interface FarmerView { farmerPubkey: string; farm: string; identity: string; vault: string; state: string; gemsStaked: number; minStakingEndsTs: number; cooldownEndsTs: number; rewardA: GemFarmRewardView; rewardB: GemFarmRewardView; } export interface GemFarmRewardView { paidOutReward: number; accruedReward: number; variableRate: number; fixedRate: FixedRateView; } export interface FixedRateView { beginStakingTs: number; beginScheduleTs: number; lastUpdatedTs: number; promisedSchedule: PromisedSchedule; promisedDuration: number; } export interface PromisedSchedule { baseRate: number; tier1: number; tier2: number; tier3: number; denominator: number; } 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 interface PriceBasedLiquidityPoolView { liquidityPoolPubkey: string; id: number; baseBorrowRate: number; variableSlope1: number; variableSlope2: number; utilizationRateOptimal: number; reserveFactor: number; reserveAmount: number; liquidityAmount: number; liqOwner: string; amountOfStaked: number; depositApr: number; borrowApr: number; borrowCumulative: number; depositCumulative: number; lastTime: number; depositCommission: number; borrowCommission: number; } export interface DepositView { depositPubkey: string; liquidityPool: string; user: string; amount: number; stakedAt: number; stakedAtCumulative: number; } 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; loanStatus: string; loanType: string; } export interface BorrowNft { mint: string; name: string; imageUrl: string; valuation: string; maxLoanValue: string; timeBased: { returnPeriodDays: number; ltvPercents: number; fee: string; feeDiscountPercents: string; repayValue: string; liquidityPoolPubkey: string; loanValue: string; }; priceBased?: { liquidityPoolPubkey: string; ltvPercents: number; borrowAPRPercents: number; collaterizationRate: number; }; } export interface LiquidityPool { pubkey: string; isPriceBased: boolean; name: string; imageUrl: string[]; totalLiquidity: number; totalBorrowed: number; utilizationRate: number; depositApr: number; borrowApr?: number; activeloansAmount: number; collectionsAmount: number; userDeposit?: { pubkey: string; harvestAmount: number; depositAmount: number; depositAmountLamports: string; }; userActiveLoansAmount?: number; } export interface Loan { pubkey: string; mint: string; name: string; imageUrl: string; isPriceBased: boolean; loanValue: number; repayValue: number; repayValueLamports: string; startedAt: string; expiredAt?: string; liquidityPool: string; collectionInfo: string; royaltyAddress: string; liquidationPrice?: number; valuation?: number; health?: number; } export interface LiquidityPoolView { 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 interface LoanData { collectionsInfo: CollectionInfoView[]; deposits: DepositView[]; liquidityPool: LiquidityPoolView; loans: LoanView[]; } 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; }