diff --git a/src/main/java/org/qortal/controller/tradebot/AcctTradeBot.java b/src/main/java/org/qortal/controller/tradebot/AcctTradeBot.java index 51b2b075..84a0d484 100644 --- a/src/main/java/org/qortal/controller/tradebot/AcctTradeBot.java +++ b/src/main/java/org/qortal/controller/tradebot/AcctTradeBot.java @@ -23,7 +23,7 @@ public interface AcctTradeBot { public ResponseResult startResponse(Repository repository, ATData atData, ACCT acct, CrossChainTradeData crossChainTradeData, String foreignKey, String receivingAddress) throws DataException; - public boolean canDelete(Repository repository, TradeBotData tradeBotData); + public boolean canDelete(Repository repository, TradeBotData tradeBotData) throws DataException; public void progress(Repository repository, TradeBotData tradeBotData) throws DataException, ForeignBlockchainException; diff --git a/src/main/java/org/qortal/controller/tradebot/BitcoinACCTv1TradeBot.java b/src/main/java/org/qortal/controller/tradebot/BitcoinACCTv1TradeBot.java index fe0f41c1..a7e83e64 100644 --- a/src/main/java/org/qortal/controller/tradebot/BitcoinACCTv1TradeBot.java +++ b/src/main/java/org/qortal/controller/tradebot/BitcoinACCTv1TradeBot.java @@ -345,11 +345,15 @@ public class BitcoinACCTv1TradeBot implements AcctTradeBot { } @Override - public boolean canDelete(Repository repository, TradeBotData tradeBotData) { + public boolean canDelete(Repository repository, TradeBotData tradeBotData) throws DataException { State tradeBotState = State.valueOf(tradeBotData.getStateValue()); if (tradeBotState == null) return true; + // If the AT doesn't exist then we might as well let the user tidy up + if (!repository.getATRepository().exists(tradeBotData.getAtAddress())) + return true; + switch (tradeBotState) { case BOB_WAITING_FOR_AT_CONFIRM: case ALICE_DONE: diff --git a/src/main/java/org/qortal/controller/tradebot/LitecoinACCTv1TradeBot.java b/src/main/java/org/qortal/controller/tradebot/LitecoinACCTv1TradeBot.java index 0da3f0ce..893a1a41 100644 --- a/src/main/java/org/qortal/controller/tradebot/LitecoinACCTv1TradeBot.java +++ b/src/main/java/org/qortal/controller/tradebot/LitecoinACCTv1TradeBot.java @@ -343,11 +343,15 @@ public class LitecoinACCTv1TradeBot implements AcctTradeBot { } @Override - public boolean canDelete(Repository repository, TradeBotData tradeBotData) { + public boolean canDelete(Repository repository, TradeBotData tradeBotData) throws DataException { State tradeBotState = State.valueOf(tradeBotData.getStateValue()); if (tradeBotState == null) return true; + // If the AT doesn't exist then we might as well let the user tidy up + if (!repository.getATRepository().exists(tradeBotData.getAtAddress())) + return true; + switch (tradeBotState) { case BOB_WAITING_FOR_AT_CONFIRM: case ALICE_DONE: