From 3fb4d6a1a3501cb1a8b74741e9d6a82af50afe5b Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Fri, 2 Jun 2017 16:15:08 +0200 Subject: [PATCH] Transaction.toString(): Print incomplete transactions, too. --- .../java/org/bitcoinj/core/Transaction.java | 61 ++++++++++--------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/Transaction.java b/core/src/main/java/org/bitcoinj/core/Transaction.java index f0f89f28..df53a1e9 100644 --- a/core/src/main/java/org/bitcoinj/core/Transaction.java +++ b/core/src/main/java/org/bitcoinj/core/Transaction.java @@ -658,10 +658,6 @@ public class Transaction extends ChildMessage { if (isOptInFullRBF()) { s.append(" opts into full replace-by-fee\n"); } - if (inputs.size() == 0) { - s.append(" INCOMPLETE: No inputs!\n"); - return s.toString(); - } if (isCoinBase()) { String script; String script2; @@ -676,36 +672,41 @@ public class Transaction extends ChildMessage { .append(") (scriptPubKey ").append(script2).append(")\n"); return s.toString(); } - for (TransactionInput in : inputs) { - s.append(" "); - s.append("in "); + if (!inputs.isEmpty()) { + for (TransactionInput in : inputs) { + s.append(" "); + s.append("in "); - try { - Script scriptSig = in.getScriptSig(); - s.append(scriptSig); - if (in.getValue() != null) - s.append(" ").append(in.getValue().toFriendlyString()); - s.append("\n "); - s.append("outpoint:"); - final TransactionOutPoint outpoint = in.getOutpoint(); - s.append(outpoint.toString()); - final TransactionOutput connectedOutput = outpoint.getConnectedOutput(); - if (connectedOutput != null) { - Script scriptPubKey = connectedOutput.getScriptPubKey(); - if (scriptPubKey.isSentToAddress() || scriptPubKey.isPayToScriptHash()) { - s.append(" hash160:"); - s.append(Utils.HEX.encode(scriptPubKey.getPubKeyHash())); + try { + Script scriptSig = in.getScriptSig(); + s.append(scriptSig); + if (in.getValue() != null) + s.append(" ").append(in.getValue().toFriendlyString()); + s.append("\n "); + s.append("outpoint:"); + final TransactionOutPoint outpoint = in.getOutpoint(); + s.append(outpoint.toString()); + final TransactionOutput connectedOutput = outpoint.getConnectedOutput(); + if (connectedOutput != null) { + Script scriptPubKey = connectedOutput.getScriptPubKey(); + if (scriptPubKey.isSentToAddress() || scriptPubKey.isPayToScriptHash()) { + s.append(" hash160:"); + s.append(Utils.HEX.encode(scriptPubKey.getPubKeyHash())); + } } + if (in.hasSequence()) { + s.append("\n sequence:").append(Long.toHexString(in.getSequenceNumber())); + if (in.isOptInFullRBF()) + s.append(", opts into full RBF"); + } + } catch (Exception e) { + s.append("[exception: ").append(e.getMessage()).append("]"); } - if (in.hasSequence()) { - s.append("\n sequence:").append(Long.toHexString(in.getSequenceNumber())); - if (in.isOptInFullRBF()) - s.append(", opts into full RBF"); - } - } catch (Exception e) { - s.append("[exception: ").append(e.getMessage()).append("]"); + s.append('\n'); } - s.append('\n'); + } else { + s.append(" "); + s.append("INCOMPLETE: No inputs!\n"); } for (TransactionOutput out : outputs) { s.append(" ");