UNPKG

@harmoniclabs/plu-ts-onchain

Version:

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

31 lines (30 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.termTyToConstTy = void 0; var types_1 = require("./types.js"); var unwrapAlias_1 = require("./tyArgs/unwrapAlias.js"); var uplc_1 = require("@harmoniclabs/uplc"); function termTyToConstTy(t) { switch (t[0]) { case types_1.PrimType.Alias: return termTyToConstTy((0, unwrapAlias_1.unwrapAlias)(t)); case types_1.PrimType.Unit: return uplc_1.constT.unit; case types_1.PrimType.Int: return uplc_1.constT.int; case types_1.PrimType.BS: return uplc_1.constT.byteStr; case types_1.PrimType.bls12_381_G1_element: return uplc_1.constT.bls12_381_G1_element; case types_1.PrimType.bls12_381_G2_element: return uplc_1.constT.bls12_381_G2_element; case types_1.PrimType.bls12_381_MlResult: return uplc_1.constT.bls12_381_MlResult; case types_1.PrimType.Bool: return uplc_1.constT.bool; case types_1.PrimType.Str: return uplc_1.constT.str; case types_1.PrimType.Struct: case types_1.PrimType.Data: case types_1.PrimType.AsData: return uplc_1.constT.data; case types_1.PrimType.List: return uplc_1.constT.listOf(termTyToConstTy(t[1])); case types_1.PrimType.Pair: return uplc_1.constT.pairOf(termTyToConstTy(t[1]), termTyToConstTy(t[2])); case types_1.PrimType.Delayed: case types_1.PrimType.Lambda: case types_1.PrimType.Sop: default: throw new Error("unable to convert term type to uplc constant type"); } } exports.termTyToConstTy = termTyToConstTy;