diff --git a/core/src/main/java/bisq/core/btc/wallet/TradeWalletService.java b/core/src/main/java/bisq/core/btc/wallet/TradeWalletService.java index 135395f797e..8a570dd8301 100644 --- a/core/src/main/java/bisq/core/btc/wallet/TradeWalletService.java +++ b/core/src/main/java/bisq/core/btc/wallet/TradeWalletService.java @@ -926,10 +926,10 @@ public Transaction traderSignAndFinalizeDisputedPayoutTx(byte[] depositTxSeriali TransactionOutput p2SHMultiSigOutput = depositTx.getOutput(0); Transaction payoutTx = new Transaction(params); payoutTx.addInput(p2SHMultiSigOutput); - if (buyerPayoutAmount.isGreaterThan(Coin.ZERO)) { + if (buyerPayoutAmount.isPositive()) { payoutTx.addOutput(buyerPayoutAmount, Address.fromBase58(params, buyerAddressString)); } - if (sellerPayoutAmount.isGreaterThan(Coin.ZERO)) { + if (sellerPayoutAmount.isPositive()) { payoutTx.addOutput(sellerPayoutAmount, Address.fromBase58(params, sellerAddressString)); } @@ -989,10 +989,10 @@ public Transaction emergencySignAndPublishPayoutTxFrom2of2MultiSig(String deposi Sha256Hash spendTxHash = Sha256Hash.wrap(depositTxHex); payoutTx.addInput(new TransactionInput(params, depositTx, p2SHMultiSigOutputScript.getProgram(), new TransactionOutPoint(params, 0, spendTxHash), msOutput)); - if (buyerPayoutAmount.isGreaterThan(Coin.ZERO)) { + if (buyerPayoutAmount.isPositive()) { payoutTx.addOutput(buyerPayoutAmount, Address.fromBase58(params, buyerAddressString)); } - if (sellerPayoutAmount.isGreaterThan(Coin.ZERO)) { + if (sellerPayoutAmount.isPositive()) { payoutTx.addOutput(sellerPayoutAmount, Address.fromBase58(params, sellerAddressString)); } @@ -1135,8 +1135,13 @@ private Transaction createPayoutTx(Transaction depositTx, TransactionOutput p2SHMultiSigOutput = depositTx.getOutput(0); Transaction transaction = new Transaction(params); transaction.addInput(p2SHMultiSigOutput); - transaction.addOutput(buyerPayoutAmount, Address.fromBase58(params, buyerAddressString)); - transaction.addOutput(sellerPayoutAmount, Address.fromBase58(params, sellerAddressString)); + if (buyerPayoutAmount.isPositive()) { + transaction.addOutput(buyerPayoutAmount, Address.fromBase58(params, buyerAddressString)); + } + if (sellerPayoutAmount.isPositive()) { + transaction.addOutput(sellerPayoutAmount, Address.fromBase58(params, sellerAddressString)); + } + checkArgument(transaction.getOutputs().size() >= 1, "We need at least one output."); return transaction; } diff --git a/desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsListItem.java b/desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsListItem.java index ef18da24dc4..e8b9f47e2a0 100644 --- a/desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsListItem.java +++ b/desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsListItem.java @@ -223,6 +223,10 @@ public void onTransactionConfidenceChanged(TransactionConfidence confidence) { } else if (trade.getPayoutTx() != null && trade.getPayoutTx().getHashAsString().equals(txId)) { details = Res.get("funds.tx.multiSigPayout", tradeId); + + if (amountAsCoin.isZero()) { + txConfidenceIndicator.setVisible(false); + } } else { Trade.DisputeState disputeState = trade.getDisputeState(); if (disputeState == Trade.DisputeState.DISPUTE_CLOSED) {