@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
59 lines (58 loc) • 3.61 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.mockPBoolMethods = exports.makeMockTermBool = void 0;
var obj_utils_1 = require("@harmoniclabs/obj-utils");
var makeMockTerm_1 = require("./makeMockTerm.js");
var types_1 = require("../../../../type_system/types.js");
var makeMockUtilityTerm_1 = require("./makeMockUtilityTerm.js");
var BaseUtilityTerm_1 = require("../BaseUtilityTerm.js");
// export type TermBool = Term<PBool> & {
//
// readonly por: TermFn<[ PDelayed<PBool> ], PBool>
// readonly or: ( other: PappArg<PBool> ) => TermBool
//
// readonly pstrictOr: TermFn<[ PBool ], PBool>
// readonly strictOr: ( other: PappArg<PBool> ) => TermBool
//
// readonly pand: TermFn<[ PDelayed<PBool> ], PBool>
// readonly and: ( other: PappArg<PBool> ) => TermBool
//
// readonly pstrictAnd: TermFn<[ PBool ], PBool>
// readonly strictAnd: ( other: PappArg<PBool> ) => TermBool
//
// }
function makeMockTermBool() {
return mockPBoolMethods((0, makeMockTerm_1.makeMockTerm)(types_1.bool));
}
exports.makeMockTermBool = makeMockTermBool;
var getterOnly = {
set: function () { },
configurable: false,
enumerable: true
};
function mockPBoolMethods(term) {
term = (0, BaseUtilityTerm_1.addBaseUtilityTerm)(term);
(0, obj_utils_1.definePropertyIfNotPresent)(term, "por", __assign({ get: function () { return (0, makeMockTerm_1.makeMockTerm)((0, types_1.lam)((0, types_1.delayed)(types_1.bool), types_1.bool)); } }, getterOnly));
(0, obj_utils_1.defineReadOnlyProperty)(term, "or", function (other) { return mockPBoolMethods((0, makeMockTerm_1.makeMockTerm)(types_1.bool)); });
(0, obj_utils_1.definePropertyIfNotPresent)(term, "pstrictOr", __assign({ get: function () { return (0, makeMockTerm_1.makeMockTerm)((0, types_1.lam)(types_1.bool, types_1.bool)); } }, getterOnly));
(0, obj_utils_1.defineReadOnlyProperty)(term, "strictOr", function (other) { return mockPBoolMethods((0, makeMockTerm_1.makeMockTerm)(types_1.bool)); });
(0, obj_utils_1.definePropertyIfNotPresent)(term, "pand", __assign({ get: function () { return (0, makeMockTerm_1.makeMockTerm)((0, types_1.lam)((0, types_1.delayed)(types_1.bool), types_1.bool)); } }, getterOnly));
(0, obj_utils_1.defineReadOnlyProperty)(term, "and", function (other) { return mockPBoolMethods((0, makeMockTerm_1.makeMockTerm)(types_1.bool)); });
(0, obj_utils_1.definePropertyIfNotPresent)(term, "pstrictAnd", __assign({ get: function () { return (0, makeMockTerm_1.makeMockTerm)((0, types_1.lam)(types_1.bool, types_1.bool)); } }, getterOnly));
(0, obj_utils_1.defineReadOnlyProperty)(term, "strictAnd", function (other) { return mockPBoolMethods((0, makeMockTerm_1.makeMockTerm)(types_1.bool)); });
(0, obj_utils_1.definePropertyIfNotPresent)(term, "peq", __assign({ get: function () { return (0, makeMockUtilityTerm_1.makeMockUtilityTerm)((0, types_1.lam)(types_1.bool, types_1.bool)); } }, getterOnly));
(0, obj_utils_1.defineReadOnlyProperty)(term, "eq", function (other) { return makeMockTermBool(); });
return term;
}
exports.mockPBoolMethods = mockPBoolMethods;