goosefx-amm-sdk
Version:
SDK for the GooseFx AMM
35 lines (32 loc) • 1.49 kB
TypeScript
import { PublicKey, Connection, AccountMeta } from '@solana/web3.js';
import BN from 'bn.js';
/**
* Lending market authority seed
*/
declare const LENDING_MARKET_AUTH_SEED = "lma";
declare function getLendingMarketAuthority(lendingMarket: PublicKey, programId: PublicKey): [PublicKey, number];
declare function getGammaPoolDestinationCollateral(poolAddress: PublicKey, tokenMint: PublicKey, gammaId: PublicKey): PublicKey;
interface KaminoReserve {
address: PublicKey;
state: KaminoReserveAccount;
}
interface KaminoReserveAccount {
version: BN;
lendingMarket: PublicKey;
farmCollateral: PublicKey;
farmDebt: PublicKey;
liquidity: ReserveLiquidity;
collateral: ReserveCollateral;
}
interface ReserveLiquidity {
mintPubkey: PublicKey;
supplyVault: PublicKey;
feeVault: PublicKey;
}
interface ReserveCollateral {
mintPubkey: PublicKey;
supplyVault: PublicKey;
}
declare function getReservesForMarket(connection: Connection, marketAddress?: PublicKey, kaminoProgram?: PublicKey): Promise<Map<string, KaminoReserve>>;
declare function getReserveAccountsForWithdraw(pool: PublicKey, reserveA: KaminoReserve | undefined, reserveB: KaminoReserve | undefined, maxSharedTokenA: BN, maxSharedTokenB: BN, gammaProgram: PublicKey, kaminoProgram?: PublicKey): AccountMeta[];
export { KaminoReserve, LENDING_MARKET_AUTH_SEED, getGammaPoolDestinationCollateral, getLendingMarketAuthority, getReserveAccountsForWithdraw, getReservesForMarket };