@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
28 lines (27 loc) • 986 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.includesDynamicPairs = void 0;
var tyArgs_1 = require("./tyArgs/index.js");
var types_1 = require("./types.js");
function includesDynamicPairs(t) {
if (!Array.isArray(t))
return false;
if (t[0] === types_1.PrimType.Alias)
return includesDynamicPairs((0, tyArgs_1.unwrapAlias)(t));
if (t[0] === types_1.PrimType.AsData)
return false;
if (t[0] === types_1.PrimType.List)
return includesDynamicPairs(t[1]);
if (t[0] === types_1.PrimType.Delayed)
return includesDynamicPairs(t[1]);
if (t[0] === types_1.PrimType.Lambda) {
return (includesDynamicPairs(t[1]) ||
includesDynamicPairs(t[2]));
}
if (t[0] === types_1.PrimType.Pair) {
return (t[1][0] === types_1.PrimType.AsData ||
t[2][0] === types_1.PrimType.AsData);
}
return false;
}
exports.includesDynamicPairs = includesDynamicPairs;