UNPKG

@drift-labs/sdk

Version:
49 lines (44 loc) 1.77 kB
import { DriftMarketInfo, DriftPriorityFeeLevels } from './driftPriorityFeeMethod'; import { PriorityFeeSubscriberMapConfig } from './types'; /** * takes advantage of /batchPriorityFees endpoint from drift hosted priority fee service */ export declare class PriorityFeeSubscriberMap { frequencyMs: number; intervalId?: ReturnType<typeof setTimeout>; driftMarkets?: DriftMarketInfo[]; driftPriorityFeeEndpoint?: string; feesMap: Map<string, Map<number, DriftPriorityFeeLevels>>; constructor(config: PriorityFeeSubscriberMapConfig); private updateFeesMap; subscribe(): Promise<void>; unsubscribe(): Promise<void>; load(): Promise<void>; updateMarketTypeAndIndex(driftMarkets: DriftMarketInfo[]): void; getPriorityFees(marketType: string, marketIndex: number): DriftPriorityFeeLevels | undefined; } /** Example usage: async function main() { const driftMarkets: DriftMarketInfo[] = [ { marketType: 'perp', marketIndex: 0 }, { marketType: 'perp', marketIndex: 1 }, { marketType: 'spot', marketIndex: 2 } ]; const subscriber = new PriorityFeeSubscriberMap({ driftPriorityFeeEndpoint: 'https://dlob.drift.trade', frequencyMs: 5000, driftMarkets }); await subscriber.subscribe(); for (let i = 0; i < 20; i++) { await new Promise(resolve => setTimeout(resolve, 1000)); driftMarkets.forEach(market => { const fees = subscriber.getPriorityFees(market.marketType, market.marketIndex); console.log(`Priority fees for ${market.marketType} market ${market.marketIndex}:`, fees); }); } await subscriber.unsubscribe(); } main().catch(console.error); */ //# sourceMappingURL=priorityFeeSubscriberMap.d.ts.map