From cd830bb128d8ae7f022f5446cac18b7bc643ab27 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Wed, 24 Feb 2016 15:47:22 +0100 Subject: [PATCH] Print transaction fee per kilobyte besides total fee in wallet dump. --- core/src/main/java/org/bitcoinj/core/Transaction.java | 5 +++-- core/src/main/java/org/bitcoinj/core/Wallet.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/Transaction.java b/core/src/main/java/org/bitcoinj/core/Transaction.java index bb8aaf59..c10bc390 100644 --- a/core/src/main/java/org/bitcoinj/core/Transaction.java +++ b/core/src/main/java/org/bitcoinj/core/Transaction.java @@ -693,9 +693,10 @@ public class Transaction extends ChildMessage { } s.append(String.format(Locale.US, "%n")); } - Coin fee = getFee(); + final Coin fee = getFee(); if (fee != null) - s.append(" fee ").append(fee.toFriendlyString()).append(String.format(Locale.US, "%n")); + s.append(" fee ").append(fee.multiply(1000).divide(unsafeBitcoinSerialize().length).toFriendlyString()) + .append("/kB, ").append(fee.toFriendlyString()).append(String.format(Locale.US, " total%n")); if (purpose != null) s.append(" prps ").append(purpose).append(String.format(Locale.US, "%n")); return s.toString(); diff --git a/core/src/main/java/org/bitcoinj/core/Wallet.java b/core/src/main/java/org/bitcoinj/core/Wallet.java index feecce41..c93ddc71 100644 --- a/core/src/main/java/org/bitcoinj/core/Wallet.java +++ b/core/src/main/java/org/bitcoinj/core/Wallet.java @@ -4196,13 +4196,14 @@ public class Wallet extends BaseTaggableObject signTransaction(req); // Check size. - int size = req.tx.bitcoinSerialize().length; + final int size = req.tx.unsafeBitcoinSerialize().length; if (size > Transaction.MAX_STANDARD_TX_SIZE) throw new ExceededMaxTransactionSize(); final Coin calculatedFee = req.tx.getFee(); if (calculatedFee != null) - log.info(" with a fee of {}", calculatedFee.toFriendlyString()); + log.info(" with a fee of {}/kB, {} total", + calculatedFee.multiply(1000).divide(size).toFriendlyString(), calculatedFee.toFriendlyString()); // Label the transaction as being self created. We can use this later to spend its change output even before // the transaction is confirmed. We deliberately won't bother notifying listeners here as there's not much