UNPKG

@quartz-labs/sdk

Version:

SDK for interacting with the Quartz Protocol

33 lines 1.38 kB
import { BulkAccountLoader, DriftClient } from "@drift-labs/sdk"; import { MarketIndex } from "../config/tokens.js"; import { DummyWallet } from "../types/classes/DummyWallet.class.js"; import { QUARTZ_DRIFT_ACCOUNT } from "../config/constants.js"; export class DriftClientService { static instance; driftClient; driftClientInitPromise; constructor(connection, pollingFrequency = 1000) { const wallet = new DummyWallet(QUARTZ_DRIFT_ACCOUNT); this.driftClient = new DriftClient({ connection: connection, wallet: wallet, env: 'mainnet-beta', userStats: false, perpMarketIndexes: [], spotMarketIndexes: [...MarketIndex], accountSubscription: { type: 'polling', accountLoader: new BulkAccountLoader(connection, "confirmed", pollingFrequency) } }); this.driftClientInitPromise = this.driftClient.subscribe(); } static async getDriftClient(connection, pollingFrequency = 1000) { if (!DriftClientService.instance) { DriftClientService.instance = new DriftClientService(connection, pollingFrequency); } await DriftClientService.instance.driftClientInitPromise; return DriftClientService.instance.driftClient; } } //# sourceMappingURL=DriftClientService.js.map