@mutants/cardano-tx-builder
Version:
A package that provides utility functions to build and destructure a cardano transaction
35 lines (34 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.wrapPlutusDataField = exports.tagPlutusData = void 0;
const cbor_1 = require("cbor");
const tagPlutusData = (plutusData) => {
const tagNumber = 121 + plutusData.constructor;
const fields = plutusData.fields.map((field) => (0, exports.wrapPlutusDataField)(field));
if (plutusData.fields.encodeCBOR) {
fields.encodeCBOR = plutusData.fields.encodeCBOR;
}
return new cbor_1.Tagged(tagNumber, fields);
};
exports.tagPlutusData = tagPlutusData;
const wrapPlutusDataField = (field) => {
if (field.bytes) {
return field.bytes instanceof Buffer
? field.bytes
: Buffer.from(field.bytes, "hex");
}
else if (field.list) {
return field.list.map((item) => (0, exports.wrapPlutusDataField)(item));
}
else if (field.int) {
return field.int;
}
else if (field.map) {
return field.map;
}
else if (field.plutusData) {
return (0, exports.tagPlutusData)(field.plutusData);
}
throw new Error("Invalid PlutusDataField");
};
exports.wrapPlutusDataField = wrapPlutusDataField;