From 4610701a3e962f7ce72986b3fd1e620c335bad4b Mon Sep 17 00:00:00 2001 From: Kagami Hiiragi Date: Wed, 28 Jan 2015 17:24:31 +0300 Subject: [PATCH] Fix Address#ripe/Address#getShortRipe API --- lib/address.js | 20 ++++++-------------- lib/objects.js | 2 +- test.js | 10 +++++----- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/lib/address.js b/lib/address.js index 189255c..8dd6b4d 100644 --- a/lib/address.js +++ b/lib/address.js @@ -90,26 +90,19 @@ function getaddrchecksum(data) { } /** - * Calculate the ripe hash of the address. - * @param {?Object} opts - Options - * @return {Buffer} Resulting ripe hash. + * Get the ripe hash of the address without prefix zeroes. + * @return {Buffer} A short ripe hash. */ -Address.prototype.getRipe = function(opts) { - opts = opts || {}; +Address.prototype.getShortRipe = function() { var ripe = this.ripe; - if (opts.short) { - return ripe.slice(20 - getripelen(ripe)); - } else { - return ripe; - } + return ripe.slice(20 - getripelen(ripe)); }; function getdoublehash(addr) { - var ripe = addr.getRipe(); var dataToHash = Buffer.concat([ var_int.encode(addr.version), var_int.encode(addr.stream), - ripe, + addr.ripe, ]); return bmcrypto.sha512(bmcrypto.sha512(dataToHash)); } @@ -187,11 +180,10 @@ function checkripelen(ripelen, version) { * @return {string} Address string. */ Address.prototype.encode = function() { - var ripe = this.getRipe({short: true}); var data = Buffer.concat([ var_int.encode(this.version), var_int.encode(this.stream), - ripe, + this.getShortRipe(), ]); var addr = Buffer.concat([data, getaddrchecksum(data)]); return "BM-" + bs58.encode(addr); diff --git a/lib/objects.js b/lib/objects.js index c44950a..cf65606 100644 --- a/lib/objects.js +++ b/lib/objects.js @@ -139,7 +139,7 @@ var getpubkey = exports.getpubkey = { assert(to.version <= 4, "Address version is too high"); opts.version = to.version; opts.stream = to.stream; - opts.objectPayload = to.version < 4 ? to.getRipe() : to.getTag(); + opts.objectPayload = to.version < 4 ? to.ripe : to.getTag(); // POW calculation here. var nonce = new Buffer(8); opts.nonce = nonce; diff --git a/test.js b/test.js index 2a39c10..4fceacd 100644 --- a/test.js +++ b/test.js @@ -743,7 +743,7 @@ describe("High-level classes", function() { expect(addr.stream).to.equal(1); expect(bufferEqual(addr.signPrivateKey, WIF.decode("5JY1CFeeyN4eyfL35guWAuUqu5VLmd7LojtkNP6wmt5msZxxZ57"))).to.be.true; expect(bufferEqual(addr.encPrivateKey, WIF.decode("5J1oDgZDicNhUgbfzBDQqi2m5jUPnDrfZinnTqEEEaLv63jVFTM"))).to.be.true; - expect(addr.getRipe().toString("hex")).to.equal("00ac14944b00decea5628eb40d0ff4b0f9ee9eca"); + expect(addr.ripe.toString("hex")).to.equal("00ac14944b00decea5628eb40d0ff4b0f9ee9eca"); expect(addr.encode()).to.equal("BM-2cWFkyuXXFw6d393RGnin2RpSXj8wxtt6F"); }); @@ -754,7 +754,7 @@ describe("High-level classes", function() { expect(addr.stream).to.equal(1); expect(bufferEqual(addr.signPrivateKey, WIF.decode("5JY1CFeeyN4eyfL35guWAuUqu5VLmd7LojtkNP6wmt5msZxxZ57"))).to.be.true; expect(bufferEqual(addr.encPrivateKey, WIF.decode("5J1oDgZDicNhUgbfzBDQqi2m5jUPnDrfZinnTqEEEaLv63jVFTM"))).to.be.true; - expect(addr.getRipe().toString("hex")).to.equal("00ac14944b00decea5628eb40d0ff4b0f9ee9eca"); + expect(addr.ripe.toString("hex")).to.equal("00ac14944b00decea5628eb40d0ff4b0f9ee9eca"); expect(addr.encode()).to.equal("BM-2cWFkyuXXFw6d393RGnin2RpSXj8wxtt6F"); }); @@ -788,9 +788,9 @@ describe("High-level classes", function() { addr.encPrivateKey = Buffer("9f9969c93c2d186787a7653f70e49be34c03c4a853e6ad0c867db0946bc433c6", "hex"); expect(addr.encPublicKey.toString("hex")).to.equal("04c6ed1b56f2da97fec1b762d43364566faf082c1e4918ae1dbb41757cad41b03b2cc5087f341414e63f6eee72a1fbf0b5f346a1bb3ba944cad204ca597db2bfc8"); expect(addr.ripe.toString("hex")).to.equal("003ab6655de4bd8c603eba9b00dd5970725fdd56"); - expect(addr.getRipe({short: true}).toString("hex")).to.equal("3ab6655de4bd8c603eba9b00dd5970725fdd56"); + expect(addr.getShortRipe().toString("hex")).to.equal("3ab6655de4bd8c603eba9b00dd5970725fdd56"); addr.encPrivateKey = Buffer("009969c93c2d186787a7653f70e49be34c03c4a853e6ad0c867db0946bc433c6", "hex"); - expect(addr.getRipe({short: true}).toString("hex")).to.equal("69617ddb1946dc327cadffcf33889fed587fc1e7"); + expect(addr.getShortRipe().toString("hex")).to.equal("69617ddb1946dc327cadffcf33889fed587fc1e7"); }); it("should implement isAddress method", function() { @@ -806,7 +806,7 @@ describe("High-level classes", function() { it("should allow to generate shorter address", function() { this.timeout(300000); var addr = Address.fromRandom({ripeLength: 18}); - var ripe = addr.getRipe({short: true}); + var ripe = addr.getShortRipe(); expect(ripe.length).to.be.at.most(18); }); }