bolt09

2.0.0 • Public • Published

Bolt 09

npm version Coverage Status Build Status

Utility methods for working with BOLT 09

Methods

featureFlagDetails

Feature flag details for feature flag bit

{
  bit: <Feature Flag Bit Number>
}

@throws
<Error>

@returns
{
  [type]: <Feature Flag Type String>
}

Example:

const {featureFlagDetails} = require('bolt09');

const {type} = featureFlagDetails({bit: 0});
// Type is string descriptor of feature bit

featureFlagsAsHex

Encode feature flags into hex serialized bytes

{
  features: [<Feature Bit Number>]
}

@throws
<Error>

@returns
{
  encoded: <Serialized Feature Bits Hex Encoded String>
}

Example:

const {featureFlagsAsHex} = require('bolt09');

const {encoded} = featureFlagsAsHex({features: [0]});
// Encoded is hex encoded string with a length uint16 prefix

featureFlagsAsWords

Encode feature flags into a serialized data buffer

{
  features: [<Feature Bit Number>]
}

@throws
<Error>

@returns
{
  words: [<Bech32 Word Number>]
}

Example:

const {featureFlagsAsWords} = require('bolt09');

const {words} = featureFlagsAsWords({features: [0]});
// Words are word numbers that can be used for encoding in a bolt11 payment req

featureFlagsFromHex

Feature flags from hex serialized feature flags

{
  [hex]: <Data Length Prefixed Hex Encoded String>
}

@throws
<Error>

@returns
{
  features: [{
    bit: <Feature Bit Number>
    is_required: <Feature Bit is Required Bool>
    type: <Feature Bit Type String>
  }]
}

Example:

const {featureFlagsFromHex} = require('bolt09');

const {features} = featureFlagsFromHex({hex: '00018C'});
// Features is an array of supported features

featureFlagsFromWords

Feature flags from BOLT 11 tag words

{
  words: [<BOLT11 Tag Word Number>]
}

@throws
<Error>

@returns
{
  features: [{
    bit: <Feature Bit Number>
    is_required: <Feature Bit is Required Bool>
    type: <Feature Bit Type String>
  }]
}

Example:

const {featureFlagsFromWords} = require('bolt09');

const {features} = featureFlagsFromWords({words: [16, 0]});
// Features is an array of supported features

Package Sidebar

Install

npm i bolt09

Weekly Downloads

5,881

Version

2.0.0

License

MIT

Unpacked Size

17.6 kB

Total Files

21

Last publish

Collaborators

  • alexbosworth