1.0.4 • Published 2 years ago

@smontero/nbv-ur-codec v1.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Native Bitcoin Vault Uniform Resource Encoder/Decoder

Enables the encoding/decoding of various Bitcoin related components from/to Uniform Resource encoding

To install run the following command:

npm i --save @smontero/nbv-ur-codec

Import the Decoder, Encoder objects

import { Decoder, Encoder } from '@smontero/nbv-ur-codec'

Create an instance of the objects:

const decoder = new Decoder() const encoder = new Encoder()

Decoding:

XPUB:

const result = decoder.decodeXPub('UR:CRYPTO-ACCOUNT/OEADCYA...')

PSBT:

const result = decoder.decodePSBT(['UR:CRYPTO-PSBT/1-8/LPADAYC...', 'UR:CRYPTO-PSBT/2-8/LPAOAYCFAHP...'])

Encoding:

Vault:

const vault = {threshold: 2,
  cosigners: [
    {
      xfp: '0CDB4EE2',
      xpub: 'Zpub753Wkfem...',
      derivation_path: "m/48'/0'/0'/2'"
    },
    {
      xfp: 'D6B372CE',
      xpub: 'Zpub74mtS5wc9ewL5...',
      derivation_path: "m/48'/0'/0'/2'"
    }
  ]
}
const vaultName = 'Test Vault'

const result = encoder.vaultToQRCode(vault, 'Test Vault')

PSBT:

const psbt = '70736274ff0100890100000001f1c6c4e36ef3789...'
const fragmentLength = 200

const fragments = encoder.psbtToQRCode(psbt, fragmentLength)

Generation of new cosigners:

Import the GenerateCosigner object

import { GenerateCosigner } from '@smontero/nbv-ur-codec'

Get a Zpub address with a m/48'/0'/0'/2' derivation path:

GenerateCosigner.getCosigner().then((cosigner) => {
  console.log(cosigner)
})

This returns an object with the following properties:

{
  seed: 'only cherry ... wreck sail hope tunnel',
  Zpub: 'Zpub74FhSyrzAe2FiWxkEGU1pd...efcxqRNvJgzWeCLMQ9WcugGp1SdHb',
  xfp: 'C82DBD9A',
  path: "m/48'/0'/0'/2'"
}

The data is ready to be imported into the form to add a multi-signature XPUB.