UNPKG

airgap-coin-lib

Version:

The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.

36 lines 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function isMichelineNode(node) { return isMichelineNodeRecursive(node, 0); } exports.isMichelineNode = isMichelineNode; function isMichelineNodeRecursive(node, recursionLevel) { return (isMichelinePrimitive('int', node) || isMichelinePrimitive('string', node) || isMichelinePrimitive('bytes', node) || isMichelinePrimitiveApplication(node) || isMichelineSequenceRecursive(node, recursionLevel)); } function isMichelinePrimitive(type, node) { return node instanceof Object && type in node; } exports.isMichelinePrimitive = isMichelinePrimitive; function isMichelinePrimitiveApplication(node) { return node instanceof Object && 'prim' in node; } exports.isMichelinePrimitiveApplication = isMichelinePrimitiveApplication; var MICHELINE_MAX_CHECK_RECURSION_DEPTH = 1; function isMichelineSequence(node, recursive) { if (recursive === void 0) { recursive = true; } return isMichelineSequenceRecursive(node, recursive ? 0 : MICHELINE_MAX_CHECK_RECURSION_DEPTH + 1); } exports.isMichelineSequence = isMichelineSequence; function isMichelineSequenceRecursive(node, recursionLevel) { return (Array.isArray(node) && (node.length === 0 || // for simplicity and to avoid too many recursive calls for complex structures // after the `MAX_CHECK_RECURSION_DEPTH`th level has been reached, we assume every array is a valid Micheline sequence recursionLevel > MICHELINE_MAX_CHECK_RECURSION_DEPTH || node.every(function (element) { return isMichelineNodeRecursive(element, recursionLevel + 1); }))); } //# sourceMappingURL=utils.js.map