A helper library for front end interfaces to the QRL
npm install @theqrl/wallet-helpers
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)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
const envelope = helpers.v3Wallet(walletJson, false)const encrypted = helpers.walletDataEncrypt('secret', password)
const plain = helpers.walletDataDecrypt(encrypted, password)const type = helpers.getWalletFileType(walletJson)
// => 'PYTHON-NODE' | 'WEB-WALLET' | 'CONVERTED-WEB-WALLET' | 'UNKNOWN'const envelope = helpers.convertWalletToV3(walletJson, true, password)
const wallets = helpers.v3WalletDecrypt(envelope, password)For async (argon2id) flows, use convertWalletToV3Async.
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/index.html shows a minimal HTML usage of the v3 wallet helpers.
npm test
npm run cover