bolt09
Version:
BOLT 09 helper methods
25 lines (18 loc) • 459 B
JavaScript
const {floor} = Math;
const {max} = Math;
/** Encode feature bits into a buffer
{
bits: <Bit Length>
features: [<Feature Bit Number>]
}
@returns
{
data: <Feature Bits Written Into Buffer>
}
*/
module.exports = ({bits, features}) => {
const data = Buffer.alloc(floor(max(...features) / bits) + 1);
const endIndex = data.length - 1;
features.forEach(n => data[endIndex - floor(n / bits)] |= 1 << n % bits);
return {data};
};