From 433a08d070178eb9c7aaa0cd6a45a85bf64f77b5 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Mon, 29 Aug 2016 21:01:16 +1200 Subject: [PATCH] Add JoinSplit public values to getDetailedTransaction() --- lib/services/bitcoind.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/services/bitcoind.js b/lib/services/bitcoind.js index 36233e70..fcab1bfd 100644 --- a/lib/services/bitcoind.js +++ b/lib/services/bitcoind.js @@ -1947,6 +1947,20 @@ Bitcoin.prototype.getDetailedTransaction = function(txid, callback) { } } + function addJoinSplitsToTx(tx, result) { + tx.joinSplits = []; + var netJoinSplitZatoshis = 0; + for (var jsIndex = 0; jsIndex < result.vjoinsplit.length; jsIndex++) { + var jsdesc = result.vjoinsplit[jsIndex]; + netJoinSplitZatoshis += jsdesc.vpub_newZat - jsdesc.vpub_oldZat; + tx.joinSplits.push({ + oldZatoshis: jsdesc.vpub_oldZat, + newZatoshis: jsdesc.vpub_newZat, + }); + } + return netJoinSplitZatoshis; + } + if (tx) { return setImmediate(function() { callback(null, tx); @@ -1975,8 +1989,13 @@ Bitcoin.prototype.getDetailedTransaction = function(txid, callback) { addInputsToTx(tx, result); addOutputsToTx(tx, result); + var netJoinSplitZatoshis = 0; + if (tx.version >= 2) { + netJoinSplitZatoshis = addJoinSplitsToTx(tx, result); + } + if (!tx.coinbase) { - tx.feeSatoshis = tx.inputSatoshis - tx.outputSatoshis; + tx.feeSatoshis = tx.inputSatoshis - tx.outputSatoshis + netJoinSplitZatoshis; } else { tx.feeSatoshis = 0; }