forked from tornadocash/tornado-cli
Compare commits
2 Commits
48774c321e
...
2826a246ac
Author | SHA1 | Date | |
---|---|---|---|
2826a246ac | |||
42e6b1713b |
88
.eslintrc.js
88
.eslintrc.js
@ -1,65 +1,43 @@
|
||||
module.exports = {
|
||||
"env": {
|
||||
"es2021": true,
|
||||
"node": true
|
||||
env: {
|
||||
es2021: true,
|
||||
node: true,
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:import/recommended",
|
||||
"plugin:import/typescript",
|
||||
"prettier",
|
||||
"plugin:prettier/recommended",
|
||||
extends: [
|
||||
'prettier',
|
||||
'eslint:recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:import/recommended',
|
||||
'plugin:import/typescript',
|
||||
'plugin:prettier/recommended',
|
||||
],
|
||||
"overrides": [
|
||||
overrides: [
|
||||
{
|
||||
"env": {
|
||||
"node": true
|
||||
env: {
|
||||
node: true,
|
||||
},
|
||||
files: ['.eslintrc.{js,cjs}'],
|
||||
parserOptions: {
|
||||
sourceType: 'script',
|
||||
},
|
||||
"files": [
|
||||
".eslintrc.{js,cjs}"
|
||||
],
|
||||
"parserOptions": {
|
||||
"sourceType": "script"
|
||||
}
|
||||
}
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": "latest",
|
||||
"sourceType": "module"
|
||||
},
|
||||
"plugins": [
|
||||
"@typescript-eslint",
|
||||
"prettier"
|
||||
],
|
||||
"rules": {
|
||||
"prettier/prettier": [
|
||||
"error",
|
||||
parser: '@typescript-eslint/parser',
|
||||
parserOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
sourceType: 'module',
|
||||
},
|
||||
plugins: ['@typescript-eslint', 'prettier'],
|
||||
rules: {
|
||||
'prettier/prettier': [
|
||||
'error',
|
||||
{
|
||||
tabWidth: 4,
|
||||
singleQuote: true,
|
||||
printWidth: 120
|
||||
}
|
||||
},
|
||||
],
|
||||
"import/order": ["error"],
|
||||
/**
|
||||
"indent": [
|
||||
"error",
|
||||
2
|
||||
],
|
||||
**/
|
||||
"linebreak-style": [
|
||||
"error",
|
||||
"unix"
|
||||
],
|
||||
"quotes": [
|
||||
"error",
|
||||
"single"
|
||||
],
|
||||
"semi": [
|
||||
"error",
|
||||
"always"
|
||||
],
|
||||
"@typescript-eslint/no-unused-vars": ["warn"]
|
||||
}
|
||||
}
|
||||
'import/order': ['error'],
|
||||
'@typescript-eslint/no-unused-vars': ['warn'],
|
||||
'@typescript-eslint/no-unused-expressions': ['off'],
|
||||
},
|
||||
};
|
||||
|
6024
dist/cli.js
vendored
6024
dist/cli.js
vendored
File diff suppressed because one or more lines are too long
2
dist/services/data.d.ts
vendored
2
dist/services/data.d.ts
vendored
@ -18,7 +18,7 @@ export declare function loadSavedEvents<T extends MinimalEvents>({ name, userDir
|
||||
name: string;
|
||||
userDirectory: string;
|
||||
}): Promise<BaseEvents<T>>;
|
||||
export declare function download({ name, cacheDirectory }: {
|
||||
export declare function download({ name, cacheDirectory, }: {
|
||||
name: string;
|
||||
cacheDirectory: string;
|
||||
}): Promise<string>;
|
||||
|
28
dist/services/nodeEvents.d.ts
vendored
28
dist/services/nodeEvents.d.ts
vendored
@ -15,24 +15,24 @@ export declare class NodeTornadoService extends BaseTornadoService {
|
||||
nativeCurrency: string;
|
||||
treeCache?: TreeCache;
|
||||
constructor(serviceConstructor: NodeTornadoServiceConstructor);
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateTransactionProgress({ currentIndex, totalIndex }: Parameters<BatchBlockOnProgress>[0]): void;
|
||||
updateBlockProgress({ currentIndex, totalIndex }: Parameters<BatchBlockOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateEventProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateTransactionProgress({ currentIndex, totalIndex, }: Parameters<BatchBlockOnProgress>[0]): void;
|
||||
updateBlockProgress({ currentIndex, totalIndex, }: Parameters<BatchBlockOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
getEventsFromDB(): Promise<BaseEvents<DepositsEvents | WithdrawalsEvents>>;
|
||||
getEventsFromCache(): Promise<import("@tornado/core").CachedEvents<DepositsEvents | WithdrawalsEvents>>;
|
||||
validateEvents<S>({ events, lastBlock, hasNewEvents, }: BaseEvents<DepositsEvents | WithdrawalsEvents> & {
|
||||
hasNewEvents?: boolean;
|
||||
}): Promise<S>;
|
||||
saveEvents({ events, lastBlock }: BaseEvents<DepositsEvents | WithdrawalsEvents>): Promise<void>;
|
||||
saveEvents({ events, lastBlock, }: BaseEvents<DepositsEvents | WithdrawalsEvents>): Promise<void>;
|
||||
}
|
||||
export type NodeEchoServiceConstructor = BaseEchoServiceConstructor & NodeServiceConstructor;
|
||||
export declare class NodeEchoService extends BaseEchoService {
|
||||
cacheDirectory: string;
|
||||
userDirectory: string;
|
||||
constructor(serviceConstructor: NodeEchoServiceConstructor);
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateEventProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
getEventsFromDB(): Promise<BaseEvents<EchoEvents>>;
|
||||
getEventsFromCache(): Promise<import("@tornado/core").CachedEvents<EchoEvents>>;
|
||||
saveEvents({ events, lastBlock }: BaseEvents<EchoEvents>): Promise<void>;
|
||||
@ -42,8 +42,8 @@ export declare class NodeEncryptedNotesService extends BaseEncryptedNotesService
|
||||
cacheDirectory: string;
|
||||
userDirectory: string;
|
||||
constructor(serviceConstructor: NodeEncryptedNotesServiceConstructor);
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateEventProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
getEventsFromDB(): Promise<BaseEvents<EncryptedNotesEvents>>;
|
||||
getEventsFromCache(): Promise<import("@tornado/core").CachedEvents<EncryptedNotesEvents>>;
|
||||
saveEvents({ events, lastBlock }: BaseEvents<EncryptedNotesEvents>): Promise<void>;
|
||||
@ -53,9 +53,9 @@ export declare class NodeGovernanceService extends BaseGovernanceService {
|
||||
cacheDirectory: string;
|
||||
userDirectory: string;
|
||||
constructor(serviceConstructor: NodeGovernanceServiceConstructor);
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateTransactionProgress({ currentIndex, totalIndex }: Parameters<BatchBlockOnProgress>[0]): void;
|
||||
updateEventProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateTransactionProgress({ currentIndex, totalIndex, }: Parameters<BatchBlockOnProgress>[0]): void;
|
||||
getEventsFromDB(): Promise<BaseEvents<AllGovernanceEvents>>;
|
||||
getEventsFromCache(): Promise<import("@tornado/core").CachedEvents<AllGovernanceEvents>>;
|
||||
saveEvents({ events, lastBlock }: BaseEvents<AllGovernanceEvents>): Promise<void>;
|
||||
@ -65,8 +65,8 @@ export declare class NodeRegistryService extends BaseRegistryService {
|
||||
cacheDirectory: string;
|
||||
userDirectory: string;
|
||||
constructor(serviceConstructor: NodeRegistryServiceConstructor);
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateEventProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count, }: Parameters<BatchEventOnProgress>[0]): void;
|
||||
getEventsFromDB(): Promise<BaseEvents<RegistersEvents>>;
|
||||
getEventsFromCache(): Promise<import("@tornado/core").CachedEvents<RegistersEvents>>;
|
||||
saveEvents({ events, lastBlock }: BaseEvents<RegistersEvents>): Promise<void>;
|
||||
|
2
dist/services/treeCache.d.ts
vendored
2
dist/services/treeCache.d.ts
vendored
@ -29,7 +29,7 @@ export declare class TreeCache {
|
||||
currency: string;
|
||||
userDirectory: string;
|
||||
PARTS_COUNT: number;
|
||||
constructor({ netId, amount, currency, userDirectory, PARTS_COUNT }: TreeCacheConstructor);
|
||||
constructor({ netId, amount, currency, userDirectory, PARTS_COUNT, }: TreeCacheConstructor);
|
||||
getInstanceName(): string;
|
||||
createTree(events: DepositsEvents[], tree: MerkleTree): Promise<void>;
|
||||
}
|
||||
|
12
package.json
12
package.json
@ -24,11 +24,13 @@
|
||||
"updateEvents": "ts-node src/cli.ts updateEvents",
|
||||
"relayers": "ts-node src/cli.ts relayers",
|
||||
"createAccount": "ts-node src/cli.ts createAccount",
|
||||
"decryptNotes": "ts-node src/cli.ts decryptNotes",
|
||||
"decrypt": "ts-node src/cli.ts decrypt",
|
||||
"send": "ts-node src/cli.ts send",
|
||||
"balance": "ts-node src/cli.ts balance",
|
||||
"sign": "ts-node src/cli.ts sign",
|
||||
"broadcast": "ts-node src/cli.ts broadcast"
|
||||
"broadcast": "ts-node src/cli.ts broadcast",
|
||||
"proposals": "ts-node src/cli.ts proposals",
|
||||
"delegates": "ts-node src/cli.ts delegates"
|
||||
},
|
||||
"author": "",
|
||||
"license": "MIT",
|
||||
@ -51,11 +53,11 @@
|
||||
"optionalDependencies": {},
|
||||
"devDependencies": {
|
||||
"@colors/colors": "^1.6.0",
|
||||
"@tornado/core": "git+https://git.tornado.ws/tornadocontrib/tornado-core.git#9f4044d11033e99e0a863989864d1578a93de531",
|
||||
"@tornado/core": "git+https://git.tornado.ws/tornadocontrib/tornado-core.git#8041bd7f7801fd97a87d8c1945c0251b49032ec3",
|
||||
"@typechain/ethers-v6": "^0.5.1",
|
||||
"@types/figlet": "^1.7.0",
|
||||
"@typescript-eslint/eslint-plugin": "^8.9.0",
|
||||
"@typescript-eslint/parser": "^8.9.0",
|
||||
"@typescript-eslint/eslint-plugin": "^8.11.0",
|
||||
"@typescript-eslint/parser": "^8.11.0",
|
||||
"bloomfilter.js": "^1.0.2",
|
||||
"cli-table3": "^0.6.4",
|
||||
"commander": "^12.0.0",
|
||||
|
1351
src/program.ts
1351
src/program.ts
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,13 @@
|
||||
import path from 'path';
|
||||
import { deflate, constants } from 'zlib';
|
||||
import { stat, mkdir, readFile, writeFile } from 'fs/promises';
|
||||
import { BaseEvents, CachedEvents, MinimalEvents, zipAsync, unzipAsync } from '@tornado/core';
|
||||
import {
|
||||
BaseEvents,
|
||||
CachedEvents,
|
||||
MinimalEvents,
|
||||
zipAsync,
|
||||
unzipAsync,
|
||||
} from '@tornado/core';
|
||||
|
||||
export async function existsAsync(fileOrDir: string): Promise<boolean> {
|
||||
try {
|
||||
@ -99,7 +105,9 @@ export async function loadSavedEvents<T extends MinimalEvents>({
|
||||
}
|
||||
|
||||
try {
|
||||
const events = JSON.parse(await readFile(filePath, { encoding: 'utf8' })) as T[];
|
||||
const events = JSON.parse(
|
||||
await readFile(filePath, { encoding: 'utf8' }),
|
||||
) as T[];
|
||||
|
||||
return {
|
||||
events,
|
||||
@ -115,7 +123,13 @@ export async function loadSavedEvents<T extends MinimalEvents>({
|
||||
}
|
||||
}
|
||||
|
||||
export async function download({ name, cacheDirectory }: { name: string; cacheDirectory: string }) {
|
||||
export async function download({
|
||||
name,
|
||||
cacheDirectory,
|
||||
}: {
|
||||
name: string;
|
||||
cacheDirectory: string;
|
||||
}) {
|
||||
const fileName = `${name}.json`.toLowerCase();
|
||||
const zipName = `${fileName}.zip`;
|
||||
const zipPath = path.join(cacheDirectory, zipName);
|
||||
@ -141,7 +155,10 @@ export async function loadCachedEvents<T extends MinimalEvents>({
|
||||
if (module) {
|
||||
const events = JSON.parse(module);
|
||||
|
||||
const lastBlock = events && events.length ? events[events.length - 1].blockNumber : deployedBlock;
|
||||
const lastBlock =
|
||||
events && events.length
|
||||
? events[events.length - 1].blockNumber
|
||||
: deployedBlock;
|
||||
|
||||
return {
|
||||
events,
|
||||
|
@ -31,9 +31,16 @@ import type {
|
||||
} from '@tornado/core';
|
||||
import type { MerkleTree } from '@tornado/fixed-merkle-tree';
|
||||
import { TreeCache } from './treeCache';
|
||||
import { saveUserFile, loadSavedEvents, loadCachedEvents, existsAsync } from './data';
|
||||
import {
|
||||
saveUserFile,
|
||||
loadSavedEvents,
|
||||
loadCachedEvents,
|
||||
existsAsync,
|
||||
} from './data';
|
||||
|
||||
async function getEventsFromDB<T extends MinimalEvents>(service: BaseEventsService<T> & { userDirectory: string }) {
|
||||
async function getEventsFromDB<T extends MinimalEvents>(
|
||||
service: BaseEventsService<T> & { userDirectory: string },
|
||||
) {
|
||||
if (!service.userDirectory) {
|
||||
console.log(`Updating ${service.getInstanceName()} events\n`);
|
||||
console.log(`savedEvents count - ${0}`);
|
||||
@ -57,7 +64,9 @@ async function getEventsFromDB<T extends MinimalEvents>(service: BaseEventsServi
|
||||
return savedEvents;
|
||||
}
|
||||
|
||||
async function getEventsFromCache<T extends MinimalEvents>(service: BaseEventsService<T> & { cacheDirectory: string }) {
|
||||
async function getEventsFromCache<T extends MinimalEvents>(
|
||||
service: BaseEventsService<T> & { cacheDirectory: string },
|
||||
) {
|
||||
if (!service.cacheDirectory) {
|
||||
console.log(`cachedEvents count - ${0}`);
|
||||
console.log(`cachedEvents lastBlock - ${service.deployedBlock}\n`);
|
||||
@ -127,7 +136,8 @@ export class NodeTornadoService extends BaseTornadoService {
|
||||
constructor(serviceConstructor: NodeTornadoServiceConstructor) {
|
||||
super(serviceConstructor);
|
||||
|
||||
const { cacheDirectory, userDirectory, nativeCurrency, treeCache } = serviceConstructor;
|
||||
const { cacheDirectory, userDirectory, nativeCurrency, treeCache } =
|
||||
serviceConstructor;
|
||||
|
||||
this.cacheDirectory = cacheDirectory;
|
||||
this.userDirectory = userDirectory;
|
||||
@ -136,7 +146,12 @@ export class NodeTornadoService extends BaseTornadoService {
|
||||
this.treeCache = treeCache;
|
||||
}
|
||||
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateEventProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
@ -144,32 +159,51 @@ export class NodeTornadoService extends BaseTornadoService {
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events count - ${count}`);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateTransactionProgress({ currentIndex, totalIndex }: Parameters<BatchBlockOnProgress>[0]) {
|
||||
updateTransactionProgress({
|
||||
currentIndex,
|
||||
totalIndex,
|
||||
}: Parameters<BatchBlockOnProgress>[0]) {
|
||||
if (totalIndex) {
|
||||
console.log(`Fetched ${currentIndex} deposit txs of ${totalIndex}`);
|
||||
}
|
||||
}
|
||||
|
||||
updateBlockProgress({ currentIndex, totalIndex }: Parameters<BatchBlockOnProgress>[0]) {
|
||||
updateBlockProgress({
|
||||
currentIndex,
|
||||
totalIndex,
|
||||
}: Parameters<BatchBlockOnProgress>[0]) {
|
||||
if (totalIndex) {
|
||||
console.log(`Fetched ${currentIndex} withdrawal blocks of ${totalIndex}`);
|
||||
console.log(
|
||||
`Fetched ${currentIndex} withdrawal blocks of ${totalIndex}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateGraphProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events from graph node count - ${count}`);
|
||||
console.log(
|
||||
`downloaded ${type} events from graph node count - ${count}`,
|
||||
);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -179,35 +213,62 @@ export class NodeTornadoService extends BaseTornadoService {
|
||||
}
|
||||
|
||||
async getEventsFromCache() {
|
||||
return await getEventsFromCache<DepositsEvents | WithdrawalsEvents>(this);
|
||||
return await getEventsFromCache<DepositsEvents | WithdrawalsEvents>(
|
||||
this,
|
||||
);
|
||||
}
|
||||
|
||||
async validateEvents<S>({
|
||||
events,
|
||||
lastBlock,
|
||||
hasNewEvents,
|
||||
}: BaseEvents<DepositsEvents | WithdrawalsEvents> & { hasNewEvents?: boolean }): Promise<S> {
|
||||
const tree = await super.validateEvents<S>({ events, lastBlock, hasNewEvents });
|
||||
}: BaseEvents<DepositsEvents | WithdrawalsEvents> & {
|
||||
hasNewEvents?: boolean;
|
||||
}): Promise<S> {
|
||||
const tree = await super.validateEvents<S>({
|
||||
events,
|
||||
lastBlock,
|
||||
hasNewEvents,
|
||||
});
|
||||
|
||||
if (tree && this.currency === this.nativeCurrency && this.treeCache) {
|
||||
const merkleTree = tree as unknown as MerkleTree;
|
||||
|
||||
await this.treeCache.createTree(events as DepositsEvents[], merkleTree);
|
||||
await this.treeCache.createTree(
|
||||
events as DepositsEvents[],
|
||||
merkleTree,
|
||||
);
|
||||
|
||||
console.log(`${this.getInstanceName()}: Updated tree cache with root ${toFixedHex(BigInt(merkleTree.root))}\n`);
|
||||
console.log(
|
||||
`${this.getInstanceName()}: Updated tree cache with root ${toFixedHex(BigInt(merkleTree.root))}\n`,
|
||||
);
|
||||
}
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
||||
async saveEvents({ events, lastBlock }: BaseEvents<DepositsEvents | WithdrawalsEvents>) {
|
||||
async saveEvents({
|
||||
events,
|
||||
lastBlock,
|
||||
}: BaseEvents<DepositsEvents | WithdrawalsEvents>) {
|
||||
const eventTable = new Table();
|
||||
|
||||
eventTable.push(
|
||||
[{ colSpan: 2, content: `${this.getType()}s`, hAlign: 'center' }],
|
||||
['Instance', `${this.netId} chain ${this.amount} ${this.currency.toUpperCase()}`],
|
||||
['Anonymity set', `${events.length} equal user ${this.getType().toLowerCase()}s`],
|
||||
[{ colSpan: 2, content: `Latest ${this.getType().toLowerCase()}s` }],
|
||||
[
|
||||
'Instance',
|
||||
`${this.netId} chain ${this.amount} ${this.currency.toUpperCase()}`,
|
||||
],
|
||||
[
|
||||
'Anonymity set',
|
||||
`${events.length} equal user ${this.getType().toLowerCase()}s`,
|
||||
],
|
||||
[
|
||||
{
|
||||
colSpan: 2,
|
||||
content: `Latest ${this.getType().toLowerCase()}s`,
|
||||
},
|
||||
],
|
||||
...events
|
||||
.slice(events.length - 10)
|
||||
.reverse()
|
||||
@ -219,11 +280,16 @@ export class NodeTornadoService extends BaseTornadoService {
|
||||
}),
|
||||
);
|
||||
|
||||
await saveEvents<DepositsEvents | WithdrawalsEvents>(this, { events, lastBlock }, eventTable);
|
||||
await saveEvents<DepositsEvents | WithdrawalsEvents>(
|
||||
this,
|
||||
{ events, lastBlock },
|
||||
eventTable,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export type NodeEchoServiceConstructor = BaseEchoServiceConstructor & NodeServiceConstructor;
|
||||
export type NodeEchoServiceConstructor = BaseEchoServiceConstructor &
|
||||
NodeServiceConstructor;
|
||||
|
||||
export class NodeEchoService extends BaseEchoService {
|
||||
cacheDirectory: string;
|
||||
@ -238,7 +304,12 @@ export class NodeEchoService extends BaseEchoService {
|
||||
this.userDirectory = userDirectory;
|
||||
}
|
||||
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateEventProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
@ -246,20 +317,31 @@ export class NodeEchoService extends BaseEchoService {
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events count - ${count}`);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateGraphProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events from graph node count - ${count}`);
|
||||
console.log(
|
||||
`downloaded ${type} events from graph node count - ${count}`,
|
||||
);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -294,7 +376,8 @@ export class NodeEchoService extends BaseEchoService {
|
||||
}
|
||||
}
|
||||
|
||||
export type NodeEncryptedNotesServiceConstructor = BaseEncryptedNotesServiceConstructor & NodeServiceConstructor;
|
||||
export type NodeEncryptedNotesServiceConstructor =
|
||||
BaseEncryptedNotesServiceConstructor & NodeServiceConstructor;
|
||||
|
||||
export class NodeEncryptedNotesService extends BaseEncryptedNotesService {
|
||||
cacheDirectory: string;
|
||||
@ -309,7 +392,12 @@ export class NodeEncryptedNotesService extends BaseEncryptedNotesService {
|
||||
this.userDirectory = userDirectory;
|
||||
}
|
||||
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateEventProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
@ -317,20 +405,31 @@ export class NodeEncryptedNotesService extends BaseEncryptedNotesService {
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events count - ${count}`);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateGraphProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events from graph node count - ${count}`);
|
||||
console.log(
|
||||
`downloaded ${type} events from graph node count - ${count}`,
|
||||
);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -361,11 +460,16 @@ export class NodeEncryptedNotesService extends BaseEncryptedNotesService {
|
||||
}),
|
||||
);
|
||||
|
||||
await saveEvents<EncryptedNotesEvents>(this, { events, lastBlock }, eventTable);
|
||||
await saveEvents<EncryptedNotesEvents>(
|
||||
this,
|
||||
{ events, lastBlock },
|
||||
eventTable,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export type NodeGovernanceServiceConstructor = BaseGovernanceServiceConstructor & NodeServiceConstructor;
|
||||
export type NodeGovernanceServiceConstructor =
|
||||
BaseGovernanceServiceConstructor & NodeServiceConstructor;
|
||||
|
||||
export class NodeGovernanceService extends BaseGovernanceService {
|
||||
cacheDirectory: string;
|
||||
@ -380,7 +484,12 @@ export class NodeGovernanceService extends BaseGovernanceService {
|
||||
this.userDirectory = userDirectory;
|
||||
}
|
||||
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateEventProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
@ -388,27 +497,43 @@ export class NodeGovernanceService extends BaseGovernanceService {
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events count - ${count}`);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateGraphProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events from graph node count - ${count}`);
|
||||
console.log(
|
||||
`downloaded ${type} events from graph node count - ${count}`,
|
||||
);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateTransactionProgress({ currentIndex, totalIndex }: Parameters<BatchBlockOnProgress>[0]) {
|
||||
updateTransactionProgress({
|
||||
currentIndex,
|
||||
totalIndex,
|
||||
}: Parameters<BatchBlockOnProgress>[0]) {
|
||||
if (totalIndex) {
|
||||
console.log(`Fetched ${currentIndex} governance txs of ${totalIndex}`);
|
||||
console.log(
|
||||
`Fetched ${currentIndex} governance txs of ${totalIndex}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -438,11 +563,16 @@ export class NodeGovernanceService extends BaseGovernanceService {
|
||||
}),
|
||||
);
|
||||
|
||||
await saveEvents<AllGovernanceEvents>(this, { events, lastBlock }, eventTable);
|
||||
await saveEvents<AllGovernanceEvents>(
|
||||
this,
|
||||
{ events, lastBlock },
|
||||
eventTable,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export type NodeRegistryServiceConstructor = BaseRegistryServiceConstructor & NodeServiceConstructor;
|
||||
export type NodeRegistryServiceConstructor = BaseRegistryServiceConstructor &
|
||||
NodeServiceConstructor;
|
||||
|
||||
export class NodeRegistryService extends BaseRegistryService {
|
||||
cacheDirectory: string;
|
||||
@ -457,7 +587,12 @@ export class NodeRegistryService extends BaseRegistryService {
|
||||
this.userDirectory = userDirectory;
|
||||
}
|
||||
|
||||
updateEventProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateEventProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
@ -465,20 +600,31 @@ export class NodeRegistryService extends BaseRegistryService {
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events count - ${count}`);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateGraphProgress({ type, fromBlock, toBlock, count }: Parameters<BatchEventOnProgress>[0]) {
|
||||
updateGraphProgress({
|
||||
type,
|
||||
fromBlock,
|
||||
toBlock,
|
||||
count,
|
||||
}: Parameters<BatchEventOnProgress>[0]) {
|
||||
if (toBlock) {
|
||||
console.log(`fromBlock - ${fromBlock}`);
|
||||
console.log(`toBlock - ${toBlock}`);
|
||||
|
||||
if (count) {
|
||||
console.log(`downloaded ${type} events from graph node count - ${count}`);
|
||||
console.log(
|
||||
`downloaded ${type} events from graph node count - ${count}`,
|
||||
);
|
||||
console.log('____________________________________________');
|
||||
console.log(`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`);
|
||||
console.log(
|
||||
`Fetched ${type} events from graph node ${fromBlock} to ${toBlock}\n`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -509,7 +655,11 @@ export class NodeRegistryService extends BaseRegistryService {
|
||||
}),
|
||||
);
|
||||
|
||||
await saveEvents<RegistersEvents>(this, { events, lastBlock }, eventTable);
|
||||
await saveEvents<RegistersEvents>(
|
||||
this,
|
||||
{ events, lastBlock },
|
||||
eventTable,
|
||||
);
|
||||
}
|
||||
|
||||
async getRelayersFromDB(): Promise<CachedRelayers> {
|
||||
@ -524,7 +674,9 @@ export class NodeRegistryService extends BaseRegistryService {
|
||||
}
|
||||
|
||||
try {
|
||||
const { lastBlock, timestamp, relayers } = JSON.parse(await readFile(filePath, { encoding: 'utf8' }));
|
||||
const { lastBlock, timestamp, relayers } = JSON.parse(
|
||||
await readFile(filePath, { encoding: 'utf8' }),
|
||||
);
|
||||
|
||||
return {
|
||||
lastBlock,
|
||||
@ -556,7 +708,9 @@ export class NodeRegistryService extends BaseRegistryService {
|
||||
}
|
||||
|
||||
try {
|
||||
const { lastBlock, timestamp, relayers } = JSON.parse(await readFile(filePath, { encoding: 'utf8' }));
|
||||
const { lastBlock, timestamp, relayers } = JSON.parse(
|
||||
await readFile(filePath, { encoding: 'utf8' }),
|
||||
);
|
||||
|
||||
return {
|
||||
lastBlock,
|
||||
@ -582,7 +736,12 @@ export class NodeRegistryService extends BaseRegistryService {
|
||||
await saveUserFile({
|
||||
fileName: 'relayers.json',
|
||||
userDirectory: this.userDirectory,
|
||||
dataString: JSON.stringify({ lastBlock, timestamp, relayers }, null, 2) + '\n',
|
||||
dataString:
|
||||
JSON.stringify(
|
||||
{ lastBlock, timestamp, relayers },
|
||||
null,
|
||||
2,
|
||||
) + '\n',
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,10 @@ export function parseUrl(value?: string): string {
|
||||
}
|
||||
|
||||
export function parseRelayer(value?: string): string {
|
||||
if (!value || !(value.endsWith('.eth') || validateUrl(value, ['http:', 'https:']))) {
|
||||
if (
|
||||
!value ||
|
||||
!(value.endsWith('.eth') || validateUrl(value, ['http:', 'https:']))
|
||||
) {
|
||||
throw new InvalidArgumentError('Invalid Relayer ETH address or URL');
|
||||
}
|
||||
return value;
|
||||
|
@ -36,7 +36,13 @@ export class TreeCache {
|
||||
|
||||
PARTS_COUNT: number;
|
||||
|
||||
constructor({ netId, amount, currency, userDirectory, PARTS_COUNT = 4 }: TreeCacheConstructor) {
|
||||
constructor({
|
||||
netId,
|
||||
amount,
|
||||
currency,
|
||||
userDirectory,
|
||||
PARTS_COUNT = 4,
|
||||
}: TreeCacheConstructor) {
|
||||
this.netId = netId;
|
||||
this.amount = amount;
|
||||
this.currency = currency;
|
||||
|
Binary file not shown.
120
yarn.lock
120
yarn.lock
@ -648,10 +648,10 @@
|
||||
"@metamask/superstruct" "^3.1.0"
|
||||
"@metamask/utils" "^9.0.0"
|
||||
|
||||
"@metamask/eth-sig-util@^7.0.3":
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-7.0.3.tgz#be9e444fe0b8474c04e2ff42fd983173767f6ac0"
|
||||
integrity sha512-PAtGnOkYvh90k2lEZldq/FK7GTLF6WxE+2bV85PoA3pqlJnmJCAY62tuvxHSwnVngSKlc4mcNvjnUg2eYO6JGg==
|
||||
"@metamask/eth-sig-util@^8.0.0":
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-8.0.0.tgz#6310d93cd1101cab3cc6bc2a1ff526290ed2695b"
|
||||
integrity sha512-IwE6aoxUL39IhmsAgE4nk+OZbNo+ThFZRNsUjE1pjdEa4MFpWzm1Rue4zJ5DMy1oUyZBi/aiCLMhdMnjl2bh2Q==
|
||||
dependencies:
|
||||
"@ethereumjs/util" "^8.1.0"
|
||||
"@metamask/abi-utils" "^2.0.4"
|
||||
@ -777,20 +777,20 @@
|
||||
"@noble/hashes" "~1.4.0"
|
||||
"@scure/base" "~1.1.6"
|
||||
|
||||
"@tornado/contracts@git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#ece511f424dc811c3aec149a4bf0e3731c0598a4":
|
||||
"@tornado/contracts@git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#1b1d707878c16a3dc60d295299d4f0e7ce6ba831":
|
||||
version "1.0.2"
|
||||
resolved "git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#ece511f424dc811c3aec149a4bf0e3731c0598a4"
|
||||
resolved "git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#1b1d707878c16a3dc60d295299d4f0e7ce6ba831"
|
||||
dependencies:
|
||||
"@openzeppelin/contracts" "5.0.2"
|
||||
"@openzeppelin/contracts-v3" "npm:@openzeppelin/contracts@3.2.0-rc.0"
|
||||
ethers "^6.13.4"
|
||||
|
||||
"@tornado/core@git+https://git.tornado.ws/tornadocontrib/tornado-core.git#9f4044d11033e99e0a863989864d1578a93de531":
|
||||
"@tornado/core@git+https://git.tornado.ws/tornadocontrib/tornado-core.git#8041bd7f7801fd97a87d8c1945c0251b49032ec3":
|
||||
version "1.0.19"
|
||||
resolved "git+https://git.tornado.ws/tornadocontrib/tornado-core.git#9f4044d11033e99e0a863989864d1578a93de531"
|
||||
resolved "git+https://git.tornado.ws/tornadocontrib/tornado-core.git#8041bd7f7801fd97a87d8c1945c0251b49032ec3"
|
||||
dependencies:
|
||||
"@metamask/eth-sig-util" "^7.0.3"
|
||||
"@tornado/contracts" "git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#ece511f424dc811c3aec149a4bf0e3731c0598a4"
|
||||
"@metamask/eth-sig-util" "^8.0.0"
|
||||
"@tornado/contracts" "git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#1b1d707878c16a3dc60d295299d4f0e7ce6ba831"
|
||||
"@tornado/fixed-merkle-tree" "^0.7.3"
|
||||
"@tornado/snarkjs" "^0.1.20"
|
||||
"@tornado/websnark" "^0.0.4"
|
||||
@ -907,62 +907,62 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f"
|
||||
integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^8.9.0":
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.9.0.tgz#bf0b25305b0bf014b4b194a6919103d7ac2a7907"
|
||||
integrity sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==
|
||||
"@typescript-eslint/eslint-plugin@^8.11.0":
|
||||
version "8.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz#c3f087d20715fa94310b30666c08b3349e0ab084"
|
||||
integrity sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==
|
||||
dependencies:
|
||||
"@eslint-community/regexpp" "^4.10.0"
|
||||
"@typescript-eslint/scope-manager" "8.9.0"
|
||||
"@typescript-eslint/type-utils" "8.9.0"
|
||||
"@typescript-eslint/utils" "8.9.0"
|
||||
"@typescript-eslint/visitor-keys" "8.9.0"
|
||||
"@typescript-eslint/scope-manager" "8.11.0"
|
||||
"@typescript-eslint/type-utils" "8.11.0"
|
||||
"@typescript-eslint/utils" "8.11.0"
|
||||
"@typescript-eslint/visitor-keys" "8.11.0"
|
||||
graphemer "^1.4.0"
|
||||
ignore "^5.3.1"
|
||||
natural-compare "^1.4.0"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/parser@^8.9.0":
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.9.0.tgz#0cecda6def8aef95d7c7098359c0fda5a362d6ad"
|
||||
integrity sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==
|
||||
"@typescript-eslint/parser@^8.11.0":
|
||||
version "8.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.11.0.tgz#2ad1481388dc1c937f50b2d138c9ca57cc6c5cce"
|
||||
integrity sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "8.9.0"
|
||||
"@typescript-eslint/types" "8.9.0"
|
||||
"@typescript-eslint/typescript-estree" "8.9.0"
|
||||
"@typescript-eslint/visitor-keys" "8.9.0"
|
||||
"@typescript-eslint/scope-manager" "8.11.0"
|
||||
"@typescript-eslint/types" "8.11.0"
|
||||
"@typescript-eslint/typescript-estree" "8.11.0"
|
||||
"@typescript-eslint/visitor-keys" "8.11.0"
|
||||
debug "^4.3.4"
|
||||
|
||||
"@typescript-eslint/scope-manager@8.9.0":
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.9.0.tgz#c98fef0c4a82a484e6a1eb610a55b154d14d46f3"
|
||||
integrity sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==
|
||||
"@typescript-eslint/scope-manager@8.11.0":
|
||||
version "8.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz#9d399ce624118966732824878bc9a83593a30405"
|
||||
integrity sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "8.9.0"
|
||||
"@typescript-eslint/visitor-keys" "8.9.0"
|
||||
"@typescript-eslint/types" "8.11.0"
|
||||
"@typescript-eslint/visitor-keys" "8.11.0"
|
||||
|
||||
"@typescript-eslint/type-utils@8.9.0":
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.9.0.tgz#aa86da3e4555fe7c8b42ab75e13561c4b5a8dfeb"
|
||||
integrity sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==
|
||||
"@typescript-eslint/type-utils@8.11.0":
|
||||
version "8.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz#b7f9e6120c1ddee8a1a07615646642ad85fc91b5"
|
||||
integrity sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "8.9.0"
|
||||
"@typescript-eslint/utils" "8.9.0"
|
||||
"@typescript-eslint/typescript-estree" "8.11.0"
|
||||
"@typescript-eslint/utils" "8.11.0"
|
||||
debug "^4.3.4"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/types@8.9.0":
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.9.0.tgz#b733af07fb340b32e962c6c63b1062aec2dc0fe6"
|
||||
integrity sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==
|
||||
"@typescript-eslint/types@8.11.0":
|
||||
version "8.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.11.0.tgz#7c766250502097f49bbc2e651132e6bf489e20b8"
|
||||
integrity sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==
|
||||
|
||||
"@typescript-eslint/typescript-estree@8.9.0":
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.9.0.tgz#1714f167e9063062dc0df49c1d25afcbc7a96199"
|
||||
integrity sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==
|
||||
"@typescript-eslint/typescript-estree@8.11.0":
|
||||
version "8.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz#35fe5d3636fc5727c52429393415412e552e222b"
|
||||
integrity sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "8.9.0"
|
||||
"@typescript-eslint/visitor-keys" "8.9.0"
|
||||
"@typescript-eslint/types" "8.11.0"
|
||||
"@typescript-eslint/visitor-keys" "8.11.0"
|
||||
debug "^4.3.4"
|
||||
fast-glob "^3.3.2"
|
||||
is-glob "^4.0.3"
|
||||
@ -970,22 +970,22 @@
|
||||
semver "^7.6.0"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/utils@8.9.0":
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.9.0.tgz#748bbe3ea5bee526d9786d9405cf1b0df081c299"
|
||||
integrity sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==
|
||||
"@typescript-eslint/utils@8.11.0":
|
||||
version "8.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.11.0.tgz#4480d1e9f2bb18ea3510c79f870a1aefc118103d"
|
||||
integrity sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.4.0"
|
||||
"@typescript-eslint/scope-manager" "8.9.0"
|
||||
"@typescript-eslint/types" "8.9.0"
|
||||
"@typescript-eslint/typescript-estree" "8.9.0"
|
||||
"@typescript-eslint/scope-manager" "8.11.0"
|
||||
"@typescript-eslint/types" "8.11.0"
|
||||
"@typescript-eslint/typescript-estree" "8.11.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@8.9.0":
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.9.0.tgz#5f11f4d9db913f37da42776893ffe0dd1ae78f78"
|
||||
integrity sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==
|
||||
"@typescript-eslint/visitor-keys@8.11.0":
|
||||
version "8.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz#273de1cbffe63d9f9cd7dfc20b5a5af66310cb92"
|
||||
integrity sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "8.9.0"
|
||||
"@typescript-eslint/types" "8.11.0"
|
||||
eslint-visitor-keys "^3.4.3"
|
||||
|
||||
"@ungap/structured-clone@^1.2.0":
|
||||
|
Loading…
Reference in New Issue
Block a user