UNPKG

@mutants/cardano-tx-builder

Version:

A package that provides utility functions to build and destructure a cardano transaction

51 lines (50 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TransactionReader = void 0; const cbor_1 = require("cbor"); const constants_1 = require("./constants"); const decodeInput_1 = require("./decodeInput"); const decodeOutput_1 = require("./decodeOutput"); class TransactionReader { constructor(tx) { this.inputs = []; this.outputs = []; this.requiredSigners = []; const decoded = (0, cbor_1.decode)(tx); this.body = decoded[0]; this.decodeInputs(); this.decodeOutputs(); this.decodeRequiredSigners(); } decodeInputs() { const encodedInputs = this.body.get(constants_1.BabbageTransactionBody.Inputs); for (const encodedInput of encodedInputs) { this.inputs.push((0, decodeInput_1.decodeInput)(encodedInput)); } } decodeOutputs() { const encodedOutputs = this.body.get(constants_1.BabbageTransactionBody.Outputs); for (const encodedOutput of encodedOutputs) { this.outputs.push((0, decodeOutput_1.decodeOutput)(encodedOutput)); } } decodeRequiredSigners() { const encodedRequiredSigners = this.body.get(constants_1.BabbageTransactionBody.RequiredSigners); if (!encodedRequiredSigners) { return; } for (const requiredSigner of encodedRequiredSigners) { this.requiredSigners.push(requiredSigner.toString("hex")); } } getOutputs() { return this.outputs; } getInputs() { return this.inputs; } getRequiredSigners() { return this.requiredSigners; } } exports.TransactionReader = TransactionReader;