diff --git a/lib/bcoin/address.js b/lib/bcoin/address.js index dbf89891..aa3d0581 100644 --- a/lib/bcoin/address.js +++ b/lib/bcoin/address.js @@ -530,7 +530,19 @@ Address.validate = function validate(addr, prefix) { return p.length !== 0; }; -Address.validateAddress = Address.validate; +Address.getType = function getType(addr) { + var prefix; + + if (!addr || typeof addr !== 'string') + return 'unknown'; + + prefix = Address.prefixes[addr[0]]; + + if (!Address.validate(addr, prefix)) + return 'unknown'; + + return prefix; +}; Address.prototype.toJSON = function toJSON(encrypt) { return { diff --git a/lib/bcoin/tx.js b/lib/bcoin/tx.js index 24ae2e69..7a821f1b 100644 --- a/lib/bcoin/tx.js +++ b/lib/bcoin/tx.js @@ -727,7 +727,7 @@ TX.prototype.scriptOutput = function scriptOutput(index, options) { return; script = bcoin.script.createMultisig(keys, m, n); - } else if (bcoin.address.validate(options.address, 'scripthash')) { + } else if (bcoin.address.getType(options.address) === 'scripthash') { // P2SH Transaction // https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki // hash160 [20-byte-redeemscript-hash] equal diff --git a/test/wallet-test.js b/test/wallet-test.js index ddda39dc..600bdbb5 100644 --- a/test/wallet-test.js +++ b/test/wallet-test.js @@ -3,33 +3,6 @@ var bn = require('bn.js'); var bcoin = require('../'); var constants = bcoin.protocol.constants; -function printScript(input) { - var scripts = []; - var script = input.script; - scripts.push(script); - var prev = input.out.tx.outputs[input.out.index].script; - scripts.push(prev); - if (bcoin.script.isScripthash(prev)) { - var redeem = bcoin.script.decode(input.script[input.script.length - 1]); - scripts.push(redeem); - } - scripts = scripts.map(function(script) { - return script.map(function(chunk) { - if (Array.isArray(chunk)) { - if (chunk.length === 0) - return [0]; - return [bcoin.utils.toHex(chunk)]; - } - if (typeof chunk === 'number') - return [chunk]; - return chunk; - }); - }); - scripts.forEach(function(script) { - console.log(script); - }); -} - describe('Wallet', function() { it('should generate new key and address', function() { var w = bcoin.wallet(); @@ -321,7 +294,7 @@ describe('Wallet', function() { assert(result); w1.sign(send); - // printScript(send.inputs[0]); + // console.log(bcoin.script.format(send.inputs[0])); assert(!send.verify()); w2.sign(send);