@orca-so/whirlpool-sdk
Version:
Whirlpool SDK for the Orca protocol.
50 lines (49 loc) • 2.35 kB
TypeScript
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;
};