@quartz-labs/sdk
Version:
SDK for interacting with the Quartz Protocol
33 lines • 1.38 kB
JavaScript
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