Compare commits

..

1 Commits

Author SHA1 Message Date
eff65cd13d
Add BaseMultiTornadoService 2024-11-18 07:27:31 +00:00
5 changed files with 21 additions and 48 deletions

16
dist/index.js vendored
View File

@ -2484,16 +2484,10 @@ class BaseMultiTornadoService extends BaseEventsService {
events, events,
newEvents newEvents
}) { }) {
const instancesWithNewEvents = [ const instancesWithNewEvents = Object.keys(this.instances).filter(
...new Set( (i) => newEvents.find(({ instanceAddress, event }) => instanceAddress === i && event === "Deposit")
newEvents.filter(({ event }) => event === "Deposit").map(({ instanceAddress }) => instanceAddress) );
)
];
let tree; let tree;
const requiredTree = this.merkleTreeService?.Tornado?.target;
if (requiredTree && !instancesWithNewEvents.includes(requiredTree)) {
instancesWithNewEvents.push(requiredTree);
}
for (const instance of instancesWithNewEvents) { for (const instance of instancesWithNewEvents) {
const depositEvents = events.filter( const depositEvents = events.filter(
({ instanceAddress, event }) => instanceAddress === instance && event === "Deposit" ({ instanceAddress, event }) => instanceAddress === instance && event === "Deposit"
@ -2503,8 +2497,8 @@ class BaseMultiTornadoService extends BaseEventsService {
const errMsg = `Invalid deposit events for ${instance} wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`; const errMsg = `Invalid deposit events for ${instance} wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`;
throw new Error(errMsg); throw new Error(errMsg);
} }
if (requiredTree === instance && !this.optionalTree) { if (this.merkleTreeService?.Tornado?.target === instance && !this.optionalTree) {
tree = await this.merkleTreeService?.verifyTree(depositEvents); tree = await this.merkleTreeService.verifyTree(depositEvents);
} }
} }
return tree; return tree;

16
dist/index.mjs vendored
View File

@ -2462,16 +2462,10 @@ class BaseMultiTornadoService extends BaseEventsService {
events, events,
newEvents newEvents
}) { }) {
const instancesWithNewEvents = [ const instancesWithNewEvents = Object.keys(this.instances).filter(
...new Set( (i) => newEvents.find(({ instanceAddress, event }) => instanceAddress === i && event === "Deposit")
newEvents.filter(({ event }) => event === "Deposit").map(({ instanceAddress }) => instanceAddress) );
)
];
let tree; let tree;
const requiredTree = this.merkleTreeService?.Tornado?.target;
if (requiredTree && !instancesWithNewEvents.includes(requiredTree)) {
instancesWithNewEvents.push(requiredTree);
}
for (const instance of instancesWithNewEvents) { for (const instance of instancesWithNewEvents) {
const depositEvents = events.filter( const depositEvents = events.filter(
({ instanceAddress, event }) => instanceAddress === instance && event === "Deposit" ({ instanceAddress, event }) => instanceAddress === instance && event === "Deposit"
@ -2481,8 +2475,8 @@ class BaseMultiTornadoService extends BaseEventsService {
const errMsg = `Invalid deposit events for ${instance} wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`; const errMsg = `Invalid deposit events for ${instance} wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`;
throw new Error(errMsg); throw new Error(errMsg);
} }
if (requiredTree === instance && !this.optionalTree) { if (this.merkleTreeService?.Tornado?.target === instance && !this.optionalTree) {
tree = await this.merkleTreeService?.verifyTree(depositEvents); tree = await this.merkleTreeService.verifyTree(depositEvents);
} }
} }
return tree; return tree;

16
dist/tornado.umd.js vendored
View File

@ -90754,16 +90754,10 @@ class BaseMultiTornadoService extends BaseEventsService {
events, events,
newEvents newEvents
}) { }) {
const instancesWithNewEvents = [ const instancesWithNewEvents = Object.keys(this.instances).filter(
...new Set( (i) => newEvents.find(({ instanceAddress, event }) => instanceAddress === i && event === "Deposit")
newEvents.filter(({ event }) => event === "Deposit").map(({ instanceAddress }) => instanceAddress) );
)
];
let tree; let tree;
const requiredTree = this.merkleTreeService?.Tornado?.target;
if (requiredTree && !instancesWithNewEvents.includes(requiredTree)) {
instancesWithNewEvents.push(requiredTree);
}
for (const instance of instancesWithNewEvents) { for (const instance of instancesWithNewEvents) {
const depositEvents = events.filter( const depositEvents = events.filter(
({ instanceAddress, event }) => instanceAddress === instance && event === "Deposit" ({ instanceAddress, event }) => instanceAddress === instance && event === "Deposit"
@ -90773,8 +90767,8 @@ class BaseMultiTornadoService extends BaseEventsService {
const errMsg = `Invalid deposit events for ${instance} wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`; const errMsg = `Invalid deposit events for ${instance} wants ${depositEvents.length - 1} leafIndex have ${lastEvent.leafIndex}`;
throw new Error(errMsg); throw new Error(errMsg);
} }
if (requiredTree === instance && !this.optionalTree) { if (this.merkleTreeService?.Tornado?.target === instance && !this.optionalTree) {
tree = await this.merkleTreeService?.verifyTree(depositEvents); tree = await this.merkleTreeService.verifyTree(depositEvents);
} }
} }
return tree; return tree;

File diff suppressed because one or more lines are too long

View File

@ -566,21 +566,12 @@ export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvent
}: BaseEvents<MultiDepositEvents | MultiWithdrawalsEvents> & { }: BaseEvents<MultiDepositEvents | MultiWithdrawalsEvents> & {
newEvents: (MultiDepositEvents | MultiWithdrawalsEvents)[]; newEvents: (MultiDepositEvents | MultiWithdrawalsEvents)[];
}) { }) {
const instancesWithNewEvents = [ const instancesWithNewEvents = Object.keys(this.instances).filter((i) =>
...new Set( newEvents.find(({ instanceAddress, event }) => instanceAddress === i && event === 'Deposit'),
newEvents.filter(({ event }) => event === 'Deposit').map(({ instanceAddress }) => instanceAddress), );
),
];
let tree: S | undefined; let tree: S | undefined;
const requiredTree = this.merkleTreeService?.Tornado?.target as string | undefined;
// Audit and create deposit tree
if (requiredTree && !instancesWithNewEvents.includes(requiredTree)) {
instancesWithNewEvents.push(requiredTree);
}
for (const instance of instancesWithNewEvents) { for (const instance of instancesWithNewEvents) {
const depositEvents = events.filter( const depositEvents = events.filter(
({ instanceAddress, event }) => instanceAddress === instance && event === 'Deposit', ({ instanceAddress, event }) => instanceAddress === instance && event === 'Deposit',
@ -593,8 +584,8 @@ export class BaseMultiTornadoService extends BaseEventsService<MultiDepositEvent
throw new Error(errMsg); throw new Error(errMsg);
} }
if (requiredTree === instance && !this.optionalTree) { if (this.merkleTreeService?.Tornado?.target === instance && !this.optionalTree) {
tree = (await this.merkleTreeService?.verifyTree(depositEvents)) as S; tree = (await this.merkleTreeService.verifyTree(depositEvents)) as S;
} }
} }