diff --git a/lib/address.js b/lib/address.js index 5304a7f..64a1b9d 100644 --- a/lib/address.js +++ b/lib/address.js @@ -4,7 +4,6 @@ var base58check = require('./encoding/base58check'); var networks = require('./networks'); var Hash = require('./crypto/hash'); - /** * * Bitcore Address @@ -38,9 +37,9 @@ function Address(data, network, type) { var info; // transform and validate input data - if (data instanceof Buffer && data.length === 20) { + if ((data instanceof Buffer || data instanceof Uint8Array) && data.length === 20) { info = Address._transformHash(data); - } else if (data instanceof Buffer && data.length === 21) { + } else if ((data instanceof Buffer || data instanceof Uint8Array) && data.length === 21) { info = Address._transformBuffer(data, network, type); } else if (data.constructor && (data.constructor.name && data.constructor.name === 'Pubkey')) { info = Address._transformPubkey(data); @@ -74,7 +73,7 @@ function Address(data, network, type) { */ Address._transformHash = function(hash){ var info = {}; - if (!hash instanceof Buffer) { + if (!(hash instanceof Buffer) && !(hash instanceof Uint8Array)) { throw new Error('Address supplied is not a buffer'); } if (hash.length !== 20) { @@ -95,7 +94,7 @@ Address._transformHash = function(hash){ */ Address._transformBuffer = function(buffer, network, type){ var info = {}; - if (!buffer instanceof Buffer) { + if (!(buffer instanceof Buffer) && !(buffer instanceof Uint8Array)) { throw new Error('Address supplied is not a buffer'); } if (buffer.length !== 1 + 20) {