UNPKG

opnet

Version:

The perfect library for building Bitcoin-based applications.

33 lines (32 loc) 1.45 kB
import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js'; import { MempoolDeploymentTransactionData } from './decoders/MempoolDeploymentTransactionData.js'; import { MempoolGenericTransactionData } from './decoders/MempoolGenericTransactionData.js'; import { MempoolInteractionTransactionData } from './decoders/MempoolInteractionTransactionData.js'; export class MempoolTransactionParser { static parseTransactions(transactions) { if (!transactions) { return []; } const result = []; for (const tx of transactions) { if (!tx) throw new Error('Something went wrong while parsing mempool transactions'); result.push(this.parseTransaction(tx)); } return result; } static parseTransaction(data) { if (!data) throw new Error('Mempool transaction data is required'); switch (data.transactionType) { case OPNetTransactionTypes.Generic: return new MempoolGenericTransactionData(data); case OPNetTransactionTypes.Interaction: return new MempoolInteractionTransactionData(data); case OPNetTransactionTypes.Deployment: return new MempoolDeploymentTransactionData(data); default: throw new Error(`Unknown mempool transaction type: ${data.transactionType}`); } } }