UNPKG

@orca-so/whirlpool-sdk

Version:

Whirlpool SDK for the Orca protocol.

50 lines (49 loc) 2.35 kB
import { Address, BN } from "@project-serum/anchor"; import { PublicKey } from "@solana/web3.js"; import { ClosePositionQuote, OpenPositionQuote, SwapQuote } from "./quotes/types"; import { MultiTransactionBuilder } from "./utils/public/multi-transaction-builder"; import { TransactionBuilder, WhirlpoolData, TickSpacing } from "@orca-so/whirlpool-client-sdk"; import { WhirlpoolContext } from "./context"; import { LiquidityDistribution } from "./impl/liquidity-distribution"; export declare type Whirlpool = { getAddress(): PublicKey; getAccount(refresh: boolean): Promise<WhirlpoolData | null>; getLiquidityDistribution(tickLower: number, tickUpper: number, refresh: boolean): Promise<LiquidityDistribution>; init(param: InitPoolTxParam): { tx: TransactionBuilder; address: PublicKey; }; openPosition(quote: OpenPositionQuote): Promise<{ tx: MultiTransactionBuilder; mint: PublicKey; }>; closePosition(quote: ClosePositionQuote): Promise<TransactionBuilder>; swap(quote: SwapQuote): Promise<MultiTransactionBuilder>; initTickArray(startTick: number): Promise<TransactionBuilder>; initTickArrayGap(): Promise<MultiTransactionBuilder>; setFeeRate(feeRate: number): Promise<TransactionBuilder>; setProtocolFeeRate(protocolFeeRate: number): Promise<TransactionBuilder>; collectProtocolFee(): Promise<TransactionBuilder>; initReward(param: InitRewardTxParam): { tx: TransactionBuilder; rewardVault: PublicKey; }; setRewardAuthority(newRewardAuthority: Address, rewardIndex: number): TransactionBuilder; setRewardEmissions(rewardIndex: number, emissionsPerSecondX64: BN): Promise<TransactionBuilder>; setRewardAuthorityBySuperAuthority(newRewardAuthority: Address, rewardIndex: number): TransactionBuilder; }; export declare class WhirlpoolInstance { static fromAddress(ctx: WhirlpoolContext, address: Address): Whirlpool; static fromTokens(ctx: WhirlpoolContext, tokenMintA: Address, tokenMintB: Address, tickSpacing: TickSpacing): Whirlpool; } export declare type InitPoolTxParam = { initSqrtPrice: BN; tokenMintA: Address; tokenMintB: Address; tickSpacing: TickSpacing; }; export declare type InitRewardTxParam = { rewardAuthority: Address; rewardMint: Address; rewardIndex: number; };