Compare commits

..

1 Commits

Author SHA1 Message Date
a32659b8e4
Add BaseMultiTornadoService 2024-11-19 01:16:36 +00:00
4 changed files with 18 additions and 18 deletions

12
dist/events/base.d.ts vendored
View File

@ -9,7 +9,7 @@ import type { TovarishClient } from '../tovarishClient';
import type { ReverseRecords } from '../typechain';
import type { MerkleTreeService } from '../merkleTree';
import type { DepositType } from '../deposits';
import type { BaseEvents, CachedEvents, MinimalEvents, DepositsEvents, WithdrawalsEvents, EncryptedNotesEvents, AllGovernanceEvents, GovernanceProposalCreatedEvents, GovernanceVotedEvents, EchoEvents, AllRelayerRegistryEvents, StakeBurnedEvents, MultiDepositEvents, MultiWithdrawalsEvents } from './types';
import type { BaseEvents, CachedEvents, MinimalEvents, DepositsEvents, WithdrawalsEvents, EncryptedNotesEvents, AllGovernanceEvents, GovernanceProposalCreatedEvents, GovernanceVotedEvents, EchoEvents, AllRelayerRegistryEvents, StakeBurnedEvents, MultiDepositsEvents, MultiWithdrawalsEvents } from './types';
export interface BaseEventsServiceConstructor {
netId: NetIdType;
provider: Provider;
@ -101,7 +101,7 @@ export interface BaseMultiTornadoServiceConstructor extends Omit<BaseEventsServi
optionalTree?: boolean;
merkleTreeService?: MerkleTreeService;
}
export declare class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvents | MultiWithdrawalsEvents> {
export declare class BaseMultiTornadoService extends BaseEventsService<MultiDepositsEvents | MultiWithdrawalsEvents> {
instances: {
[key in string]: DepositType;
};
@ -113,12 +113,12 @@ export declare class BaseMultiTornadoService extends BaseEventsService<MultiDepo
getInstanceName(): string;
getTovarishType(): string;
updateEventProgress({ percentage, type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
formatEvents(events: EventLog[]): Promise<(MultiDepositEvents | MultiWithdrawalsEvents)[]>;
validateEvents<S>({ events, newEvents, }: BaseEvents<MultiDepositEvents | MultiWithdrawalsEvents> & {
newEvents: (MultiDepositEvents | MultiWithdrawalsEvents)[];
formatEvents(events: EventLog[]): Promise<(MultiDepositsEvents | MultiWithdrawalsEvents)[]>;
validateEvents<S>({ events, newEvents, }: BaseEvents<MultiDepositsEvents | MultiWithdrawalsEvents> & {
newEvents: (MultiDepositsEvents | MultiWithdrawalsEvents)[];
}): Promise<S>;
getEvents(instanceAddress: string): Promise<{
depositEvents: MultiDepositEvents[];
depositEvents: MultiDepositsEvents[];
withdrawalEvents: MultiWithdrawalsEvents[];
tree: MerkleTree | undefined;
lastBlock: number;

View File

@ -87,7 +87,7 @@ export interface BaseMultiTornadoEvents {
event: string;
instanceAddress: string;
}
export interface MultiDepositEvents extends BaseMultiTornadoEvents, DepositsEvents {
export interface MultiDepositsEvents extends BaseMultiTornadoEvents, DepositsEvents {
}
export interface MultiWithdrawalsEvents extends BaseMultiTornadoEvents, WithdrawalsEvents {
relayerAddress: string;

View File

@ -58,7 +58,7 @@ import type {
WorkerUnregisteredEvents,
AllRelayerRegistryEvents,
StakeBurnedEvents,
MultiDepositEvents,
MultiDepositsEvents,
MultiWithdrawalsEvents,
} from './types';
@ -441,7 +441,7 @@ export interface BaseMultiTornadoServiceConstructor extends Omit<BaseEventsServi
merkleTreeService?: MerkleTreeService;
}
export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvents | MultiWithdrawalsEvents> {
export class BaseMultiTornadoService extends BaseEventsService<MultiDepositsEvents | MultiWithdrawalsEvents> {
instances: {
[key in string]: DepositType;
};
@ -498,7 +498,7 @@ export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvent
console.log({ percentage, type, fromBlock, toBlock, count });
}
async formatEvents(events: EventLog[]): Promise<(MultiDepositEvents | MultiWithdrawalsEvents)[]> {
async formatEvents(events: EventLog[]): Promise<(MultiDepositsEvents | MultiWithdrawalsEvents)[]> {
const txs = await this.batchTransactionService.getBatchTransactions([
...new Set(
events.filter(({ eventName }) => eventName === 'Deposit').map(({ transactionHash }) => transactionHash),
@ -538,7 +538,7 @@ export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvent
leafIndex: Number(leafIndex),
timestamp: Number(timestamp),
from: txs.find(({ hash }) => hash === transactionHash)?.from || '',
} as MultiDepositEvents;
} as MultiDepositsEvents;
}
if (event === 'Withdrawal') {
@ -557,14 +557,14 @@ export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvent
}
},
)
.filter((e) => e) as (MultiDepositEvents | MultiWithdrawalsEvents)[];
.filter((e) => e) as (MultiDepositsEvents | MultiWithdrawalsEvents)[];
}
async validateEvents<S>({
events,
newEvents,
}: BaseEvents<MultiDepositEvents | MultiWithdrawalsEvents> & {
newEvents: (MultiDepositEvents | MultiWithdrawalsEvents)[];
}: BaseEvents<MultiDepositsEvents | MultiWithdrawalsEvents> & {
newEvents: (MultiDepositsEvents | MultiWithdrawalsEvents)[];
}) {
const instancesWithNewEvents = [
...new Set(
@ -584,7 +584,7 @@ export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvent
for (const instance of instancesWithNewEvents) {
const depositEvents = events.filter(
({ instanceAddress, event }) => instanceAddress === instance && event === 'Deposit',
) as MultiDepositEvents[];
) as MultiDepositsEvents[];
const lastEvent = depositEvents[depositEvents.length - 1];
@ -608,7 +608,7 @@ export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvent
(acc, curr) => {
if (curr.instanceAddress === instanceAddress) {
if (curr.event === 'Deposit') {
acc.depositEvents.push(curr as MultiDepositEvents);
acc.depositEvents.push(curr as MultiDepositsEvents);
} else if (curr.event === 'Withdrawal') {
acc.withdrawalEvents.push(curr as MultiWithdrawalsEvents);
}
@ -616,7 +616,7 @@ export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvent
return acc;
},
{} as {
depositEvents: MultiDepositEvents[];
depositEvents: MultiDepositsEvents[];
withdrawalEvents: MultiWithdrawalsEvents[];
},
);

View File

@ -118,7 +118,7 @@ export interface BaseMultiTornadoEvents {
instanceAddress: string;
}
export interface MultiDepositEvents extends BaseMultiTornadoEvents, DepositsEvents {}
export interface MultiDepositsEvents extends BaseMultiTornadoEvents, DepositsEvents {}
export interface MultiWithdrawalsEvents extends BaseMultiTornadoEvents, WithdrawalsEvents {
relayerAddress: string;