diff --git a/core/src/main/java/bisq/core/btc/wallet/XmrWalletService.java b/core/src/main/java/bisq/core/btc/wallet/XmrWalletService.java index cc667c09..33342b44 100644 --- a/core/src/main/java/bisq/core/btc/wallet/XmrWalletService.java +++ b/core/src/main/java/bisq/core/btc/wallet/XmrWalletService.java @@ -111,7 +111,7 @@ public class XmrWalletService { .setPath(path) .setPassword("abctesting123")); multisigWallets.put(tradeId, multisigWallet); - multisigWallet.startSyncing(5000l); // TODO (woodser): apps stall if too many multisig wallets and too short sync period + multisigWallet.startSyncing(5000l); // TODO (woodser): use sync period from config. apps stall if too many multisig wallets and too short sync period return multisigWallet; } diff --git a/core/src/main/java/bisq/core/trade/Trade.java b/core/src/main/java/bisq/core/trade/Trade.java index 34c1c875..a7e3bf07 100644 --- a/core/src/main/java/bisq/core/trade/Trade.java +++ b/core/src/main/java/bisq/core/trade/Trade.java @@ -699,8 +699,7 @@ public abstract class Trade implements Tradable, Model { // The deserialized tx has not actual confidence data, so we need to get the fresh one from the wallet. void updateDepositTxFromWallet() { if (getMakerDepositTx() != null && getTakerDepositTx() != null) { - System.out.println(processModel.getProvider().getXmrWalletService()); - MoneroWallet multisigWallet = processModel.getProvider().getXmrWalletService().getMultisigWallet(getId()); + MoneroWallet multisigWallet = processModel.getProvider().getXmrWalletService().getMultisigWallet(getId()); applyDepositTxs(multisigWallet.getTx(getMakerDepositTx().getHash()), multisigWallet.getTx(getTakerDepositTx().getHash())); } } diff --git a/core/src/main/java/bisq/core/trade/TradeManager.java b/core/src/main/java/bisq/core/trade/TradeManager.java index 3fddfc57..7a641b78 100644 --- a/core/src/main/java/bisq/core/trade/TradeManager.java +++ b/core/src/main/java/bisq/core/trade/TradeManager.java @@ -737,8 +737,7 @@ public class TradeManager implements PersistedDataHost, DecryptedDirectMessageLi initTradeAndProtocol(trade, tradeProtocol); - ((TakerProtocol) tradeProtocol).onTakeOffer(); - tradeResultHandler.handleResult(trade); + ((TakerProtocol) tradeProtocol).onTakeOffer(tradeResultHandler); requestPersistence(); } }, diff --git a/core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java b/core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java index 8dec9ae9..3cc42a55 100644 --- a/core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java +++ b/core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java @@ -21,6 +21,7 @@ package bisq.core.trade.protocol; import bisq.core.offer.Offer; import bisq.core.trade.BuyerAsTakerTrade; import bisq.core.trade.Trade; +import bisq.core.trade.handlers.TradeResultHandler; import bisq.core.trade.messages.DelayedPayoutTxSignatureRequest; import bisq.core.trade.messages.DepositResponse; import bisq.core.trade.messages.DepositTxAndDelayedPayoutTxMessage; @@ -66,6 +67,8 @@ import static com.google.common.base.Preconditions.checkNotNull; // TODO (woodser): remove unused request handling @Slf4j public class BuyerAsTakerProtocol extends BuyerProtocol implements TakerProtocol { + + private TradeResultHandler tradeResultHandler; /////////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -87,8 +90,9 @@ public class BuyerAsTakerProtocol extends BuyerProtocol implements TakerProtocol // TODO (woodser): this implementation is duplicated with SellerAsTakerProtocol @Override - public void onTakeOffer() { + public void onTakeOffer(TradeResultHandler tradeResultHandler) { System.out.println("onTakeOffer()"); + this.tradeResultHandler = tradeResultHandler; expect(phase(Trade.Phase.INIT) .with(TakerEvent.TAKE_OFFER) @@ -297,6 +301,7 @@ public class BuyerAsTakerProtocol extends BuyerProtocol implements TakerProtocol () -> { stopTimeout(); handleTaskRunnerSuccess(sender, request); + tradeResultHandler.handleResult(trade); // trade is initialized }, errorMessage -> { errorMessageHandler.handleErrorMessage(errorMessage); diff --git a/core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java b/core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java index cdf64dfc..65d009b4 100644 --- a/core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java +++ b/core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java @@ -21,6 +21,7 @@ package bisq.core.trade.protocol; import bisq.core.offer.Offer; import bisq.core.trade.SellerAsTakerTrade; import bisq.core.trade.Trade; +import bisq.core.trade.handlers.TradeResultHandler; import bisq.core.trade.messages.CounterCurrencyTransferStartedMessage; import bisq.core.trade.messages.DepositResponse; import bisq.core.trade.messages.InitMultisigRequest; @@ -61,6 +62,8 @@ import static com.google.common.base.Preconditions.checkNotNull; // TODO (woodser): remove unused request handling @Slf4j public class SellerAsTakerProtocol extends SellerProtocol implements TakerProtocol { + + private TradeResultHandler tradeResultHandler; /////////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -78,8 +81,9 @@ public class SellerAsTakerProtocol extends SellerProtocol implements TakerProtoc /////////////////////////////////////////////////////////////////////////////////////////// @Override - public void onTakeOffer() { + public void onTakeOffer(TradeResultHandler tradeResultHandler) { System.out.println("onTakeOffer()"); + this.tradeResultHandler = tradeResultHandler; expect(phase(Trade.Phase.INIT) .with(TakerEvent.TAKE_OFFER) @@ -262,7 +266,7 @@ public class SellerAsTakerProtocol extends SellerProtocol implements TakerProtoc System.out.println("SellerAsTakerProtocol.handlePaymentAccountPayloadRequest()"); Validator.checkTradeId(processModel.getOfferId(), request); processModel.setTradeMessage(request); - expect(anyPhase(Trade.Phase.INIT, Trade.Phase.DEPOSIT_PUBLISHED) + expect(anyPhase(Trade.Phase.INIT, Trade.Phase.DEPOSIT_PUBLISHED) // TODO: only deposit_published should be expected .with(request) .from(sender)) // TODO (woodser): ensure this asserts sender == response.getSenderNodeAddress() .setup(tasks( @@ -272,6 +276,7 @@ public class SellerAsTakerProtocol extends SellerProtocol implements TakerProtoc () -> { stopTimeout(); handleTaskRunnerSuccess(sender, request); + tradeResultHandler.handleResult(trade); // trade is initialized }, errorMessage -> { errorMessageHandler.handleErrorMessage(errorMessage); diff --git a/core/src/main/java/bisq/core/trade/protocol/TakerProtocol.java b/core/src/main/java/bisq/core/trade/protocol/TakerProtocol.java index 4c98f0ca..a37e8af0 100644 --- a/core/src/main/java/bisq/core/trade/protocol/TakerProtocol.java +++ b/core/src/main/java/bisq/core/trade/protocol/TakerProtocol.java @@ -17,9 +17,10 @@ package bisq.core.trade.protocol; +import bisq.core.trade.handlers.TradeResultHandler; public interface TakerProtocol extends TraderProtocol { - void onTakeOffer(); + void onTakeOffer(TradeResultHandler tradeResultHandler); enum TakerEvent implements FluentProtocol.Event { TAKE_OFFER