@drift-labs/sdk
Version:
SDK for Drift Protocol
47 lines (46 loc) • 2.01 kB
TypeScript
import { Connection, PublicKey } from '@solana/web3.js';
import { PriorityFeeMethod, PriorityFeeStrategy, PriorityFeeSubscriberConfig } from './types';
import { AverageOverSlotsStrategy } from './averageOverSlotsStrategy';
import { MaxOverSlotsStrategy } from './maxOverSlotsStrategy';
import { HeliusPriorityFeeLevels, HeliusPriorityLevel } from './heliusPriorityFeeMethod';
import { DriftMarketInfo } from './driftPriorityFeeMethod';
export declare class PriorityFeeSubscriber {
connection: Connection;
frequencyMs: number;
addresses: string[];
driftMarkets?: DriftMarketInfo[];
customStrategy?: PriorityFeeStrategy;
averageStrategy: AverageOverSlotsStrategy;
maxStrategy: MaxOverSlotsStrategy;
priorityFeeMethod: PriorityFeeMethod;
lookbackDistance: number;
maxFeeMicroLamports?: number;
priorityFeeMultiplier?: number;
driftPriorityFeeEndpoint?: string;
heliusRpcUrl?: string;
lastHeliusSample?: HeliusPriorityFeeLevels;
intervalId?: ReturnType<typeof setTimeout>;
latestPriorityFee: number;
lastCustomStrategyResult: number;
lastAvgStrategyResult: number;
lastMaxStrategyResult: number;
lastSlotSeen: number;
constructor(config: PriorityFeeSubscriberConfig);
subscribe(): Promise<void>;
private loadForSolana;
private loadForHelius;
private loadForDrift;
getMaxPriorityFee(): number | undefined;
updateMaxPriorityFee(newMaxFee: number | undefined): void;
getPriorityFeeMultiplier(): number;
updatePriorityFeeMultiplier(newPriorityFeeMultiplier: number): void;
updateCustomStrategy(newStrategy: PriorityFeeStrategy): void;
getHeliusPriorityFeeLevel(level?: HeliusPriorityLevel): number;
getCustomStrategyResult(): number;
getAvgStrategyResult(): number;
getMaxStrategyResult(): number;
load(): Promise<void>;
unsubscribe(): Promise<void>;
updateAddresses(addresses: PublicKey[]): void;
updateMarketTypeAndIndex(driftMarkets: DriftMarketInfo[]): void;
}