@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
JavaScript
"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;