UNPKG

opnet

Version:

The perfect library for building Bitcoin-based applications.

34 lines (33 loc) 1.47 kB
import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js'; import { DeploymentTransaction } from './decoders/DeploymentTransaction.js'; import { GenericTransaction } from './decoders/GenericTransaction.js'; import { InteractionTransaction } from './decoders/InteractionTransaction.js'; export class TransactionParser { static parseTransactions(transactions, network) { if (!transactions) { return []; } const transactionArray = []; for (const transaction of transactions) { if (!transaction) throw new Error(`Something went wrong while parsing transactions`); transactionArray.push(this.parseTransaction(transaction, network)); } return transactionArray; } static parseTransaction(transaction, network) { if (!transaction) throw new Error('Transaction is required'); const opnetType = transaction.OPNetType; switch (opnetType) { case OPNetTransactionTypes.Generic: return new GenericTransaction(transaction, network); case OPNetTransactionTypes.Interaction: return new InteractionTransaction(transaction, network); case OPNetTransactionTypes.Deployment: return new DeploymentTransaction(transaction, network); default: throw new Error('Unknown transaction type'); } } }