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