UNPKG

@harmoniclabs/plu-ts-onchain

Version:

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

46 lines (45 loc) 2.35 kB
import { TermFn, PBool, PLam, PDelayed } from "../../../PTypes/index.js"; import { Term } from "../../../Term/index.js"; import { TermType, ToPType } from "../../../type_system/index.js"; import { UtilityTermOf } from "../../std/UtilityTerms/addUtilityForType.js"; import { PappArg } from "../../pappArg.js"; import { TermBool } from "../../std/UtilityTerms/TermBool.js"; export declare function pstrictIf<ReturnT extends TermType>(returnType: ReturnT): TermFn<[PBool, ToPType<ReturnT>, ToPType<ReturnT>], ToPType<ReturnT>>; export declare function pif<ReturnT extends TermType>(returnType?: ReturnT | undefined): Term<PLam<PBool, PLam<ToPType<ReturnT>, PLam<ToPType<ReturnT>, ToPType<ReturnT>>>>> & { $: (condition: PappArg<PBool>) => Term<PLam<ToPType<ReturnT>, PLam<ToPType<ReturnT>, ToPType<ReturnT>>>> & { then: (caseTrue: PappArg<ToPType<ReturnT>>) => TermFn<[ToPType<ReturnT>], ToPType<ReturnT>> & { else: (caseFalse: PappArg<ToPType<ReturnT>>) => UtilityTermOf<ToPType<ReturnT>>; }; $: (caseTrue: PappArg<ToPType<ReturnT>>) => TermFn<[ToPType<ReturnT>], ToPType<ReturnT>> & { else: (caseFalse: PappArg<ToPType<ReturnT>>) => UtilityTermOf<ToPType<ReturnT>>; }; }; }; export declare const pnot: Term<PLam<PBool, PBool>> & { $: (bool: PappArg<PBool>) => TermBool; }; export declare const pstrictAnd: Term<PLam<PBool, PLam<PBool, PBool>>> & { $: (bool: PappArg<PBool>) => Term<PLam<PBool, PBool>> & { $: (bool: PappArg<PBool>) => TermBool; }; }; export declare const pand: Term<PLam<PBool, PLam<PDelayed<PBool>, PBool>>> & { $: (bool: PappArg<PBool>) => Term<PLam<PDelayed<PBool>, PBool>> & { $: (bool: PappArg<PDelayed<PBool>>) => TermBool; }; }; export declare const pstrictOr: Term<PLam<PBool, PLam<PBool, PBool>>> & { $: (bool: PappArg<PBool>) => Term<PLam<PBool, PBool>> & { $: (bool: PappArg<PBool>) => TermBool; }; }; export declare const por: Term<PLam<PBool, PLam<PDelayed<PBool>, PBool>>> & { $: (bool: PappArg<PBool>) => Term<PLam<PDelayed<PBool>, PBool>> & { $: (bool: PappArg<PDelayed<PBool>>) => TermBool; }; }; export declare const peqBool: Term<PLam<PBool, PLam<PBool, PBool>>> & { $: (bool: PappArg<PBool>) => Term<PLam<PBool, PBool>> & { $: (bool: PappArg<PBool>) => TermBool; }; };