UNPKG

@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
"use strict"; 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;