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