@drift-labs/sdk
Version:
SDK for Drift Protocol
49 lines (44 loc) • 1.77 kB
TypeScript
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