UNPKG

@elephant-xyz/cli

Version:
30 lines 1.25 kB
import pLimit from 'p-limit'; import { TransactionStatusService } from './transaction-status.service.js'; import { logger } from '../utils/logger.js'; export class TransactionStatusCheckerService { statusService; limit; constructor(rpcUrl, maxConcurrent = 10) { this.statusService = new TransactionStatusService(rpcUrl); this.limit = pLimit(maxConcurrent); logger.technical(`Transaction status checker initialized with max concurrent: ${maxConcurrent}`); } async checkTransactionStatuses(transactions, onProgress) { let completed = 0; const promises = transactions.map((record) => this.limit(async () => { const status = await this.statusService.getTransactionStatus(record.transactionHash); completed++; onProgress?.(completed, transactions.length); return { ...record, status: status.status, blockNumber: status.blockNumber, gasUsed: status.gasUsed, checkTimestamp: new Date().toISOString(), error: status.error, }; })); return Promise.all(promises); } } //# sourceMappingURL=transaction-status-checker.service.js.map