feat: skip saving events to the db (#81)

This commit is contained in:
Richard Ramos 2020-03-23 16:21:16 -04:00 committed by GitHub
parent 30d78e8393
commit 006a1e8f49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 7 deletions

View File

@ -22,7 +22,7 @@ class EventSyncer {
const observable = new Observable(subscriber => { const observable = new Observable(subscriber => {
const cb = this.callbackFactory(subscriber, filters, eventKey, eventName); const cb = this.callbackFactory(subscriber, filters, eventKey, eventName);
const fnDBEvents = this.serveDBEvents(cb, eventKey); const fnDBEvents = this.serveDBEvents(cb, eventKey, !filterConditions.saveToDb);
const fnPastEvents = this.getPastEvents(cb, eventKey, contractInstance, eventName, filters); const fnPastEvents = this.getPastEvents(cb, eventKey, contractInstance, eventName, filters);
const fnSubscribe = this.isWebsocketProvider ? this.subscribeToEvent(cb, contractInstance, eventName) : null; const fnSubscribe = this.isWebsocketProvider ? this.subscribeToEvent(cb, contractInstance, eventName) : null;
@ -58,7 +58,9 @@ class EventSyncer {
return false; return false;
}; };
serveDBEvents = (cb, eventKey) => (toBlock, lastCachedBlock) => { serveDBEvents = (cb, eventKey, fromDB) => (toBlock, lastCachedBlock) => {
if(!fromDB) return false;
const events = this.db.getEventsFor(eventKey); const events = this.db.getEventsFor(eventKey);
events.forEach(ev => cb(null, ev)); events.forEach(ev => cb(null, ev));
@ -116,7 +118,9 @@ class EventSyncer {
subscriber.next(eventData.returnValues); subscriber.next(eventData.returnValues);
this.events.emit("updateDB", {eventKey, eventData}); if (filterConditions && !!filterConditions.saveToDb) {
this.events.emit("updateDB", {eventKey, eventData});
}
}; };
close() { close() {

View File

@ -104,14 +104,14 @@ export default class Subspace {
}, 100); }, 100);
} }
SubspaceContract.trackEvent = (eventName, filterConditionsOrCb) => { SubspaceContract.trackEvent = (eventName, filterConditions) => {
return this.trackEvent(SubspaceContract, eventName, filterConditionsOrCb); return this.trackEvent(SubspaceContract, eventName, filterConditions);
}; };
Object.keys(SubspaceContract.events).forEach(ev => { Object.keys(SubspaceContract.events).forEach(ev => {
if (!SubspaceContract.options.jsonInterface.find(x => x.type === "event" && x.name == ev)) return; if (!SubspaceContract.options.jsonInterface.find(x => x.type === "event" && x.name == ev)) return;
SubspaceContract.events[ev].track = filterConditionsOrCb => SubspaceContract.events[ev].track = filterConditions =>
this.trackEvent(SubspaceContract, ev, filterConditionsOrCb); this.trackEvent(SubspaceContract, ev, filterConditions);
}); });
SubspaceContract.trackProperty = (propName, methodArgs, callArgs) => { SubspaceContract.trackProperty = (propName, methodArgs, callArgs) => {