Update x-address-codec dependency and add eslint

This commit is contained in:
Nicholas Dudfield
2015-07-31 16:36:33 +07:00
parent f79ca12a12
commit 8a2ce17676
4 changed files with 35 additions and 17 deletions

View File

@@ -3,6 +3,7 @@ node_js:
- '0.12'
script:
- npm test --coverage
- npm run-script lint
- npm run-script coveralls
env:
global:

View File

@@ -6,15 +6,18 @@
"license": "ISC",
"dependencies": {
"hash.js": "^1.0.3",
"x-address-codec": "^0.5.0"
"x-address-codec": "^0.6.0"
},
"scripts": {
"test": "istanbul test _mocha",
"coveralls": "cat ./coverage/lcov.info | coveralls"
"prepublish": "npm test && npm run lint",
"coveralls": "cat ./coverage/lcov.info | coveralls",
"lint": "if ! [ -f eslintrc ]; then curl -o eslintrc 'https://raw.githubusercontent.com/ripple/javascript-style-guide/master/eslintrc'; fi; eslint --reset -c eslintrc src/*.js test/*.js"
},
"devDependencies": {
"istanbul": "~0.3.5",
"coveralls": "~2.10.0",
"eslint": "^0.24.1",
"istanbul": "~0.3.5",
"mocha": "^2.2.5"
},
"readmeFilename": "README.md",

View File

@@ -1,3 +1,5 @@
'use strict';
var hashjs = require('hash.js');
var apiFactory = require('x-address-codec');
@@ -8,12 +10,12 @@ var FAMILY_SEED = 33;
var ED25519_SEED = [0x01, 0xE1, 0x4B];
module.exports = apiFactory({
sha256: function (bytes) {
sha256: function(bytes) {
return hashjs.sha256().update(bytes).digest();
},
defaultAlphabet: 'ripple',
codecMethods: {
EdSeed : {
EdSeed: {
expectedLength: 16,
version: ED25519_SEED
},
@@ -23,9 +25,9 @@ module.exports = apiFactory({
versions: [ED25519_SEED, FAMILY_SEED],
expectedLength: 16
},
AccountID: {version: ACCOUNT_ID },
NodePublic: {version: NODE_PUBLIC },
AccountID: {version: ACCOUNT_ID},
NodePublic: {version: NODE_PUBLIC},
NodePrivate: {version: NODE_PRIVATE},
K256Seed : {version: FAMILY_SEED }
K256Seed: {version: FAMILY_SEED}
}
});

View File

@@ -1,3 +1,5 @@
'use strict';
var assert = require('assert');
var api = require('../');
@@ -26,22 +28,32 @@ describe('ripple-address-codec', function() {
makeTest('AccountID', 'rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN',
'BA8E78626EE42C41B46D46C3048DF3A1C3C87072');
makeTest('NodePublic', 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH',
'0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828');
makeTest(
'NodePublic',
'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH',
'0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828');
makeTest('K256Seed', 'sn259rEFXrQrWyx3Q7XneWcwV6dfL',
'CF2DE378FBDD7E2EE87D486DFB5A7BFF');
makeTest('K256Seed', 'sn259rEFXrQrWyx3Q7XneWcwV6dfL',
'CF2DE378FBDD7E2EE87D486DFB5A7BFF');
makeTest('EdSeed', 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2',
'4C3A1D213FBDFB14C7C28D609469B341');
makeTest('EdSeed', 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2',
'4C3A1D213FBDFB14C7C28D609469B341');
it('can decode arbitray seeds', function() {
var decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2');
assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341');
assert.equal(decoded.type, 'ed25519');
var decoded = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL');
assert.equal(toHex(decoded.bytes), 'CF2DE378FBDD7E2EE87D486DFB5A7BFF');
assert.equal(decoded.type, 'secp256k1');
var decoded2 = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL');
assert.equal(toHex(decoded2.bytes), 'CF2DE378FBDD7E2EE87D486DFB5A7BFF');
assert.equal(decoded2.type, 'secp256k1');
});
it('can pass a type as second arg to encodeSeed', function() {
var edSeed = 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2';
var decoded = api.decodeSeed(edSeed);
assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341');
assert.equal(decoded.type, 'ed25519');
assert.equal(api.encodeSeed(decoded.bytes, decoded.type), edSeed);
});
});