@orca-so/whirlpools-sdk
Version:
Typescript SDK to interact with Orca's Whirlpool program.
41 lines (40 loc) • 2.24 kB
TypeScript
import { BN } from "@coral-xyz/anchor";
import type { AdaptiveFeeInfo } from "../public";
import type { AdaptiveFeeConstantsData, AdaptiveFeeVariablesData } from "../../types/public";
export declare abstract class FeeRateManager {
static new(aToB: boolean, currentTickIndex: number, timestamp: BN, staticFeeRate: number, adaptiveFeeInfo: AdaptiveFeeInfo | null): FeeRateManager;
abstract updateVolatilityAccumulator(): void;
abstract getTotalFeeRate(): number;
abstract getBoundedSqrtPriceTarget(sqrtPrice: BN, currLiquidity: BN): {
boundedSqrtPriceTarget: BN;
adaptiveFeeUpdateSkipped: boolean;
};
abstract advanceTickGroup(): void;
abstract advanceTickGroupAfterSkip(sqrtPrice: BN, nextTickSqrtPrice: BN, nextTickIndex: number): void;
abstract updateMajorSwapTimestamp(preSqrtPrice: BN, postSqrtPrice: BN): void;
abstract getNextAdaptiveFeeInfo(): AdaptiveFeeInfo | null;
}
export declare class AdaptiveFeeVariables {
private lastReferenceUpdateTimestamp;
private lastMajorSwapTimestamp;
private tickGroupIndexReference;
private volatilityReference;
private volatilityAccumulator;
constructor(lastReferenceUpdateTimestamp: BN, lastMajorSwapTimestamp: BN, tickGroupIndexReference: number, volatilityReference: number, volatilityAccumulator: number);
getCoreTickGroupRange(adaptiveFeeConstants: AdaptiveFeeConstantsData): {
coreTickGroupRangeLowerBound: {
tickGroupIndex: number;
sqrtPrice: BN;
} | null;
coreTickGroupRangeUpperBound: {
tickGroupIndex: number;
sqrtPrice: BN;
} | null;
};
updateReference(tickGroupIndex: number, timestamp: BN, adaptiveFeeConstants: AdaptiveFeeConstantsData): void;
updateVolatilityAccumulator(tickGroupIndex: number, adaptiveFeeConstants: AdaptiveFeeConstantsData): void;
updateMajorSwapTimestamp(preSqrtPrice: BN, postSqrtPrice: BN, timestamp: BN, adaptiveFeeConstants: AdaptiveFeeConstantsData): void;
computeAdaptiveFeeRate(adaptiveFeeConstants: AdaptiveFeeConstantsData): number;
toData(): AdaptiveFeeVariablesData;
static isMajorSwap(preSqrtPrice: BN, postSqrtPrice: BN, majorSwapThresholdTicks: number): boolean;
}