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; }