+5
-3
@@ -30,6 +30,8 @@ var bs58check = require('bs58check') | ||
| function encodeRaw (version, privateKey, compressed) { | ||
| var result = new Buffer(compressed ? 34 : 33) | ||
| if (privateKey.length !== 32) throw new TypeError('Invalid privateKey length') | ||
| result.writeUInt8(version, 0) | ||
| privateKey.copy(result, 1) | ||
| var result = new Uint8Array(compressed ? 34 : 33) | ||
| var view = new DataView(result.buffer) | ||
| view.setUint8(0, version) | ||
| result.set(privateKey, 1) | ||
@@ -36,0 +38,0 @@ if (compressed) { |
+9
-5
| { | ||
| "name": "wif", | ||
| "version": "3.0.1", | ||
| "version": "4.0.0", | ||
| "description": "Bitcoin Wallet Import Format (WIF) decoding/encoding module", | ||
@@ -28,2 +28,5 @@ "author": "Daniel Cousens", | ||
| "main": "index.js", | ||
| "files": [ | ||
| "index.js" | ||
| ], | ||
| "scripts": { | ||
@@ -37,9 +40,10 @@ "coverage-report": "nyc report --reporter=lcov", | ||
| "dependencies": { | ||
| "bs58check": "^2.0.1" | ||
| "bs58check": "^3.0.1" | ||
| }, | ||
| "devDependencies": { | ||
| "nyc": "^6.4.0", | ||
| "standard": "*", | ||
| "tape": "^4.6.2" | ||
| "nyc": "^15.0.0", | ||
| "standard": "^14.3.3", | ||
| "tape": "^4.13.2", | ||
| "uint8array-tools": "0.0.7" | ||
| } | ||
| } |
+6
-5
| # WIF | ||
| [](http://travis-ci.org/bitcoinjs/wif) | ||
@@ -15,6 +14,4 @@ [](https://www.npmjs.org/package/wif) | ||
| var wif = require('wif') | ||
| var privateKey = new Buffer('0000000000000000000000000000000000000000000000000000000000000001', 'hex') | ||
| var key = wif.encode(128, privateKey, true) | ||
| var privateKey = Buffer.from('0000000000000000000000000000000000000000000000000000000000000001', 'hex') | ||
| var key = wif.encode(128, privateKey, true) // for the testnet use: wif.encode(239, ... | ||
| // => KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn | ||
@@ -29,2 +26,6 @@ | ||
| wif.decode(key, 0x09) | ||
| // => Error: Invalid network version | ||
| // alternative syntax | ||
| wif.encode(obj) | ||
@@ -31,0 +32,0 @@ // => KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn |
Sorry, the diff of this file is not supported yet
-15
| sudo: false | ||
| language: node_js | ||
| node_js: | ||
| - "4" | ||
| - "5" | ||
| - "7" | ||
| matrix: | ||
| include: | ||
| - node_js: "7" | ||
| env: TEST_SUITE=standard | ||
| - node_js: "7" | ||
| env: TEST_SUITE=coverage | ||
| env: | ||
| - TEST_SUITE=unit | ||
| script: npm run-script $TEST_SUITE |
| { | ||
| "valid": [ | ||
| { | ||
| "WIF": "KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn", | ||
| "compressed": true, | ||
| "privateKeyHex": "0000000000000000000000000000000000000000000000000000000000000001", | ||
| "version": 128 | ||
| }, | ||
| { | ||
| "WIF": "5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf", | ||
| "compressed": false, | ||
| "privateKeyHex": "0000000000000000000000000000000000000000000000000000000000000001", | ||
| "version": 128 | ||
| }, | ||
| { | ||
| "WIF": "KxhEDBQyyEFymvfJD96q8stMbJMbZUb6D1PmXqBWZDU2WvbvVs9o", | ||
| "compressed": true, | ||
| "privateKeyHex": "2bfe58ab6d9fd575bdc3a624e4825dd2b375d64ac033fbc46ea79dbab4f69a3e", | ||
| "version": 128 | ||
| }, | ||
| { | ||
| "WIF": "KzrA86mCVMGWnLGBQu9yzQa32qbxb5dvSK4XhyjjGAWSBKYX4rHx", | ||
| "compressed": true, | ||
| "privateKeyHex": "6c4313b03f2e7324d75e642f0ab81b734b724e13fec930f309e222470236d66b", | ||
| "version": 128 | ||
| }, | ||
| { | ||
| "WIF": "5JdxzLtFPHNe7CAL8EBC6krdFv9pwPoRo4e3syMZEQT9srmK8hh", | ||
| "compressed": false, | ||
| "privateKeyHex": "6c4313b03f2e7324d75e642f0ab81b734b724e13fec930f309e222470236d66b", | ||
| "version": 128 | ||
| }, | ||
| { | ||
| "WIF": "cRD9b1m3vQxmwmjSoJy7Mj56f4uNFXjcWMCzpQCEmHASS4edEwXv", | ||
| "compressed": true, | ||
| "privateKeyHex": "6c4313b03f2e7324d75e642f0ab81b734b724e13fec930f309e222470236d66b", | ||
| "version": 239 | ||
| }, | ||
| { | ||
| "WIF": "92Qba5hnyWSn5Ffcka56yMQauaWY6ZLd91Vzxbi4a9CCetaHtYj", | ||
| "compressed": false, | ||
| "privateKeyHex": "6c4313b03f2e7324d75e642f0ab81b734b724e13fec930f309e222470236d66b", | ||
| "version": 239 | ||
| }, | ||
| { | ||
| "WIF": "L5oLkpV3aqBjhki6LmvChTCV6odsp4SXM6FfU2Gppt5kFLaHLuZ9", | ||
| "compressed": true, | ||
| "privateKeyHex": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140", | ||
| "version": 128 | ||
| } | ||
| ], | ||
| "invalid": { | ||
| "decode": [ | ||
| { | ||
| "exception": "Invalid network version", | ||
| "version": 128, | ||
| "WIF": "92Qba5hnyWSn5Ffcka56yMQauaWY6ZLd91Vzxbi4a9CCetaHtYj" | ||
| }, | ||
| { | ||
| "exception": "Invalid compression flag", | ||
| "version": 128, | ||
| "WIF": "KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sfZr2ym" | ||
| }, | ||
| { | ||
| "exception": "Invalid WIF length", | ||
| "version": 128, | ||
| "WIF": "3tq8Vmhh9SN5XhjTGSWgx8iKk59XbKG6UH4oqpejRuJhfYD" | ||
| }, | ||
| { | ||
| "exception": "Invalid WIF length", | ||
| "version": 128, | ||
| "WIF": "38uMpGARR2BJy5p4dNFKYg9UsWNoBtkpbdrXDjmfvz8krCtw3T1W92ZDSR" | ||
| } | ||
| ] | ||
| } | ||
| } |
| var wif = require('../') | ||
| var fixtures = require('./fixtures') | ||
| var tape = require('tape') | ||
| fixtures.valid.forEach(function (f) { | ||
| tape('encode/encodeRaw returns ' + f.WIF + ' for ' + f.privateKeyHex.slice(0, 20) + '... (' + f.version + ')', function (t) { | ||
| t.plan(1) | ||
| var privateKey = new Buffer(f.privateKeyHex, 'hex') | ||
| var actual = wif.encode(f.version, privateKey, f.compressed) | ||
| t.equal(actual, f.WIF) | ||
| }) | ||
| }) | ||
| fixtures.valid.forEach(function (f) { | ||
| tape('decode/decodeRaw returns ' + f.privateKeyHex.slice(0, 20) + '... (' + f.version + ')' + ' for ' + f.WIF, function (t) { | ||
| t.plan(3) | ||
| var actual = wif.decode(f.WIF, f.version) | ||
| t.equal(actual.version, f.version) | ||
| t.equal(actual.privateKey.toString('hex'), f.privateKeyHex) | ||
| t.equal(actual.compressed, f.compressed) | ||
| }) | ||
| }) | ||
| fixtures.invalid.decode.forEach(function (f) { | ||
| tape('throws ' + f.exception + ' for ' + f.WIF, function (t) { | ||
| t.plan(1) | ||
| t.throws(function () { | ||
| wif.decode(f.WIF, f.version) | ||
| }, new RegExp(f.exception)) | ||
| }) | ||
| }) | ||
| fixtures.valid.forEach(function (f) { | ||
| tape('decode/encode for ' + f.WIF, function (t) { | ||
| t.plan(1) | ||
| var actual = wif.encode(wif.decode(f.WIF, f.version)) | ||
| t.equal(actual, f.WIF) | ||
| }) | ||
| }) |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
34
3.03%4674
-43.75%4
33.33%4
-50%52
-67.7%1
Infinity%+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated