UNPKG

@airgap/crypto

Version:

The @airgap/crypto packages provides common crypto functionalities.

50 lines 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeDerivative = exports.encodeDerivative = void 0; var coinlib_core_1 = require("@airgap/coinlib-core"); var bip32_1 = require("./utils/bip32"); var bytes_1 = require("./utils/bytes"); var factory_1 = require("./utils/factory"); var hex_1 = require("./utils/hex"); var zip32_1 = require("./utils/zip32"); function encodeDerivative(type, derivative, bip39VersionOrUndefined) { var node = (0, factory_1.newDerivationNodeFromDerivative)(derivative); return encodeNode(type, node, bip39VersionOrUndefined); } exports.encodeDerivative = encodeDerivative; function encodeNode(type, node, bip39VersionOrUndefined) { switch (type) { case 'bytes': return (0, bytes_1.bytesEncodeNode)(node); case 'hex': return (0, hex_1.hexEncodeNode)(node); case 'bip32': return (0, bip32_1.bip32EncodeNode)(node, bip39VersionOrUndefined); case 'zip32': return (0, zip32_1.zip32EncodeNode)(node); default: (0, coinlib_core_1.assertNever)(type); throw new Error('Unsupported encoding type'); } } function decodeDerivative(node) { var decodedNode = decodeNode(node); return (0, factory_1.newCryptoDerivativeFromNode)(decodedNode); } exports.decodeDerivative = decodeDerivative; function decodeNode(node) { switch (node.type) { case 'bytes': return (0, bytes_1.bytesDecodeNode)(node); case 'hex': return (0, hex_1.hexDecodeNode)(node); case 'bip32': return (0, bip32_1.bip32DecodeNode)(node); case 'zip32': return (0, zip32_1.zip32DecodeNode)(node); default: (0, coinlib_core_1.assertNever)(node); throw new Error('Unsupported encoded node type'); } } //# sourceMappingURL=encoding.js.map