opnet
Version:
The perfect library for building Bitcoin-based applications.
33 lines (32 loc) • 1.45 kB
JavaScript
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}`);
}
}
}