Skip to content

theQRL/wallet-helpers

Repository files navigation

wallet-helpers

Build Status Coverage Status npm version

A helper library for front end interfaces to the QRL

Installation

npm install @theqrl/wallet-helpers

Usage

v3 wallet envelope (scrypt + AES-256-GCM)

const helpers = require('@theqrl/wallet-helpers')

const walletJson = JSON.stringify([{
  address: 'Q010400abcdef',
  pk: '010400deadbeef',
  hexseed: '010400feedface',
  mnemonic: 'sample mnemonic',
  height: 0,
  encrypted: false,
  version: 3,
}])

const password = 'correct horse battery staple'
const envelope = helpers.v3Wallet(walletJson, true, password)
const wallets = helpers.v3WalletDecrypt(envelope, password)

Async argon2id (requires optional dependency)

const helpers = require('@theqrl/wallet-helpers')

const envelope = await helpers.v3WalletAsync(walletJson, true, password, {
  kdf: {
    name: 'argon2id',
    params: {
      memoryCost: 65536,
      timeCost: 3,
      parallelism: 1,
      hashLength: 32,
      saltLen: 32,
    },
  },
})
const wallets = await helpers.v3WalletDecryptAsync(envelope, password)

Install the optional dependency when you want argon2id:

npm install argon2

Unencrypted v3 envelope

const envelope = helpers.v3Wallet(walletJson, false)

Legacy per-field helpers

const encrypted = helpers.walletDataEncrypt('secret', password)
const plain = helpers.walletDataDecrypt(encrypted, password)

Wallet type detection

const type = helpers.getWalletFileType(walletJson)
// => 'PYTHON-NODE' | 'WEB-WALLET' | 'CONVERTED-WEB-WALLET' | 'UNKNOWN'

Convert any supported wallet to v3

const envelope = helpers.convertWalletToV3(walletJson, true, password)
const wallets = helpers.v3WalletDecrypt(envelope, password)

For async (argon2id) flows, use convertWalletToV3Async.

Browser usage

This package relies on Node's crypto module (including scrypt). For a plain browser demo, run npm run build to generate example/bundle.js, then open example/index.html. The bundle uses WebCrypto AES-GCM and scrypt-js.

Example

example/index.html shows a minimal HTML usage of the v3 wallet helpers.

Tests

npm test

Coverage

npm run cover

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors