@airgap/crypto
Version:
The @airgap/crypto packages provides common crypto functionalities.
33 lines • 1.46 kB
JavaScript
;
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