@orca-so/whirlpool-sdk
Version:
Whirlpool SDK for the Orca protocol.
58 lines (57 loc) • 2.84 kB
TypeScript
import { TransactionBuilder, WhirlpoolData } from "@orca-so/whirlpool-client-sdk";
import { Address } from "@project-serum/anchor";
import { PublicKey } from "@solana/web3.js";
import { InitPoolTxParam, InitRewardTxParam, SetRewardAuthorityTxParam, SetRewardEmissionsTxParam } from "../admin/public";
import { WhirlpoolContext } from "../context";
import { MultiTransactionBuilder } from "../utils/public";
import { Whirlpool } from "../whirlpool";
import { OpenPositionQuote, ClosePositionQuote, SwapQuote } from "./public";
import { LiquidityDistribution } from "./ux/liquidity-distribution";
export declare class WhirlpoolImpl implements Whirlpool {
private readonly ctx;
private readonly address;
constructor(ctx: WhirlpoolContext, address: PublicKey);
getAddress(): PublicKey;
getAccount(refresh: boolean): Promise<WhirlpoolData | null>;
init(param: InitPoolTxParam): {
tx: TransactionBuilder;
address: PublicKey;
};
setFeeRate(feeRate: number): Promise<TransactionBuilder>;
setProtocolFeeRate(protocolFeeRate: number): Promise<TransactionBuilder>;
collectProtocolFee(): Promise<TransactionBuilder>;
initReward(param: InitRewardTxParam): {
tx: TransactionBuilder;
rewardVault: PublicKey;
};
setRewardAuthority(param: SetRewardAuthorityTxParam): TransactionBuilder;
setRewardEmissions(param: SetRewardEmissionsTxParam): Promise<TransactionBuilder>;
getLiquidityDistribution(tickLower: number, tickUpper: number, refresh?: boolean): Promise<LiquidityDistribution>;
/**
* Construct a transaction for opening an new position
*/
openPosition(quote: OpenPositionQuote): Promise<{
tx: MultiTransactionBuilder;
mint: PublicKey;
}>;
getOpenPositionWithMetadataTx(quote: OpenPositionQuote): Promise<{
tx: MultiTransactionBuilder;
mint: PublicKey;
}>;
getOpenPositionWithOptMetadataTx(quote: OpenPositionQuote, withMetadata?: boolean): Promise<{
tx: MultiTransactionBuilder;
mint: PublicKey;
}>;
initTickArray(startTick: number): Promise<TransactionBuilder>;
closePosition(quote: ClosePositionQuote): Promise<TransactionBuilder>;
getLowestInitializedTickArrayTickIndex(ctx: WhirlpoolContext, poolAddress: Address, tickSpacing: number): Promise<number>;
getHighestInitializedTickArrayTickIndex(ctx: WhirlpoolContext, poolAddress: Address, tickSpacing: number): Promise<number>;
initTickArrayGap(): Promise<MultiTransactionBuilder>;
/**
* Construct a transaction for a swap
*/
swap(quote: SwapQuote): Promise<MultiTransactionBuilder>;
private getDefaultSqrtPriceLimit;
private getTickArrayPublicKeysForSwap;
setRewardAuthorityBySuperAuthority(newRewardAuthority: Address, rewardIndex: number): TransactionBuilder;
}