@drift-labs/sdk-browser
Version:
SDK for Drift Protocol
66 lines • 3.65 kB
TypeScript
/// <reference types="node" />
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
import { OracleInfo, OraclePriceData } from '../oracles/types';
import { Program } from '@coral-xyz/anchor';
import { PublicKey } from '@solana/web3.js';
import { AccountSubscriber, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, GrpcConfigs, ResubOpts } from './types';
import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types';
import { OracleClientCache } from '../oracles/oracleClientCache';
export declare class grpcDriftClientAccountSubscriberV2 implements DriftClientAccountSubscriber {
private grpcConfigs;
private perpMarketsSubscriber?;
private spotMarketsSubscriber?;
private oracleMultiSubscriber?;
private perpMarketIndexToAccountPubkeyMap;
private spotMarketIndexToAccountPubkeyMap;
private delistedMarketSetting;
eventEmitter: StrictEventEmitter<EventEmitter, DriftClientAccountEvents>;
isSubscribed: boolean;
isSubscribing: boolean;
program: Program;
perpMarketIndexes: number[];
spotMarketIndexes: number[];
shouldFindAllMarketsAndOracles: boolean;
oracleInfos: OracleInfo[];
initialPerpMarketAccountData: Map<number, PerpMarketAccount>;
initialSpotMarketAccountData: Map<number, SpotMarketAccount>;
initialOraclePriceData: Map<string, OraclePriceData>;
perpOracleMap: Map<number, PublicKey>;
perpOracleStringMap: Map<number, string>;
spotOracleMap: Map<number, PublicKey>;
spotOracleStringMap: Map<number, string>;
private oracleIdToOracleDataMap;
stateAccountSubscriber?: AccountSubscriber<StateAccount>;
oracleClientCache: OracleClientCache;
private resubOpts?;
private subscriptionPromise;
protected subscriptionPromiseResolver: (val: boolean) => void;
constructor(grpcConfigs: GrpcConfigs, program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts);
chunks: <T>(array: readonly T[], size: number) => T[][];
setInitialData(): Promise<void>;
addPerpMarket(_marketIndex: number): Promise<boolean>;
addSpotMarket(_marketIndex: number): Promise<boolean>;
addOracle(oracleInfo: OracleInfo): Promise<boolean>;
subscribe(): Promise<boolean>;
fetch(): Promise<void>;
private assertIsSubscribed;
getStateAccountAndSlot(): DataAndSlot<StateAccount>;
getMarketAccountsAndSlots(): DataAndSlot<PerpMarketAccount>[];
getSpotMarketAccountsAndSlots(): DataAndSlot<SpotMarketAccount>[];
getMarketAccountAndSlot(marketIndex: number): DataAndSlot<PerpMarketAccount> | undefined;
getSpotMarketAccountAndSlot(marketIndex: number): DataAndSlot<SpotMarketAccount> | undefined;
getOraclePriceDataAndSlot(oracleId: string): DataAndSlot<OraclePriceData> | undefined;
getOraclePriceDataAndSlotForPerpMarket(marketIndex: number): DataAndSlot<OraclePriceData> | undefined;
getOraclePriceDataAndSlotForSpotMarket(marketIndex: number): DataAndSlot<OraclePriceData> | undefined;
setPerpOracleMap(): Promise<void>;
setSpotOracleMap(): Promise<void>;
subscribeToPerpMarketAccounts(): Promise<boolean>;
subscribeToSpotMarketAccounts(): Promise<boolean>;
subscribeToOracles(): Promise<boolean>;
handleDelistedMarkets(): Promise<void>;
removeInitialData(): void;
unsubscribeFromOracles(): Promise<void>;
unsubscribe(): Promise<void>;
}
//# sourceMappingURL=grpcDriftClientAccountSubscriberV2.d.ts.map