UNPKG

@ox-fun/drift-sdk

Version:

SDK for Drift Protocol

36 lines (32 loc) 1.32 kB
import { Connection, PublicKey } from '@solana/web3.js'; import { SolanaPriorityFeeResponse } from './solanaPriorityFeeMethod'; import { HeliusPriorityFeeResponse } from './heliusPriorityFeeMethod'; export interface PriorityFeeStrategy { // calculate the priority fee for a given set of samples. // expect samples to be sorted in descending order (by slot) calculate( samples: SolanaPriorityFeeResponse[] | HeliusPriorityFeeResponse ): number; } export enum PriorityFeeMethod { SOLANA = 'solana', HELIUS = 'helius', } export type PriorityFeeSubscriberConfig = { /// rpc connection, optional if using priorityFeeMethod.HELIUS connection?: Connection; /// frequency to make RPC calls to update priority fee samples, in milliseconds frequencyMs: number; /// addresses you plan to write lock, used to determine priority fees addresses: PublicKey[]; /// custom strategy to calculate priority fees, defaults to AVERAGE customStrategy?: PriorityFeeStrategy; /// method for fetching priority fee samples priorityFeeMethod?: PriorityFeeMethod; /// lookback window to determine priority fees, in slots. slotsToCheck?: number; /// url for helius rpc, required if using priorityFeeMethod.HELIUS heliusRpcUrl?: string; /// clamp any returned priority fee value to this value. maxFeeMicroLamports?: number; };