@drift-labs/sdk-browser
Version:
SDK for Drift Protocol
39 lines (38 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BasicUserStatsAccountSubscriber = void 0;
const events_1 = require("events");
/**
* Basic implementation of UserStatsAccountSubscriber. It will only take in UserStatsAccount
* data during initialization and will not fetch or subscribe to updates.
*/
class BasicUserStatsAccountSubscriber {
constructor(userStatsAccountPublicKey, data, slot) {
this.isSubscribed = true;
this.eventEmitter = new events_1.EventEmitter();
this.userStatsAccountPublicKey = userStatsAccountPublicKey;
this.userStats = { data, slot };
}
async subscribe(_userStatsAccount) {
return true;
}
async addToAccountLoader() { }
async fetch() { }
doesAccountExist() {
return this.userStats !== undefined;
}
async unsubscribe() { }
assertIsSubscribed() { }
getUserStatsAccountAndSlot() {
return this.userStats;
}
updateData(userStatsAccount, slot) {
var _a;
if (!this.userStats || slot >= ((_a = this.userStats.slot) !== null && _a !== void 0 ? _a : 0)) {
this.userStats = { data: userStatsAccount, slot };
this.eventEmitter.emit('userStatsAccountUpdate', userStatsAccount);
this.eventEmitter.emit('update');
}
}
}
exports.BasicUserStatsAccountSubscriber = BasicUserStatsAccountSubscriber;