mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-03-15 02:16:43 -04:00
fix bug to delete scheduled failed trade after restart
This commit is contained in:
parent
2d46b2ab7c
commit
8b1d2aa203
@ -1618,15 +1618,16 @@ public abstract class Trade extends XmrWalletBase implements Tradable, Model {
|
||||
// done if wallet already deleted
|
||||
if (!walletExists()) return;
|
||||
|
||||
// move to failed trades
|
||||
processModel.getTradeManager().onMoveInvalidTradeToFailedTrades(this);
|
||||
|
||||
// set error height
|
||||
if (processModel.getTradeProtocolErrorHeight() == 0) {
|
||||
log.warn("Scheduling to remove trade if unfunded for {} {} from height {}", getClass().getSimpleName(), getId(), xmrConnectionService.getLastInfo().getHeight());
|
||||
processModel.setTradeProtocolErrorHeight(xmrConnectionService.getLastInfo().getHeight());
|
||||
processModel.setTradeProtocolErrorHeight(xmrConnectionService.getLastInfo().getHeight()); // height denotes scheduled error handling
|
||||
}
|
||||
|
||||
// move to failed trades
|
||||
processModel.getTradeManager().onMoveInvalidTradeToFailedTrades(this);
|
||||
requestPersistence();
|
||||
|
||||
// listen for deposits published to restore trade
|
||||
protocolErrorStateSubscription = EasyBind.subscribe(stateProperty(), state -> {
|
||||
if (isDepositsPublished()) {
|
||||
@ -1680,6 +1681,10 @@ public abstract class Trade extends XmrWalletBase implements Tradable, Model {
|
||||
});
|
||||
}
|
||||
|
||||
public boolean isProtocolErrorHandlingScheduled() {
|
||||
return processModel.getTradeProtocolErrorHeight() > 0;
|
||||
}
|
||||
|
||||
private void restoreDepositsPublishedTrade() {
|
||||
|
||||
// close open offer
|
||||
|
@ -450,8 +450,8 @@ public class TradeManager implements PersistedDataHost, DecryptedDirectMessageLi
|
||||
return;
|
||||
}
|
||||
|
||||
// skip if marked as failed
|
||||
if (failedTradesManager.getObservableList().contains(trade)) {
|
||||
// skip if failed and error handling not scheduled
|
||||
if (failedTradesManager.getObservableList().contains(trade) && !trade.isProtocolErrorHandlingScheduled()) {
|
||||
log.warn("Skipping initialization of failed trade {} {}", trade.getClass().getSimpleName(), trade.getId());
|
||||
tradesToSkip.add(trade);
|
||||
return;
|
||||
@ -460,8 +460,8 @@ public class TradeManager implements PersistedDataHost, DecryptedDirectMessageLi
|
||||
// initialize trade
|
||||
initPersistedTrade(trade);
|
||||
|
||||
// remove trade if protocol didn't initialize
|
||||
if (getOpenTradeByUid(trade.getUid()).isPresent() && !trade.isDepositsPublished()) {
|
||||
// record if protocol didn't initialize
|
||||
if (!trade.isDepositsPublished()) {
|
||||
uninitializedTrades.add(trade);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user