@liskhq/lisk-api-client
Version:
An API client for the Lisk network
32 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventMethods = void 0;
const codec_1 = require("./codec");
class EventMethods {
constructor(channel, moduleMetadata) {
this._channel = channel;
this._metadata = moduleMetadata;
}
async get(height, query = {}) {
const decodedEvents = [];
const events = await this._channel.invoke('chain_getEvents', { height });
for (const event of events) {
if ((!query.module && !query.name) ||
(event.module === query.module && !query.name) ||
(event.name === query.name && !query.module) ||
(event.module === query.module && event.name === query.name)) {
decodedEvents.push((0, codec_1.decodeEventData)(event, this._metadata));
}
}
return decodedEvents;
}
subscribe(callback, query = {}) {
this._channel.subscribe('chain_newBlock', async (event) => {
const { blockHeader: { height }, } = event;
const events = await this.get(height, query);
callback(events);
});
}
}
exports.EventMethods = EventMethods;
//# sourceMappingURL=event_methods.js.map