From b67a3dcf9e98702232b15e58208c2cf42a4fd657 Mon Sep 17 00:00:00 2001 From: Daniel Cousens Date: Fri, 24 Jul 2015 12:16:37 +1000 Subject: [PATCH] TxBuilder: specify missing network information for TxBuilder --- src/transaction_builder.js | 6 ++++-- test/transaction_builder.js | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/transaction_builder.js b/src/transaction_builder.js index 5806063..ff2041a 100644 --- a/src/transaction_builder.js +++ b/src/transaction_builder.js @@ -1,6 +1,7 @@ var assert = require('assert') var bcrypto = require('./crypto') var bufferutils = require('./bufferutils') +var networks = require('./networks') var ops = require('./opcodes') var scripts = require('./scripts') @@ -83,10 +84,11 @@ function extractInput (txIn) { } } -function TransactionBuilder () { +function TransactionBuilder (network) { this.prevTxMap = {} this.prevOutScripts = {} this.prevOutTypes = {} + this.network = network || networks.bitcoin this.inputs = [] this.tx = new Transaction() @@ -188,7 +190,7 @@ TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) { // Attempt to get a valid address if it's a base58 address string if (typeof scriptPubKey === 'string') { - scriptPubKey = Address.toOutputScript(scriptPubKey) + scriptPubKey = Address.toOutputScript(scriptPubKey, this.network) } return this.tx.addOutput(scriptPubKey, value) diff --git a/test/transaction_builder.js b/test/transaction_builder.js index 09dcb9a..ba1ea6c 100644 --- a/test/transaction_builder.js +++ b/test/transaction_builder.js @@ -142,6 +142,12 @@ describe('TransactionBuilder', function () { assert.strictEqual(txout.value, 1000) }) + it('throws if address is of the wrong network', function () { + assert.throws(function () { + txb.addOutput('2NGHjvjw83pcVFgMcA7QvSMh2c246rxLVz9', 1000) + }, /2NGHjvjw83pcVFgMcA7QvSMh2c246rxLVz9 has no matching Script/) + }) + it('throws if SIGHASH_ALL has been used to sign any existing scriptSigs', function () { txb.addInput(prevTxHash, 0) txb.addOutput(privScript, 2000)