From 0a3e61b3e66e20f827444609300c9e62ee2e45b5 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Thu, 30 Jun 2016 22:57:06 -0700 Subject: [PATCH] add raw methods to address object. --- lib/bcoin/address.js | 50 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/lib/bcoin/address.js b/lib/bcoin/address.js index 5c0622ac..fa641c08 100644 --- a/lib/bcoin/address.js +++ b/lib/bcoin/address.js @@ -83,13 +83,13 @@ Address.prototype.getHash = function getHash(enc) { }; /** - * Compile the address object to a base58 address. + * Compile the address object to its raw serialization. * @param {{NetworkType|Network)?} network - * @returns {Base58Address} + * @returns {Buffer} * @throws Error on bad hash/prefix. */ -Address.prototype.toBase58 = function toBase58(network) { +Address.prototype.toRaw = function toRaw(network) { var p = new BufferWriter(); var prefix; @@ -109,7 +109,18 @@ Address.prototype.toBase58 = function toBase58(network) { p.writeBytes(this.hash); p.writeChecksum(); - return utils.toBase58(p.render()); + return p.render(); +}; + +/** + * Compile the address object to a base58 address. + * @param {{NetworkType|Network)?} network + * @returns {Base58Address} + * @throws Error on bad hash/prefix. + */ + +Address.prototype.toBase58 = function toBase58(network) { + return utils.toBase58(this.toRaw(network)); }; /** @@ -148,18 +159,15 @@ Address.prototype.inspect = function inspect() { }; /** - * Inject properties from base58 address. + * Inject properties from serialized data. * @private - * @param {Base58Address} data + * @param {Buffer} data * @throws Parse error */ -Address.prototype.fromBase58 = function fromBase58(data) { +Address.prototype.fromRaw = function fromRaw(data) { var i, p, prefix, network, type, version, hash; - if (typeof data === 'string') - data = utils.fromBase58(data); - assert(Buffer.isBuffer(data)); p = new BufferReader(data, true); @@ -188,6 +196,28 @@ Address.prototype.fromBase58 = function fromBase58(data) { return this.fromHash(hash, type, version, network.type); }; +/** + * Create an address object from a serialized address. + * @param {Buffer} data + * @returns {Address} + * @throws Parse error. + */ + +Address.fromRaw = function fromRaw(data) { + return new Address().fromRaw(data); +}; + +/** + * Inject properties from base58 address. + * @private + * @param {Base58Address} data + * @throws Parse error + */ + +Address.prototype.fromBase58 = function fromBase58(data) { + return this.fromRaw(utils.fromBase58(data)); +}; + /** * Create an address object from a base58 address. * @param {Base58Address} address