UNPKG

@harmoniclabs/plu-ts-onchain

Version:

An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript

24 lines (23 loc) 988 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pforce_minimal = exports._pforce = void 0; var IRDelayed_1 = require("../../../IR/IRNodes/IRDelayed.js"); var IRForced_1 = require("../../../IR/IRNodes/IRForced.js"); var Term_1 = require("../../Term/index.js"); var types_1 = require("../../type_system/types.js"); function _pforce(toForce) { var outType = toForce.type[0] === types_1.PrimType.Delayed ? toForce.type[1] : toForce.type; return new Term_1.Term(outType, function (cfg, dbn) { var toForceUPLC = toForce.toIR(cfg, dbn); // if directly applying to Delay UPLC just remove the delay // example: // (force (delay (con int 11))) === (con int 11) if (toForceUPLC instanceof IRDelayed_1.IRDelayed) { return toForceUPLC.delayed; } // any other case return new IRForced_1.IRForced(toForceUPLC); }); } exports._pforce = _pforce; exports.pforce_minimal = _pforce;