Browse Source

Flesh out functionality

master
Luke Childs 5 years ago
parent
commit
dd35c7189b
  1. 3
      package.json
  2. 44
      src/index.js
  3. 6
      test/unit.js

3
package.json

@ -23,5 +23,8 @@
"coveralls": "^3.0.8",
"nyc": "^14.1.1",
"xo": "^0.25.3"
},
"dependencies": {
"bip39": "^3.0.2"
}
}

44
src/index.js

@ -1,3 +1,43 @@
const bip39 = () => {};
const bip39 = require('bip39');
module.exports = bip39;
const P2PKH = 0x00;
const P2WPKHP2SH = 0x01;
const P2WPKH = 0x02;
const bip39v = {
versions: {P2PKH, P2WPKHP2SH, P2WPKH}
};
const getEntropyBuffer = mnemonic => Buffer.from(
bip39.mnemonicToEntropy(mnemonic),
'hex'
);
bip39v.generateMnemonic = (length, versionByte = P2PKH) => {
const entropy = getEntropyBuffer(bip39.generateMnemonic(length));
entropy[0] = versionByte;
return bip39.entropyToMnemonic(entropy);
};
bip39v.mnemonicToVersionByte = mnemonic => {
const entropy = getEntropyBuffer(mnemonic);
return entropy[0];
};
bip39v.mnemonicToVersionByte = mnemonic => getEntropyBuffer(mnemonic)[0];
bip39v.mnemonicToVersion = mnemonic => {
const versionByte = bip39v.mnemonicToVersionByte(mnemonic);
for (const [name, byte] of Object.entries(bip39v.versions)) {
if (versionByte === byte) {
return name;
}
}
return 'UNKNOWN';
};
module.exports = bip39v;

6
test/unit.js

@ -1,6 +1,6 @@
import test from 'ava';
import bip39 from '..';
import bip39v from '..';
test('bip39 is exported', t => {
t.not(bip39, undefined);
test('bip39v is exported', t => {
t.not(bip39v, undefined);
});

Loading…
Cancel
Save