UNPKG

@ethereumjs/mpt

Version:

Implementation of the modified merkle patricia tree as specified in Ethereum's yellow paper.

48 lines 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addHexPrefix = addHexPrefix; exports.removeHexPrefix = removeHexPrefix; exports.isTerminator = isTerminator; /** * Prepends hex prefix to an array of nibbles. * @param key - Array of nibbles * @returns returns buffer of encoded data **/ function addHexPrefix(key, terminator) { // odd if (key.length % 2) { key.unshift(1); } else { // even key.unshift(0); key.unshift(0); } if (terminator) { key[0] += 2; } return key; } /** * Removes hex prefix of an array of nibbles. * @param val - Array of nibbles * @private */ function removeHexPrefix(val) { if (val[0] % 2) { val = val.slice(1); } else { val = val.slice(2); } return val; } /** * Returns true if hex-prefixed path is for a terminating (leaf) node. * @param key - a hex-prefixed array of nibbles * @private */ function isTerminator(key) { return key[0] > 1; } //# sourceMappingURL=hex.js.map