From b19724e33de95c465fe52acd6e68e7c9dd3ca19a Mon Sep 17 00:00:00 2001 From: woodser <13068859+woodser@users.noreply.github.com> Date: Fri, 14 Mar 2025 08:26:11 -0400 Subject: [PATCH] fix summary info not populated on normal payout after dispute --- core/src/main/java/haveno/core/trade/Trade.java | 5 ++--- .../portfolio/pendingtrades/PendingTradesViewModel.java | 8 ++++++-- .../pendingtrades/steps/buyer/BuyerStep4View.java | 8 ++++---- .../pendingtrades/steps/seller/SellerStep4View.java | 2 +- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/haveno/core/trade/Trade.java b/core/src/main/java/haveno/core/trade/Trade.java index 72d77de7d6..57767a5757 100644 --- a/core/src/main/java/haveno/core/trade/Trade.java +++ b/core/src/main/java/haveno/core/trade/Trade.java @@ -1903,10 +1903,9 @@ public abstract class Trade extends XmrWalletBase implements Tradable, Model { getSeller().setPayoutTxFee(splitTxFee); getBuyer().setPayoutAmount(getBuyer().getSecurityDeposit().subtract(getBuyer().getPayoutTxFee()).add(getAmount())); getSeller().setPayoutAmount(getSeller().getSecurityDeposit().subtract(getSeller().getPayoutTxFee())); - } else if (getDisputeState().isClosed()) { + } else { DisputeResult disputeResult = getDisputeResult(); - if (disputeResult == null) log.warn("Dispute result is not set for {} {}", getClass().getSimpleName(), getId()); - else { + if (disputeResult != null) { BigInteger[] buyerSellerPayoutTxFees = ArbitrationManager.getBuyerSellerPayoutTxCost(disputeResult, payoutTx.getFee()); getBuyer().setPayoutTxFee(buyerSellerPayoutTxFees[0]); getSeller().setPayoutTxFee(buyerSellerPayoutTxFees[1]); diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java index b19d6dcc26..1db4d944c0 100644 --- a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java +++ b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java @@ -416,8 +416,12 @@ public class PendingTradesViewModel extends ActivatableWithDataModel<PendingTrad // payment received case SELLER_SENT_PAYMENT_RECEIVED_MSG: - if (trade instanceof BuyerTrade) buyerState.set(BuyerState.STEP4); - else if (trade instanceof SellerTrade) sellerState.set(trade.isPayoutPublished() ? SellerState.STEP4 : SellerState.STEP3); + if (trade instanceof BuyerTrade) { + buyerState.set(BuyerState.UNDEFINED); // TODO: resetting screen to populate summary information which can be missing before payout message processed + buyerState.set(BuyerState.STEP4); + } else if (trade instanceof SellerTrade) { + sellerState.set(trade.isPayoutPublished() ? SellerState.STEP4 : SellerState.STEP3); + } break; // seller step 3 diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java index 34bfc75223..e589443301 100644 --- a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java +++ b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java @@ -79,7 +79,7 @@ public class BuyerStep4View extends TradeStepView { TitledGroupBg completedTradeLabel = new TitledGroupBg(); if (trade.getDisputeState().isMediated()) { completedTradeLabel.setText(Res.get("portfolio.pending.step5_buyer.groupTitle.mediated")); - } else if (trade.getDisputeState().isArbitrated() && trade.getDisputes().get(0).getDisputeResultProperty().get() != null) { + } else if (trade.getDisputeState().isArbitrated() && trade.getDisputeResult() != null) { completedTradeLabel.setText(Res.get("portfolio.pending.step5_buyer.groupTitle.arbitrated")); } else { completedTradeLabel.setText(Res.get("portfolio.pending.step5_buyer.groupTitle")); @@ -90,8 +90,8 @@ public class BuyerStep4View extends TradeStepView { gridPane.getChildren().add(hBox2); GridPane.setRowSpan(hBox2, 5); - if (trade.getDisputeState().isNotDisputed()) { - addCompactTopLabelTextField(gridPane, gridRow, getBtcTradeAmountLabel(), model.getTradeVolume(), Layout.TWICE_FIRST_ROW_DISTANCE); + if (trade.isPaymentReceived()) { + addCompactTopLabelTextField(gridPane, gridRow, getXmrTradeAmountLabel(), model.getTradeVolume(), Layout.TWICE_FIRST_ROW_DISTANCE); addCompactTopLabelTextField(gridPane, ++gridRow, getTraditionalTradeAmountLabel(), model.getFiatVolume()); addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("portfolio.pending.step5_buyer.refunded"), model.getSecurityDeposit()); addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("portfolio.pending.step5_buyer.tradeFee"), model.getTradeFee()); @@ -149,7 +149,7 @@ public class BuyerStep4View extends TradeStepView { } } - protected String getBtcTradeAmountLabel() { + protected String getXmrTradeAmountLabel() { return Res.get("portfolio.pending.step5_buyer.bought"); } diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep4View.java b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep4View.java index 82927e1d50..12bcf6317b 100644 --- a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep4View.java +++ b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep4View.java @@ -32,7 +32,7 @@ public class SellerStep4View extends BuyerStep4View { } @Override - protected String getBtcTradeAmountLabel() { + protected String getXmrTradeAmountLabel() { return Res.get("portfolio.pending.step5_seller.sold"); }