diff --git a/packages/ripple-address-codec/package.json b/packages/ripple-address-codec/package.json index 3d08e27b..791145aa 100644 --- a/packages/ripple-address-codec/package.json +++ b/packages/ripple-address-codec/package.json @@ -21,9 +21,10 @@ "devDependencies": { "codecov.io": "^0.1.6", "coveralls": "~2.11.4", - "eslint": "^1.6.0", + "eslint": "^4.19.1", + "eslint-plugin-no-unused-expressions": "^0.1.0", "istanbul": "~0.3.21", - "mocha": "^2.3.3" + "mocha": "^5.0.5" }, "readmeFilename": "README.md", "engines": { diff --git a/packages/ripple-address-codec/src/index.js b/packages/ripple-address-codec/src/index.js index 6548bd98..2b2ca988 100644 --- a/packages/ripple-address-codec/src/index.js +++ b/packages/ripple-address-codec/src/index.js @@ -1,17 +1,17 @@ -'use strict'; +'use strict' -var createHash = require('create-hash'); -var apiFactory = require('x-address-codec'); +const createHash = require('create-hash') +const apiFactory = require('x-address-codec') -var NODE_PUBLIC = 28; -var NODE_PRIVATE = 32; -var ACCOUNT_ID = 0; -var FAMILY_SEED = 33; -var ED25519_SEED = [0x01, 0xE1, 0x4B]; +const NODE_PUBLIC = 28 +const NODE_PRIVATE = 32 +const ACCOUNT_ID = 0 +const FAMILY_SEED = 33 +const ED25519_SEED = [0x01, 0xE1, 0x4B] module.exports = apiFactory({ sha256: function(bytes) { - return createHash('sha256').update(new Buffer(bytes)).digest(); + return createHash('sha256').update(new Buffer(bytes)).digest() }, defaultAlphabet: 'ripple', codecMethods: { @@ -30,4 +30,4 @@ module.exports = apiFactory({ NodePublic: {version: NODE_PUBLIC, expectedLength: 33}, NodePrivate: {version: NODE_PRIVATE, expectedLength: 32}, K256Seed: {version: FAMILY_SEED, expectedLength: 16}} -}); +}) diff --git a/packages/ripple-address-codec/test/codec-test.js b/packages/ripple-address-codec/test/codec-test.js index 777c176c..1d9f5284 100644 --- a/packages/ripple-address-codec/test/codec-test.js +++ b/packages/ripple-address-codec/test/codec-test.js @@ -1,71 +1,73 @@ -'use strict'; +/* eslint-disable no-unused-expressions/no-unused-expressions */ -var assert = require('assert'); -var api = require('../'); +'use strict' + +const assert = require('assert') +const api = require('../') function toHex(bytes) { - return new Buffer(bytes).toString('hex').toUpperCase(); + return new Buffer(bytes).toString('hex').toUpperCase() } function toBytes(hex) { - return new Buffer(hex, 'hex').toJSON().data; + return new Buffer(hex, 'hex').toJSON().data } describe('ripple-address-codec', function() { function makeTest(type, base58, hex) { it('can translate between ' + hex + ' and ' + base58, function() { - var actual = api['encode' + type](toBytes(hex)); - assert.equal(actual, base58); - }); + const actual = api['encode' + type](toBytes(hex)) + assert.equal(actual, base58) + }) it('can translate between ' + base58 + ' and ' + hex, function() { - var buf = api['decode' + type](base58); - assert.equal(toHex(buf), hex); - }); + const buf = api['decode' + type](base58) + assert.equal(toHex(buf), hex) + }) } makeTest('AccountID', 'rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN', - 'BA8E78626EE42C41B46D46C3048DF3A1C3C87072'); + 'BA8E78626EE42C41B46D46C3048DF3A1C3C87072') makeTest( 'NodePublic', 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', - '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828'); + '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828') makeTest('K256Seed', 'sn259rEFXrQrWyx3Q7XneWcwV6dfL', - 'CF2DE378FBDD7E2EE87D486DFB5A7BFF'); + 'CF2DE378FBDD7E2EE87D486DFB5A7BFF') makeTest('EdSeed', 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2', - '4C3A1D213FBDFB14C7C28D609469B341'); + '4C3A1D213FBDFB14C7C28D609469B341') it('can decode arbitray seeds', function() { - var decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2'); - assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341'); - assert.equal(decoded.type, 'ed25519'); + const decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') + assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341') + assert.equal(decoded.type, 'ed25519') - var decoded2 = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL'); - assert.equal(toHex(decoded2.bytes), 'CF2DE378FBDD7E2EE87D486DFB5A7BFF'); - assert.equal(decoded2.type, 'secp256k1'); - }); + const 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); - }); + const edSeed = 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2' + const decoded = api.decodeSeed(edSeed) + assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341') + assert.equal(decoded.type, 'ed25519') + assert.equal(api.encodeSeed(decoded.bytes, decoded.type), edSeed) + }) it('isValidAddress - secp256k1 address valid', function() { - assert(api.isValidAddress('rU6K7V3Po4snVhBBaU29sesqs2qTQJWDw1')); - }); + assert(api.isValidAddress('rU6K7V3Po4snVhBBaU29sesqs2qTQJWDw1')) + }) it('isValidAddress - ed25519 address valid', function() { - assert(api.isValidAddress('rLUEXYuLiQptky37CqLcm9USQpPiz5rkpD')); - }); + assert(api.isValidAddress('rLUEXYuLiQptky37CqLcm9USQpPiz5rkpD')) + }) it('isValidAddress - invalid', function() { - assert(!api.isValidAddress('rU6K7V3Po4snVhBBaU29sesqs2qTQJWDw2')); - }); + assert(!api.isValidAddress('rU6K7V3Po4snVhBBaU29sesqs2qTQJWDw2')) + }) it('isValidAddress - empty', function() { - assert(!api.isValidAddress('')); - }); + assert(!api.isValidAddress('')) + }) -}); +})