From f691072e33342e561ba7053e8535473cdea05304 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Fri, 26 Sep 2014 10:13:39 -0700 Subject: [PATCH] fallback for getTx. --- example/index.js | 4 ++-- src/bitcoindjs.cc | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/example/index.js b/example/index.js index 5073070c..451c21ed 100755 --- a/example/index.js +++ b/example/index.js @@ -69,13 +69,13 @@ function getBlocks(bitcoind) { return bitcoind.getBlock(hash, function(err, block) { if (err) return print(err.message); - print(block); + // print(block); if (argv['get-tx'] && block.tx.length && block.tx[0].txid) { var txid = block.tx[0].txid; // XXX Dies with a segfault // bitcoind.getTx(txid, hash, function(err, tx) { - bitcoind.getTx(txid, function(err, tx) { + bitcoind.getTx(txid, hash, function(err, tx) { if (err) return print(err.message); print('TX -----------------------------------------------------'); print(tx); diff --git a/src/bitcoindjs.cc b/src/bitcoindjs.cc index 8b283393..d75da82d 100644 --- a/src/bitcoindjs.cc +++ b/src/bitcoindjs.cc @@ -692,10 +692,17 @@ async_get_tx(uv_work_t *req) { uint256 hashBlock(data->blockHash); CTransaction tx; - if (GetTransaction(hash, tx, hashBlock, hashBlock == 0 ? true : false)) { + if (GetTransaction(hash, tx, hashBlock, hashBlock == uint256(0) ? true : false)) { data->result_tx = tx; } else { - data->err_msg = std::string("get_tx(): failed."); + if (hashBlock != 0) { + hashBlock = uint256(0); + if (GetTransaction(hash, tx, hashBlock, true)) { + data->result_tx = tx; + } else { + data->err_msg = std::string("get_tx(): failed."); + } + } } }