Make tree generation optional
This commit is contained in:
parent
6549fac5dd
commit
9f4044d110
10
dist/events/base.d.ts
vendored
10
dist/events/base.d.ts
vendored
@ -78,7 +78,9 @@ export declare class BaseEventsService<EventType extends MinimalEvents> {
|
||||
getLatestEvents({ fromBlock }: {
|
||||
fromBlock: number;
|
||||
}): Promise<BaseEvents<EventType>>;
|
||||
validateEvents<S>({ events, lastBlock }: BaseEvents<EventType>): Promise<S>;
|
||||
validateEvents<S>({ events, lastBlock, hasNewEvents, }: BaseEvents<EventType> & {
|
||||
hasNewEvents?: boolean;
|
||||
}): Promise<S>;
|
||||
/**
|
||||
* Handle saving events
|
||||
*/
|
||||
@ -96,6 +98,7 @@ export interface BaseTornadoServiceConstructor extends Omit<BaseEventsServiceCon
|
||||
Tornado: Tornado;
|
||||
amount: string;
|
||||
currency: string;
|
||||
optionalTree?: boolean;
|
||||
merkleTreeService?: MerkleTreeService;
|
||||
}
|
||||
export interface DepositsGraphParams extends BaseGraphParams {
|
||||
@ -105,6 +108,7 @@ export interface DepositsGraphParams extends BaseGraphParams {
|
||||
export declare class BaseTornadoService extends BaseEventsService<DepositsEvents | WithdrawalsEvents> {
|
||||
amount: string;
|
||||
currency: string;
|
||||
optionalTree?: boolean;
|
||||
merkleTreeService?: MerkleTreeService;
|
||||
batchTransactionService: BatchTransactionService;
|
||||
batchBlockService: BatchBlockService;
|
||||
@ -113,8 +117,8 @@ export declare class BaseTornadoService extends BaseEventsService<DepositsEvents
|
||||
getGraphMethod(): string;
|
||||
getGraphParams(): DepositsGraphParams;
|
||||
formatEvents(events: EventLog[]): Promise<(DepositsEvents | WithdrawalsEvents)[]>;
|
||||
validateEvents<S>({ events }: {
|
||||
events: (DepositsEvents | WithdrawalsEvents)[];
|
||||
validateEvents<S>({ events, hasNewEvents, }: BaseEvents<DepositsEvents | WithdrawalsEvents> & {
|
||||
hasNewEvents?: boolean;
|
||||
}): Promise<S>;
|
||||
getLatestEvents({ fromBlock }: {
|
||||
fromBlock: number;
|
||||
|
26
dist/index.js
vendored
26
dist/index.js
vendored
@ -2948,10 +2948,15 @@ class BaseEventsService {
|
||||
lastBlock: rpcEvents.lastBlock
|
||||
};
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
async validateEvents({ events, lastBlock }) {
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
async validateEvents({
|
||||
events,
|
||||
lastBlock,
|
||||
hasNewEvents
|
||||
}) {
|
||||
return void 0;
|
||||
}
|
||||
/* eslint-enable @typescript-eslint/no-unused-vars */
|
||||
/**
|
||||
* Handle saving events
|
||||
*/
|
||||
@ -2981,7 +2986,11 @@ class BaseEventsService {
|
||||
return !hasEvent;
|
||||
});
|
||||
const lastBlock = newEvents.lastBlock || allEvents[allEvents.length - 1]?.blockNumber;
|
||||
const validateResult = await this.validateEvents({ events: allEvents, lastBlock });
|
||||
const validateResult = await this.validateEvents({
|
||||
events: allEvents,
|
||||
lastBlock,
|
||||
hasNewEvents: Boolean(newEvents.events.length)
|
||||
});
|
||||
if (savedEvents.fromCache || newEvents.events.length) {
|
||||
await this.saveEvents({ events: allEvents, lastBlock });
|
||||
}
|
||||
@ -2995,17 +3004,19 @@ class BaseEventsService {
|
||||
class BaseTornadoService extends BaseEventsService {
|
||||
amount;
|
||||
currency;
|
||||
optionalTree;
|
||||
merkleTreeService;
|
||||
batchTransactionService;
|
||||
batchBlockService;
|
||||
constructor(serviceConstructor) {
|
||||
const { Tornado: contract, amount, currency, provider, merkleTreeService } = serviceConstructor;
|
||||
const { Tornado: contract, amount, currency, provider, optionalTree, merkleTreeService } = serviceConstructor;
|
||||
super({
|
||||
...serviceConstructor,
|
||||
contract
|
||||
});
|
||||
this.amount = amount;
|
||||
this.currency = currency;
|
||||
this.optionalTree = optionalTree;
|
||||
this.merkleTreeService = merkleTreeService;
|
||||
this.batchTransactionService = new BatchTransactionService({
|
||||
provider,
|
||||
@ -3080,7 +3091,10 @@ class BaseTornadoService extends BaseEventsService {
|
||||
});
|
||||
}
|
||||
}
|
||||
async validateEvents({ events }) {
|
||||
async validateEvents({
|
||||
events,
|
||||
hasNewEvents
|
||||
}) {
|
||||
if (events.length && this.getType().toLowerCase() === DEPOSIT) {
|
||||
const depositEvents = events;
|
||||
const lastEvent = depositEvents[depositEvents.length - 1];
|
||||
@ -3088,7 +3102,7 @@ class BaseTornadoService extends BaseEventsService {
|
||||
const errMsg = `Deposit events invalid wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`;
|
||||
throw new Error(errMsg);
|
||||
}
|
||||
if (this.merkleTreeService) {
|
||||
if (this.merkleTreeService && (!this.optionalTree || hasNewEvents)) {
|
||||
return await this.merkleTreeService.verifyTree(depositEvents);
|
||||
}
|
||||
}
|
||||
|
26
dist/index.mjs
vendored
26
dist/index.mjs
vendored
@ -2927,10 +2927,15 @@ class BaseEventsService {
|
||||
lastBlock: rpcEvents.lastBlock
|
||||
};
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
async validateEvents({ events, lastBlock }) {
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
async validateEvents({
|
||||
events,
|
||||
lastBlock,
|
||||
hasNewEvents
|
||||
}) {
|
||||
return void 0;
|
||||
}
|
||||
/* eslint-enable @typescript-eslint/no-unused-vars */
|
||||
/**
|
||||
* Handle saving events
|
||||
*/
|
||||
@ -2960,7 +2965,11 @@ class BaseEventsService {
|
||||
return !hasEvent;
|
||||
});
|
||||
const lastBlock = newEvents.lastBlock || allEvents[allEvents.length - 1]?.blockNumber;
|
||||
const validateResult = await this.validateEvents({ events: allEvents, lastBlock });
|
||||
const validateResult = await this.validateEvents({
|
||||
events: allEvents,
|
||||
lastBlock,
|
||||
hasNewEvents: Boolean(newEvents.events.length)
|
||||
});
|
||||
if (savedEvents.fromCache || newEvents.events.length) {
|
||||
await this.saveEvents({ events: allEvents, lastBlock });
|
||||
}
|
||||
@ -2974,17 +2983,19 @@ class BaseEventsService {
|
||||
class BaseTornadoService extends BaseEventsService {
|
||||
amount;
|
||||
currency;
|
||||
optionalTree;
|
||||
merkleTreeService;
|
||||
batchTransactionService;
|
||||
batchBlockService;
|
||||
constructor(serviceConstructor) {
|
||||
const { Tornado: contract, amount, currency, provider, merkleTreeService } = serviceConstructor;
|
||||
const { Tornado: contract, amount, currency, provider, optionalTree, merkleTreeService } = serviceConstructor;
|
||||
super({
|
||||
...serviceConstructor,
|
||||
contract
|
||||
});
|
||||
this.amount = amount;
|
||||
this.currency = currency;
|
||||
this.optionalTree = optionalTree;
|
||||
this.merkleTreeService = merkleTreeService;
|
||||
this.batchTransactionService = new BatchTransactionService({
|
||||
provider,
|
||||
@ -3059,7 +3070,10 @@ class BaseTornadoService extends BaseEventsService {
|
||||
});
|
||||
}
|
||||
}
|
||||
async validateEvents({ events }) {
|
||||
async validateEvents({
|
||||
events,
|
||||
hasNewEvents
|
||||
}) {
|
||||
if (events.length && this.getType().toLowerCase() === DEPOSIT) {
|
||||
const depositEvents = events;
|
||||
const lastEvent = depositEvents[depositEvents.length - 1];
|
||||
@ -3067,7 +3081,7 @@ class BaseTornadoService extends BaseEventsService {
|
||||
const errMsg = `Deposit events invalid wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`;
|
||||
throw new Error(errMsg);
|
||||
}
|
||||
if (this.merkleTreeService) {
|
||||
if (this.merkleTreeService && (!this.optionalTree || hasNewEvents)) {
|
||||
return await this.merkleTreeService.verifyTree(depositEvents);
|
||||
}
|
||||
}
|
||||
|
26
dist/tornado.umd.js
vendored
26
dist/tornado.umd.js
vendored
@ -59366,10 +59366,15 @@ class BaseEventsService {
|
||||
lastBlock: rpcEvents.lastBlock
|
||||
};
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
async validateEvents({ events, lastBlock }) {
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
async validateEvents({
|
||||
events,
|
||||
lastBlock,
|
||||
hasNewEvents
|
||||
}) {
|
||||
return void 0;
|
||||
}
|
||||
/* eslint-enable @typescript-eslint/no-unused-vars */
|
||||
/**
|
||||
* Handle saving events
|
||||
*/
|
||||
@ -59399,7 +59404,11 @@ class BaseEventsService {
|
||||
return !hasEvent;
|
||||
});
|
||||
const lastBlock = newEvents.lastBlock || allEvents[allEvents.length - 1]?.blockNumber;
|
||||
const validateResult = await this.validateEvents({ events: allEvents, lastBlock });
|
||||
const validateResult = await this.validateEvents({
|
||||
events: allEvents,
|
||||
lastBlock,
|
||||
hasNewEvents: Boolean(newEvents.events.length)
|
||||
});
|
||||
if (savedEvents.fromCache || newEvents.events.length) {
|
||||
await this.saveEvents({ events: allEvents, lastBlock });
|
||||
}
|
||||
@ -59413,17 +59422,19 @@ class BaseEventsService {
|
||||
class BaseTornadoService extends BaseEventsService {
|
||||
amount;
|
||||
currency;
|
||||
optionalTree;
|
||||
merkleTreeService;
|
||||
batchTransactionService;
|
||||
batchBlockService;
|
||||
constructor(serviceConstructor) {
|
||||
const { Tornado: contract, amount, currency, provider, merkleTreeService } = serviceConstructor;
|
||||
const { Tornado: contract, amount, currency, provider, optionalTree, merkleTreeService } = serviceConstructor;
|
||||
super({
|
||||
...serviceConstructor,
|
||||
contract
|
||||
});
|
||||
this.amount = amount;
|
||||
this.currency = currency;
|
||||
this.optionalTree = optionalTree;
|
||||
this.merkleTreeService = merkleTreeService;
|
||||
this.batchTransactionService = new _batch__WEBPACK_IMPORTED_MODULE_1__/* .BatchTransactionService */ .AF({
|
||||
provider,
|
||||
@ -59498,7 +59509,10 @@ class BaseTornadoService extends BaseEventsService {
|
||||
});
|
||||
}
|
||||
}
|
||||
async validateEvents({ events }) {
|
||||
async validateEvents({
|
||||
events,
|
||||
hasNewEvents
|
||||
}) {
|
||||
if (events.length && this.getType().toLowerCase() === DEPOSIT) {
|
||||
const depositEvents = events;
|
||||
const lastEvent = depositEvents[depositEvents.length - 1];
|
||||
@ -59506,7 +59520,7 @@ class BaseTornadoService extends BaseEventsService {
|
||||
const errMsg = `Deposit events invalid wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`;
|
||||
throw new Error(errMsg);
|
||||
}
|
||||
if (this.merkleTreeService) {
|
||||
if (this.merkleTreeService && (!this.optionalTree || hasNewEvents)) {
|
||||
return await this.merkleTreeService.verifyTree(depositEvents);
|
||||
}
|
||||
}
|
||||
|
2
dist/tornado.umd.min.js
vendored
2
dist/tornado.umd.min.js
vendored
File diff suppressed because one or more lines are too long
@ -295,10 +295,15 @@ export class BaseEventsService<EventType extends MinimalEvents> {
|
||||
};
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
async validateEvents<S>({ events, lastBlock }: BaseEvents<EventType>): Promise<S> {
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
async validateEvents<S>({
|
||||
events,
|
||||
lastBlock,
|
||||
hasNewEvents,
|
||||
}: BaseEvents<EventType> & { hasNewEvents?: boolean }): Promise<S> {
|
||||
return undefined as S;
|
||||
}
|
||||
/* eslint-enable @typescript-eslint/no-unused-vars */
|
||||
|
||||
/**
|
||||
* Handle saving events
|
||||
@ -340,7 +345,11 @@ export class BaseEventsService<EventType extends MinimalEvents> {
|
||||
|
||||
const lastBlock = newEvents.lastBlock || allEvents[allEvents.length - 1]?.blockNumber;
|
||||
|
||||
const validateResult = await this.validateEvents<S>({ events: allEvents, lastBlock });
|
||||
const validateResult = await this.validateEvents<S>({
|
||||
events: allEvents,
|
||||
lastBlock,
|
||||
hasNewEvents: Boolean(newEvents.events.length),
|
||||
});
|
||||
|
||||
// If the events are loaded from cache or we have found new events, save them
|
||||
if ((savedEvents as CachedEvents<EventType>).fromCache || newEvents.events.length) {
|
||||
@ -359,6 +368,7 @@ export interface BaseTornadoServiceConstructor extends Omit<BaseEventsServiceCon
|
||||
Tornado: Tornado;
|
||||
amount: string;
|
||||
currency: string;
|
||||
optionalTree?: boolean;
|
||||
merkleTreeService?: MerkleTreeService;
|
||||
}
|
||||
|
||||
@ -371,12 +381,13 @@ export class BaseTornadoService extends BaseEventsService<DepositsEvents | Withd
|
||||
amount: string;
|
||||
currency: string;
|
||||
|
||||
optionalTree?: boolean;
|
||||
merkleTreeService?: MerkleTreeService;
|
||||
batchTransactionService: BatchTransactionService;
|
||||
batchBlockService: BatchBlockService;
|
||||
|
||||
constructor(serviceConstructor: BaseTornadoServiceConstructor) {
|
||||
const { Tornado: contract, amount, currency, provider, merkleTreeService } = serviceConstructor;
|
||||
const { Tornado: contract, amount, currency, provider, optionalTree, merkleTreeService } = serviceConstructor;
|
||||
|
||||
super({
|
||||
...serviceConstructor,
|
||||
@ -386,6 +397,7 @@ export class BaseTornadoService extends BaseEventsService<DepositsEvents | Withd
|
||||
this.amount = amount;
|
||||
this.currency = currency;
|
||||
|
||||
this.optionalTree = optionalTree;
|
||||
this.merkleTreeService = merkleTreeService;
|
||||
|
||||
this.batchTransactionService = new BatchTransactionService({
|
||||
@ -475,7 +487,10 @@ export class BaseTornadoService extends BaseEventsService<DepositsEvents | Withd
|
||||
}
|
||||
}
|
||||
|
||||
async validateEvents<S>({ events }: { events: (DepositsEvents | WithdrawalsEvents)[] }) {
|
||||
async validateEvents<S>({
|
||||
events,
|
||||
hasNewEvents,
|
||||
}: BaseEvents<DepositsEvents | WithdrawalsEvents> & { hasNewEvents?: boolean }) {
|
||||
if (events.length && this.getType().toLowerCase() === DEPOSIT) {
|
||||
const depositEvents = events as DepositsEvents[];
|
||||
|
||||
@ -486,7 +501,7 @@ export class BaseTornadoService extends BaseEventsService<DepositsEvents | Withd
|
||||
throw new Error(errMsg);
|
||||
}
|
||||
|
||||
if (this.merkleTreeService) {
|
||||
if (this.merkleTreeService && (!this.optionalTree || hasNewEvents)) {
|
||||
return (await this.merkleTreeService.verifyTree(depositEvents)) as S;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user