UNPKG

@drift-labs/sdk-browser

Version:
167 lines (166 loc) 5.76 kB
/// <reference types="bn.js" /> import { AddressLookupTableAccount, PublicKey, TransactionInstruction } from '@solana/web3.js'; import { JupiterClient, QuoteResponse } from '../jupiter/jupiterClient'; import { DriftClient } from '../driftClient'; import { BN } from '@coral-xyz/anchor'; import { User } from '../user'; import { DepositRecord } from '../types'; export type BSOL_STATS_API_RESPONSE = { success: boolean; stats?: { conversion: { bsol_to_sol: number; sol_to_bsol: number; }; apy: { base: number; blze: number; total: number; lending: number; liquidity: number; }; }; }; export type BSOL_EMISSIONS_API_RESPONSE = { success: boolean; emissions?: { lend: number; }; }; export declare function fetchBSolMetrics(): Promise<any>; export declare function fetchBSolDriftEmissions(): Promise<any>; export declare function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, driftClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }: { marketIndex: number; amount: BN; jupiterClient: JupiterClient; driftClient: DriftClient; price?: number; userAccountPublicKey?: PublicKey; forceMarinade?: boolean; onlyDirectRoutes?: boolean; jupiterQuote?: QuoteResponse; }): Promise<{ ixs: TransactionInstruction[]; lookupTables: AddressLookupTableAccount[]; method: 'jupiter' | 'marinade'; price?: number; }>; export declare function findBestMSolSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }: { amount: BN; jupiterClient: JupiterClient; driftClient: DriftClient; price?: number; userAccountPublicKey?: PublicKey; forceMarinade?: boolean; onlyDirectRoutes?: boolean; jupiterQuote?: QuoteResponse; }): Promise<{ ixs: TransactionInstruction[]; lookupTables: AddressLookupTableAccount[]; method: 'jupiter' | 'marinade'; price: number; }>; export declare function findBestJitoSolSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, onlyDirectRoutes, jupiterQuote, }: { amount: BN; jupiterClient: JupiterClient; driftClient: DriftClient; userAccountPublicKey?: PublicKey; onlyDirectRoutes?: boolean; jupiterQuote?: QuoteResponse; }): Promise<{ ixs: TransactionInstruction[]; lookupTables: AddressLookupTableAccount[]; method: 'jupiter' | 'marinade'; price?: number; }>; /** * Finds best Jupiter Swap instructions for a generic lstMint * * Without doing any extra steps like checking if you can get a better rate by staking directly with that LST platform */ export declare function findBestLstSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, onlyDirectRoutes, lstMarketIndex, jupiterQuote, }: { amount: BN; lstMint: PublicKey; lstMarketIndex: number; jupiterClient: JupiterClient; driftClient: DriftClient; userAccountPublicKey?: PublicKey; onlyDirectRoutes?: boolean; jupiterQuote?: QuoteResponse; }): Promise<{ ixs: TransactionInstruction[]; lookupTables: AddressLookupTableAccount[]; method: 'jupiter' | 'marinade'; }>; export type JITO_SOL_METRICS_ENDPOINT_RESPONSE = { tvl: { data: number; date: string; }[]; supply: { data: number; date: string; }[]; apy: { data: number; date: string; }[]; }; export declare function fetchJitoSolMetrics(): Promise<JITO_SOL_METRICS_ENDPOINT_RESPONSE>; export type MSOL_METRICS_ENDPOINT_RESPONSE = { total_active_balance: number; available_reserve_balance: number; emergency_cooling_down: number; tvl_sol: number; msol_directed_stake_sol: number; msol_directed_stake_msol: number; mnde_total_supply: number; mnde_circulating_supply: number; validators_count: number; stake_accounts: number; staking_sol_cap: number; m_sol_price: number; avg_staking_apy: number; msol_price_apy_14d: number; msol_price_apy_30d: number; msol_price_apy_90d: number; msol_price_apy_365d: number; reserve_pda: number; treasury_m_sol_amount: number; m_sol_mint_supply: number; m_sol_supply_state: number; liq_pool_sol: number; liq_pool_m_sol: number; liq_pool_value: number; liq_pool_token_supply: number; liq_pool_token_price: number; liq_pool_target: number; liq_pool_min_fee: number; liq_pool_max_fee: number; liq_pool_current_fee: number; liq_pool_treasury_cut: number; liq_pool_cap: number; total_cooling_down: number; last_stake_delta_epoch: number; circulating_ticket_count: number; circulating_ticket_balance: number; reward_fee_bp: number; lido_staking: number; lido_st_sol_price: number; lido_stsol_price_apy_14d: number; lido_stsol_price_apy_30d: number; lido_stsol_price_apy_90d: number; lido_stsol_price_apy_365d: number; stake_delta: number; bot_balance: number; treasury_farm_claim_mnde_balance: number; last_3_epochs_avg_duration_hs: number; mnde_votes_validators: number; }; export declare const fetchMSolMetrics: () => Promise<MSOL_METRICS_ENDPOINT_RESPONSE>; export declare function calculateSolEarned({ marketIndex, user, depositRecords, }: { marketIndex: number; user: User; depositRecords: DepositRecord[]; }): Promise<BN>; export declare function calculateEstimatedSuperStakeLiquidationPrice(lstDepositAmount: number, lstMaintenanceAssetWeight: number, solBorrowAmount: number, solMaintenanceLiabilityWeight: number, lstPriceRatio: number): number;