@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
26 lines (25 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.passertAndContinue = exports.passertOrTrace = exports.passert = void 0;
var types_1 = require("../../type_system/types.js");
var bool_1 = require("../builtins/bool/index.js");
var pdelay_1 = require("../pdelay.js");
var perror_1 = require("../perror.js");
var pfn_1 = require("../pfn.js");
var pforce_1 = require("../pforce/index.js");
var phoist_1 = require("../phoist.js");
var traces_1 = require("./traces.js");
var pmakeUnit_1 = require("./unit/pmakeUnit.js");
exports.passert = (0, phoist_1.phoist)((0, pfn_1.pfn)([types_1.bool], types_1.unit)(function (condition) { return (0, bool_1.pif)(types_1.unit).$(condition).then((0, pmakeUnit_1.pmakeUnit)()).else((0, perror_1.perror)(types_1.unit)); }));
exports.passertOrTrace = (0, phoist_1.phoist)((0, pfn_1.pfn)([types_1.str, types_1.bool], types_1.unit)(function (msg, condition) {
return (0, bool_1.pif)(types_1.unit).$(condition)
.then((0, pmakeUnit_1.pmakeUnit)())
.else((0, traces_1.ptraceError)(types_1.unit).$(msg));
}));
var passertAndContinue = function (resultType) { return (0, phoist_1.phoist)((0, pfn_1.pfn)([types_1.bool, (0, types_1.delayed)(resultType)], resultType)(function (condition, continuation) {
return (0, pforce_1.pforce)((0, bool_1.pstrictIf)((0, types_1.delayed)(resultType))
.$(condition)
.$(continuation)
.$((0, pdelay_1.pdelay)((0, perror_1.perror)(resultType))));
})); };
exports.passertAndContinue = passertAndContinue;