fix summary info not populated on normal payout after dispute

This commit is contained in:
woodser 2025-03-14 08:26:11 -04:00
parent d9b1c0594d
commit 7a6c066ad3
No known key found for this signature in database
GPG key ID: 55A10DD48ADEE5EF
4 changed files with 13 additions and 10 deletions
core/src/main/java/haveno/core/trade
desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades

View file

@ -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]);

View file

@ -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

View file

@ -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");
}

View file

@ -32,7 +32,7 @@ public class SellerStep4View extends BuyerStep4View {
}
@Override
protected String getBtcTradeAmountLabel() {
protected String getXmrTradeAmountLabel() {
return Res.get("portfolio.pending.step5_seller.sold");
}