UNPKG

@drift-labs/sdk

Version:
33 lines (32 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuctionSubscriberGrpc = void 0; const memcmp_1 = require("../memcmp"); const events_1 = require("events"); const grpcProgramAccountSubscriber_1 = require("../accounts/grpcProgramAccountSubscriber"); class AuctionSubscriberGrpc { constructor({ driftClient, opts, grpcConfigs, resubTimeoutMs, logResubMessages, }) { this.driftClient = driftClient; this.opts = opts || this.driftClient.opts; this.eventEmitter = new events_1.EventEmitter(); this.resubOpts = { resubTimeoutMs, logResubMessages }; this.grpcConfigs = grpcConfigs; } async subscribe() { if (!this.subscriber) { this.subscriber = await grpcProgramAccountSubscriber_1.grpcProgramAccountSubscriber.create(this.grpcConfigs, 'AuctionSubscriber', 'User', this.driftClient.program, this.driftClient.program.account.user.coder.accounts.decode.bind(this.driftClient.program.account.user.coder.accounts), { filters: [(0, memcmp_1.getUserFilter)(), (0, memcmp_1.getUserWithAuctionFilter)()], }, this.resubOpts); } await this.subscriber.subscribe((accountId, data, context) => { this.eventEmitter.emit('onAccountUpdate', data, accountId, context.slot); }); } async unsubscribe() { if (!this.subscriber) { return; } this.subscriber.unsubscribe(); } } exports.AuctionSubscriberGrpc = AuctionSubscriberGrpc;