UNPKG

@harmoniclabs/buildooor

Version:

Cardano transaction builder in typescript

55 lines (54 loc) 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cloneITxBuildMint = exports.normalizeITxBuildMint = void 0; var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts"); var CanBeData_1 = require("../utils/CanBeData.js"); var obj_utils_1 = require("@harmoniclabs/obj-utils"); ; function normalizeITxBuildMint(_a) { var value = _a.value, script = _a.script; if (value instanceof cardano_ledger_ts_1.Value) { if (value.map.length !== 2) throw new Error("invalid mint value, only single policy allowed"); value = value.map[1]; } if (!isNormalizedIValuePolicyEntry(value)) { value = { policy: new cardano_ledger_ts_1.Hash28(value.policy), assets: value.assets.map(cardano_ledger_ts_1.normalizeIValueAsset) }; } if (!(0, obj_utils_1.isObject)(script) || !(0, CanBeData_1.canBeData)(script.redeemer)) throw new Error("invalid ITxBuildMint to normalize"); if ((0, cardano_ledger_ts_1.isIUTxO)(script.ref)) { script = { ref: new cardano_ledger_ts_1.UTxO(script.ref), redeemer: (0, CanBeData_1.forceData)(script.redeemer) }; } else { script = { inline: script.inline.clone(), redeemer: (0, CanBeData_1.forceData)(script.redeemer) }; } return { value: value, script: script }; } exports.normalizeITxBuildMint = normalizeITxBuildMint; function isNormalizedIValuePolicyEntry(stuff) { return (0, obj_utils_1.isObject)(stuff) && (stuff.policy instanceof cardano_ledger_ts_1.Hash28 && Array.isArray(stuff.assets) && stuff.assets.every(isIValueAssetBI)); } function isIValueAssetBI(stuff) { return (0, obj_utils_1.isObject)(stuff) && (stuff.name instanceof Uint8Array && typeof stuff.quantity === "bigint"); } /** @deprecated use `normalizeITxBuildMint` instead */ function cloneITxBuildMint(mint) { return normalizeITxBuildMint(mint); } exports.cloneITxBuildMint = cloneITxBuildMint;