UNPKG

@airgap/crypto

Version:

The @airgap/crypto packages provides common crypto functionalities.

33 lines 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.incIndex = exports.splitDerivationPath = exports.createDerivationIndexFromString = exports.createDerivationIndexFromNumber = void 0; var MASK_HARD_DERIVATION = 0x80000000; var MASK_SOFT_DERIVATION = 0x00000000; function createDerivationIndexFromNumber(value, isHardened) { var mask = isHardened ? MASK_HARD_DERIVATION : MASK_SOFT_DERIVATION; return { value: value, // tslint:disable-next-line: no-bitwise masked: parseInt((BigInt(mask) | BigInt(value)).toString(), 10), isHardened: isHardened }; } exports.createDerivationIndexFromNumber = createDerivationIndexFromNumber; function createDerivationIndexFromString(value) { var isHardened = ['h', "'"].includes(value.slice(-1)); var index = parseInt(isHardened ? value.slice(0, -1) : value, 10); return createDerivationIndexFromNumber(index, isHardened); } exports.createDerivationIndexFromString = createDerivationIndexFromString; function splitDerivationPath(path) { if (path.length === 0 || !path.startsWith('m/') || path === 'm/') { return []; } return path.slice(2).split('/').map(createDerivationIndexFromString); } exports.splitDerivationPath = splitDerivationPath; function incIndex(current) { return createDerivationIndexFromNumber(current.value + 1, current.isHardened); } exports.incIndex = incIndex; //# sourceMappingURL=derivation.js.map