/// import { MarinadeConfig } from './config/marinade-config'; import { BN, Provider, web3 } from '@project-serum/anchor'; import { MarinadeState } from './marinade-state/marinade-state'; import { DepositOptions, MarinadeResult } from './marinade.types'; import { MarinadeFinanceProgram } from './programs/marinade-finance-program'; import { MarinadeReferralProgram } from './programs/marinade-referral-program'; import { MarinadeReferralPartnerState } from './marinade-referral-state/marinade-referral-partner-state'; import { MarinadeReferralGlobalState } from './marinade-referral-state/marinade-referral-global-state'; import { TicketAccount } from './marinade-state/borsh/ticket-account'; export declare class Marinade { readonly config: MarinadeConfig; constructor(config?: MarinadeConfig); readonly provider: Provider; /** * The main Marinade Program */ readonly marinadeFinanceProgram: MarinadeFinanceProgram; /** * The Marinade Program for referral partners */ readonly marinadeReferralProgram: MarinadeReferralProgram; private deriveTokenAccountAddress; private isReferralProgram; private provideReferralOrMainProgram; /** * Fetch the Marinade's internal state */ getMarinadeState(): Promise; /** * Fetch the Marinade referral partner's state */ getReferralPartnerState(): Promise; /** * Fetch the Marinade referral program's global state */ getReferralGlobalState(): Promise; /** * Returns a transaction with the instructions to * Add liquidity to the liquidity pool and receive LP tokens * * @param {BN} amountLamports - The amount of lamports added to the liquidity pool */ addLiquidity(amountLamports: BN): Promise; /** * Returns a transaction with the instructions to * Burn LP tokens and get SOL and mSOL back from the liquidity pool * * @param {BN} amountLamports - The amount of LP tokens burned */ removeLiquidity(amountLamports: BN): Promise; /** * Returns a transaction with the instructions to * Stake SOL in exchange for mSOL * * @param {BN} amountLamports - The amount lamports staked * @param {DepositOptions=} options - Additional deposit options */ deposit(amountLamports: BN, options?: DepositOptions): Promise; /** * Returns a transaction with the instructions to * Swap your mSOL to get back SOL immediately using the liquidity pool * * @param {BN} amountLamports - The amount of mSOL exchanged for SOL * @param associatedMSolTokenAccountAddress */ liquidUnstake(amountLamports: BN, associatedMSolTokenAccountAddress?: web3.PublicKey): Promise; /** * Returns a transaction with the instructions to * Order a delayed unstake of mSOL and create a ticket account to claim later * * @param {BN} amountLamports - The amount of mSOL exchanged for SOL * @param associatedMSolTokenAccountAddress */ orderUnstake(amountLamports: BN, associatedMSolTokenAccountAddress?: web3.PublicKey): Promise; /** * Returns a transaction with the instructions to * Deposit a delegated stake account. * Note that the stake must be fully activated and the validator must be known to Marinade * * @param {web3.PublicKey} stakeAccountAddress - The account to be deposited */ depositStakeAccount(stakeAccountAddress: web3.PublicKey): Promise; /** * Returns a transaction with the instructions to * Liquidate a delegated stake account. * Note that the stake must be fully activated and the validator must be known to Marinade * and that the transaction should be executed immediately after creation. * * @param {web3.PublicKey} stakeAccountAddress - The account to be deposited * @param {BN} mSolToKeep - Optional amount of mSOL lamports to keep */ liquidateStakeAccount(stakeAccountAddress: web3.PublicKey, mSolToKeep?: BN): Promise; /** * @todo */ getDelayedUnstakeTickets(beneficiary?: web3.PublicKey): Promise>; getDelayedUnstakeTicket(ticketAccountAddress: web3.PublicKey): Promise; /** * Returns estimated Due date for an unstake ticket created now * */ getEstimatedUnstakeTicketDueDate(): Promise; }