Rename process classes

This commit is contained in:
Manfred Karrer 2015-03-21 11:48:57 +01:00
parent 239389b529
commit 12bea799f3
43 changed files with 238 additions and 210 deletions

View file

@ -28,26 +28,26 @@ import io.bitsquare.trade.protocol.placeoffer.tasks.AddOfferToRemoteOfferBook;
import io.bitsquare.trade.protocol.placeoffer.tasks.BroadcastCreateOfferFeeTx; import io.bitsquare.trade.protocol.placeoffer.tasks.BroadcastCreateOfferFeeTx;
import io.bitsquare.trade.protocol.placeoffer.tasks.CreateOfferFeeTx; import io.bitsquare.trade.protocol.placeoffer.tasks.CreateOfferFeeTx;
import io.bitsquare.trade.protocol.placeoffer.tasks.ValidateOffer; import io.bitsquare.trade.protocol.placeoffer.tasks.ValidateOffer;
import io.bitsquare.trade.protocol.trade.offerer.BuyerAsOffererProtocol; import io.bitsquare.trade.protocol.trade.offerer.OffererAsBuyerProtocol;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateAndSignPayoutTx; import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateAndSignPayoutTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateOffererDepositTxInputs; import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateOffererDepositTxInputs;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestDepositPayment; import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestTakerDepositPayment;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxIdToTaker; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxToTaker;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation; import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SignAndPublishDepositTx; import io.bitsquare.trade.protocol.trade.offerer.tasks.SignAndPublishDepositTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakeOfferFeePayment; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakeOfferFeePayment;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakerAccount; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakerAccount;
import io.bitsquare.trade.protocol.trade.taker.SellerAsTakerProtocol; import io.bitsquare.trade.protocol.trade.taker.TakerAsSellerProtocol;
import io.bitsquare.trade.protocol.trade.taker.tasks.CreateAndSignContract; import io.bitsquare.trade.protocol.trade.taker.tasks.CreateAndSignContract;
import io.bitsquare.trade.protocol.trade.taker.tasks.CreateTakeOfferFeeTx; import io.bitsquare.trade.protocol.trade.taker.tasks.CreateTakeOfferFeeTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessDepositTxPublishedMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessDepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestDepositPaymentMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendPayoutTxToOfferer; import io.bitsquare.trade.protocol.trade.taker.tasks.SendPayoutTxToOfferer;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendRequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.SendRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendSignedTakerDepositTx; import io.bitsquare.trade.protocol.trade.taker.tasks.SendSignedTakerDepositTx;
@ -101,17 +101,17 @@ public class DebugView extends InitializableView {
/*---- Protocol ----*/ /*---- Protocol ----*/
BuyerAsOffererProtocol.class, OffererAsBuyerProtocol.class,
ProcessRequestDepositTxInputsMessage.class, ProcessRequestDepositTxInputsMessage.class,
CreateOffererDepositTxInputs.class, CreateOffererDepositTxInputs.class,
RequestDepositPayment.class, RequestTakerDepositPayment.class,
ProcessRequestOffererPublishDepositTxMessage.class, ProcessRequestOffererPublishDepositTxMessage.class,
VerifyTakerAccount.class, VerifyTakerAccount.class,
VerifyAndSignContract.class, VerifyAndSignContract.class,
SignAndPublishDepositTx.class, SignAndPublishDepositTx.class,
SetupListenerForBlockChainConfirmation.class, SetupListenerForBlockChainConfirmation.class,
SendDepositTxIdToTaker.class, SendDepositTxToTaker.class,
CreateAndSignPayoutTx.class, CreateAndSignPayoutTx.class,
VerifyTakeOfferFeePayment.class, VerifyTakeOfferFeePayment.class,
@ -122,11 +122,11 @@ public class DebugView extends InitializableView {
/*---- Protocol ----*/ /*---- Protocol ----*/
SellerAsTakerProtocol.class, TakerAsSellerProtocol.class,
CreateTakeOfferFeeTx.class, CreateTakeOfferFeeTx.class,
SendRequestDepositTxInputsMessage.class, SendRequestDepositTxInputsMessage.class,
ProcessRequestDepositPaymentMessage.class, ProcessRequestTakerDepositPaymentMessage.class,
VerifyOffererAccount.class, VerifyOffererAccount.class,
CreateAndSignContract.class, CreateAndSignContract.class,
TakerCreatesAndSignsDepositTx.class, TakerCreatesAndSignsDepositTx.class,

View file

@ -20,5 +20,5 @@ package io.bitsquare.p2p;
import java.util.List; import java.util.List;
public interface MailboxMessagesResultHandler { public interface MailboxMessagesResultHandler {
void handleResult(List<EncryptedMailboxMessage> messages); void handleResult(List<EncryptedMailboxMessage> encryptedMailboxMessages);
} }

View file

@ -45,10 +45,10 @@ import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailable
import io.bitsquare.trade.protocol.placeoffer.PlaceOfferModel; import io.bitsquare.trade.protocol.placeoffer.PlaceOfferModel;
import io.bitsquare.trade.protocol.placeoffer.PlaceOfferProtocol; import io.bitsquare.trade.protocol.placeoffer.PlaceOfferProtocol;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage; import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
import io.bitsquare.trade.protocol.trade.offerer.BuyerAsOffererProtocol; import io.bitsquare.trade.protocol.trade.offerer.OffererAsBuyerProtocol;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import io.bitsquare.trade.protocol.trade.taker.SellerAsTakerProtocol; import io.bitsquare.trade.protocol.trade.taker.TakerAsSellerProtocol;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import io.bitsquare.user.AccountSettings; import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.User; import io.bitsquare.user.User;
@ -86,8 +86,8 @@ public class TradeManager {
private EncryptionService<MailboxMessage> encryptionService; private EncryptionService<MailboxMessage> encryptionService;
private final OfferBookService offerBookService; private final OfferBookService offerBookService;
private final Map<String, SellerAsTakerProtocol> sellerAsTakerProtocolMap = new HashMap<>(); private final Map<String, TakerAsSellerProtocol> takerAsSellerProtocolMap = new HashMap<>();
private final Map<String, BuyerAsOffererProtocol> buyerAcceptsOfferProtocolMap = new HashMap<>(); private final Map<String, OffererAsBuyerProtocol> offererAsBuyerProtocolMap = new HashMap<>();
private final Map<String, CheckOfferAvailabilityProtocol> checkOfferAvailabilityProtocolMap = new HashMap<>(); private final Map<String, CheckOfferAvailabilityProtocol> checkOfferAvailabilityProtocolMap = new HashMap<>();
private final ObservableMap<String, Offer> openOffers = FXCollections.observableHashMap(); private final ObservableMap<String, Offer> openOffers = FXCollections.observableHashMap();
@ -144,7 +144,7 @@ public class TradeManager {
// BuyerAcceptsOfferProtocol listens for take offer requests, so we need to instantiate it early. // BuyerAcceptsOfferProtocol listens for take offer requests, so we need to instantiate it early.
public void onAllServicesInitialized() { public void onAllServicesInitialized() {
for (Map.Entry<String, Offer> entry : openOffers.entrySet()) { for (Map.Entry<String, Offer> entry : openOffers.entrySet()) {
createBuyerAcceptsOfferProtocol(entry.getValue()); createOffererAsBuyerProtocol(entry.getValue());
} }
for (Map.Entry<String, Trade> entry : pendingTrades.entrySet()) { for (Map.Entry<String, Trade> entry : pendingTrades.entrySet()) {
Trade trade = entry.getValue(); Trade trade = entry.getValue();
@ -154,7 +154,7 @@ public class TradeManager {
else { else {
Offer offer = trade.getOffer(); Offer offer = trade.getOffer();
if (isMyOffer(offer)) { if (isMyOffer(offer)) {
createBuyerAcceptsOfferProtocol(offer); createOffererAsBuyerProtocol(offer);
} }
else { else {
CheckOfferAvailabilityModel model = new CheckOfferAvailabilityModel(offer, messageService, addressService); CheckOfferAvailabilityModel model = new CheckOfferAvailabilityModel(offer, messageService, addressService);
@ -163,7 +163,7 @@ public class TradeManager {
disposeCheckOfferAvailabilityRequest(offer); disposeCheckOfferAvailabilityRequest(offer);
// TODO need to check that trade hijacking is not possible (taking trades form other peers) // TODO need to check that trade hijacking is not possible (taking trades form other peers)
if (offer.getState() == Offer.State.AVAILABLE || offer.getState() == Offer.State.RESERVED) { if (offer.getState() == Offer.State.AVAILABLE || offer.getState() == Offer.State.RESERVED) {
createSellerAsTakerProtocol(trade, model.getPeer()); createTakerAsSellerProtocol(trade, model.getPeer());
} }
}, },
(errorMessage) -> disposeCheckOfferAvailabilityRequest(offer)); (errorMessage) -> disposeCheckOfferAvailabilityRequest(offer));
@ -174,8 +174,8 @@ public class TradeManager {
} }
mailboxService.getAllMessages(user.getP2PSigPubKey(), mailboxService.getAllMessages(user.getP2PSigPubKey(),
(messages) -> { (encryptedMailboxMessages) -> {
decryptMailboxMessages(messages); decryptMailboxMessages(encryptedMailboxMessages);
emptyMailbox(); emptyMailbox();
}); });
@ -222,7 +222,7 @@ public class TradeManager {
(transaction) -> { (transaction) -> {
openOffers.put(offer.getId(), offer); openOffers.put(offer.getId(), offer);
persistOpenOffers(); persistOpenOffers();
createBuyerAcceptsOfferProtocol(offer); createOffererAsBuyerProtocol(offer);
resultHandler.handleResult(transaction); resultHandler.handleResult(transaction);
}, },
(message) -> errorMessageHandler.handleErrorMessage(message) (message) -> errorMessageHandler.handleErrorMessage(message)
@ -286,14 +286,14 @@ public class TradeManager {
public void onFiatPaymentStarted(String tradeId) { public void onFiatPaymentStarted(String tradeId) {
// TODO remove if check when persistence is impl. // TODO remove if check when persistence is impl.
if (buyerAcceptsOfferProtocolMap.containsKey(tradeId)) { if (offererAsBuyerProtocolMap.containsKey(tradeId)) {
buyerAcceptsOfferProtocolMap.get(tradeId).onFiatPaymentStarted(); offererAsBuyerProtocolMap.get(tradeId).onFiatPaymentStarted();
persistPendingTrades(); persistPendingTrades();
} }
} }
public void onFiatPaymentReceived(String tradeId) { public void onFiatPaymentReceived(String tradeId) {
sellerAsTakerProtocolMap.get(tradeId).onFiatPaymentReceived(); takerAsSellerProtocolMap.get(tradeId).onFiatPaymentReceived();
} }
public void onWithdrawAtTradeCompleted(Trade trade) { public void onWithdrawAtTradeCompleted(Trade trade) {
@ -377,9 +377,9 @@ public class TradeManager {
openOffers.remove(offerId); openOffers.remove(offerId);
disposeCheckOfferAvailabilityRequest(offer); disposeCheckOfferAvailabilityRequest(offer);
persistOpenOffers(); persistOpenOffers();
if (removeFromBuyerAcceptsOfferProtocolMap && buyerAcceptsOfferProtocolMap.containsKey(offerId)) { if (removeFromBuyerAcceptsOfferProtocolMap && offererAsBuyerProtocolMap.containsKey(offerId)) {
buyerAcceptsOfferProtocolMap.get(offerId).cleanup(); offererAsBuyerProtocolMap.get(offerId).cleanup();
buyerAcceptsOfferProtocolMap.remove(offerId); offererAsBuyerProtocolMap.remove(offerId);
} }
resultHandler.handleResult(); resultHandler.handleResult();
@ -415,7 +415,7 @@ public class TradeManager {
Trade trade = createTrade(offer); Trade trade = createTrade(offer);
trade.setTradeAmount(amount); trade.setTradeAmount(amount);
SellerAsTakerProtocol sellerTakesOfferProtocol = createSellerAsTakerProtocol(trade, peer); TakerAsSellerProtocol sellerTakesOfferProtocol = createTakerAsSellerProtocol(trade, peer);
sellerTakesOfferProtocol.takeAvailableOffer(); sellerTakesOfferProtocol.takeAvailableOffer();
return trade; return trade;
} }
@ -433,7 +433,7 @@ public class TradeManager {
return trade; return trade;
} }
private SellerAsTakerProtocol createSellerAsTakerProtocol(Trade trade, Peer peer) { private TakerAsSellerProtocol createTakerAsSellerProtocol(Trade trade, Peer peer) {
trade.stateProperty().addListener((ov, oldValue, newValue) -> { trade.stateProperty().addListener((ov, oldValue, newValue) -> {
log.debug("trade state = " + newValue); log.debug("trade state = " + newValue);
switch (newValue) { switch (newValue) {
@ -457,7 +457,7 @@ public class TradeManager {
} }
}); });
SellerAsTakerModel model = new SellerAsTakerModel( TakerAsSellerModel model = new TakerAsSellerModel(
trade, trade,
peer, peer,
messageService, messageService,
@ -468,17 +468,17 @@ public class TradeManager {
user, user,
persistence); persistence);
SellerAsTakerProtocol sellerTakesOfferProtocol = new SellerAsTakerProtocol(model); TakerAsSellerProtocol protocol = new TakerAsSellerProtocol(model);
sellerAsTakerProtocolMap.put(trade.getId(), sellerTakesOfferProtocol); takerAsSellerProtocolMap.put(trade.getId(), protocol);
if (mailboxMessages.containsKey(trade.getId())) if (mailboxMessages.containsKey(trade.getId()))
sellerTakesOfferProtocol.setMailboxMessage(mailboxMessages.get(trade.getId())); protocol.setMailboxMessage(mailboxMessages.get(trade.getId()));
return sellerTakesOfferProtocol; return protocol;
} }
private void createBuyerAcceptsOfferProtocol(Offer offer) { private void createOffererAsBuyerProtocol(Offer offer) {
Trade trade; Trade trade;
if (pendingTrades.containsKey(offer.getId())) { if (pendingTrades.containsKey(offer.getId())) {
trade = pendingTrades.get(offer.getId()); trade = pendingTrades.get(offer.getId());
@ -489,7 +489,7 @@ public class TradeManager {
// don't save it in pendingTrades. It is only a potential trade // don't save it in pendingTrades. It is only a potential trade
} }
BuyerAsOffererModel model = new BuyerAsOffererModel( OffererAsBuyerModel model = new OffererAsBuyerModel(
trade, trade,
messageService, messageService,
mailboxService, mailboxService,
@ -531,7 +531,7 @@ public class TradeManager {
case MESSAGE_SENDING_FAILED: case MESSAGE_SENDING_FAILED:
case FAULT: case FAULT:
closeTrade(trade); closeTrade(trade);
buyerAcceptsOfferProtocolMap.get(trade.getId()).cleanup(); offererAsBuyerProtocolMap.get(trade.getId()).cleanup();
break; break;
default: default:
log.warn("Unhandled trade state: " + newValue); log.warn("Unhandled trade state: " + newValue);
@ -539,8 +539,11 @@ public class TradeManager {
} }
}); });
BuyerAsOffererProtocol buyerAcceptsOfferProtocol = new BuyerAsOffererProtocol(model); OffererAsBuyerProtocol protocol = new OffererAsBuyerProtocol(model);
buyerAcceptsOfferProtocolMap.put(offer.getId(), buyerAcceptsOfferProtocol); offererAsBuyerProtocolMap.put(offer.getId(), protocol);
if (mailboxMessages.containsKey(trade.getId()))
protocol.setMailboxMessage(mailboxMessages.get(trade.getId()));
} }
private void closeTrade(Trade trade) { private void closeTrade(Trade trade) {
@ -549,13 +552,13 @@ public class TradeManager {
persistPendingTrades(); persistPendingTrades();
} }
if (sellerAsTakerProtocolMap.containsKey(trade.getId())) { if (takerAsSellerProtocolMap.containsKey(trade.getId())) {
sellerAsTakerProtocolMap.get(trade.getId()).cleanup(); takerAsSellerProtocolMap.get(trade.getId()).cleanup();
sellerAsTakerProtocolMap.remove(trade.getId()); takerAsSellerProtocolMap.remove(trade.getId());
} }
else if (buyerAcceptsOfferProtocolMap.containsKey(trade.getId())) { else if (offererAsBuyerProtocolMap.containsKey(trade.getId())) {
buyerAcceptsOfferProtocolMap.get(trade.getId()).cleanup(); offererAsBuyerProtocolMap.get(trade.getId()).cleanup();
buyerAcceptsOfferProtocolMap.remove(trade.getId()); offererAsBuyerProtocolMap.remove(trade.getId());
} }
if (!closedTrades.containsKey(trade.getId())) { if (!closedTrades.containsKey(trade.getId())) {
@ -572,21 +575,25 @@ public class TradeManager {
private void decryptMailboxMessages(List<EncryptedMailboxMessage> encryptedMailboxMessages) { private void decryptMailboxMessages(List<EncryptedMailboxMessage> encryptedMailboxMessages) {
log.trace("applyMailboxMessage encryptedMailboxMessage.size=" + encryptedMailboxMessages.size()); log.trace("applyMailboxMessage encryptedMailboxMessage.size=" + encryptedMailboxMessages.size());
for (EncryptedMailboxMessage encrypted : encryptedMailboxMessages) { for (EncryptedMailboxMessage encrypted : encryptedMailboxMessages) {
MailboxMessage mailboxMessage = null;
try { try {
mailboxMessage = encryptionService.decryptToObject(user.getP2pEncryptPrivateKey(), encrypted.getEncryptionPackage()); MailboxMessage mailboxMessage = encryptionService.decryptToObject(user.getP2pEncryptPrivateKey(), encrypted.getEncryptionPackage());
} catch (Throwable e) {
e.printStackTrace();
log.error(e.getMessage());
}
if (mailboxMessage instanceof TradeMessage) { if (mailboxMessage instanceof TradeMessage) {
String tradeId = ((TradeMessage) mailboxMessage).tradeId; String tradeId = ((TradeMessage) mailboxMessage).tradeId;
mailboxMessages.put(tradeId, mailboxMessage); mailboxMessages.put(tradeId, mailboxMessage);
log.trace("mailboxMessage with tradeID " + tradeId); log.trace("mailboxMessage with tradeID " + tradeId);
if (sellerAsTakerProtocolMap.containsKey(tradeId)) { if (takerAsSellerProtocolMap.containsKey(tradeId)) {
sellerAsTakerProtocolMap.get(tradeId).setMailboxMessage(encrypted); takerAsSellerProtocolMap.get(tradeId).setMailboxMessage(encrypted);
log.trace("sellerAsTakerProtocolMap exist with tradeID " + tradeId); log.trace("sellerAsTakerProtocolMap exist with tradeID " + tradeId);
} }
if (offererAsBuyerProtocolMap.containsKey(tradeId)) {
offererAsBuyerProtocolMap.get(tradeId).setMailboxMessage(encrypted);
log.trace("buyerAcceptsOfferProtocolMap exist with tradeID " + tradeId);
}
}
} catch (Throwable e) {
e.printStackTrace();
log.error(e.getMessage());
} }
} }
} }

View file

@ -17,11 +17,13 @@
package io.bitsquare.trade.protocol.trade.messages; package io.bitsquare.trade.protocol.trade.messages;
import io.bitsquare.p2p.MailboxMessage;
import org.bitcoinj.core.Transaction; import org.bitcoinj.core.Transaction;
import java.io.Serializable; import java.io.Serializable;
public class DepositTxPublishedMessage extends TradeMessage implements Serializable { public class DepositTxPublishedMessage extends TradeMessage implements MailboxMessage, Serializable {
private static final long serialVersionUID = -1532231540167406581L; private static final long serialVersionUID = -1532231540167406581L;
public final Transaction depositTx; public final Transaction depositTx;

View file

@ -21,7 +21,7 @@ import io.bitsquare.p2p.Message;
import java.io.Serializable; import java.io.Serializable;
public class OfferMessage implements Message, Serializable { public abstract class OfferMessage implements Message, Serializable {
private static final long serialVersionUID = -89035992124170905L; private static final long serialVersionUID = -89035992124170905L;
public String offerId; public String offerId;

View file

@ -17,11 +17,13 @@
package io.bitsquare.trade.protocol.trade.messages; package io.bitsquare.trade.protocol.trade.messages;
import io.bitsquare.p2p.MailboxMessage;
import org.bitcoinj.core.Transaction; import org.bitcoinj.core.Transaction;
import java.io.Serializable; import java.io.Serializable;
public class PayoutTxPublishedMessage extends TradeMessage implements Serializable { public class PayoutTxPublishedMessage extends TradeMessage implements MailboxMessage, Serializable {
private static final long serialVersionUID = 1288653559218403873L; private static final long serialVersionUID = 1288653559218403873L;
public final Transaction payoutTx; public final Transaction payoutTx;

View file

@ -25,7 +25,7 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
public class RequestDepositPaymentMessage extends TradeMessage implements Serializable { public class RequestTakerDepositPaymentMessage extends TradeMessage implements Serializable {
private static final long serialVersionUID = -3988720410493712913L; private static final long serialVersionUID = -3988720410493712913L;
public final List<TransactionOutput> offererConnectedOutputsForAllInputs; public final List<TransactionOutput> offererConnectedOutputsForAllInputs;
@ -34,7 +34,7 @@ public class RequestDepositPaymentMessage extends TradeMessage implements Serial
public final FiatAccount offererFiatAccount; public final FiatAccount offererFiatAccount;
public final String offererAccountId; public final String offererAccountId;
public RequestDepositPaymentMessage(String tradeId, public RequestTakerDepositPaymentMessage(String tradeId,
List<TransactionOutput> offererConnectedOutputsForAllInputs, List<TransactionOutput> offererConnectedOutputsForAllInputs,
List<TransactionOutput> offererOutputs, List<TransactionOutput> offererOutputs,
byte[] offererPubKey, byte[] offererPubKey,

View file

@ -21,7 +21,7 @@ import io.bitsquare.p2p.Message;
import java.io.Serializable; import java.io.Serializable;
public class TradeMessage implements Message, Serializable { public abstract class TradeMessage implements Message, Serializable {
private static final long serialVersionUID = 7572470983485004081L; private static final long serialVersionUID = 7572470983485004081L;
public String tradeId; public String tradeId;

View file

@ -18,6 +18,7 @@
package io.bitsquare.trade.protocol.trade.offerer; package io.bitsquare.trade.protocol.trade.offerer;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.MailboxMessage;
import io.bitsquare.p2p.Message; import io.bitsquare.p2p.Message;
import io.bitsquare.p2p.MessageHandler; import io.bitsquare.p2p.MessageHandler;
import io.bitsquare.p2p.Peer; import io.bitsquare.p2p.Peer;
@ -26,15 +27,15 @@ import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage; import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateAndSignPayoutTx; import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateAndSignPayoutTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateOffererDepositTxInputs; import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateOffererDepositTxInputs;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestDepositPayment; import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestTakerDepositPayment;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxIdToTaker; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxToTaker;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation; import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SignAndPublishDepositTx; import io.bitsquare.trade.protocol.trade.offerer.tasks.SignAndPublishDepositTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract;
@ -50,10 +51,10 @@ import org.slf4j.LoggerFactory;
import static io.bitsquare.util.Validator.*; import static io.bitsquare.util.Validator.*;
public class BuyerAsOffererProtocol { public class OffererAsBuyerProtocol {
private static final Logger log = LoggerFactory.getLogger(BuyerAsOffererProtocol.class); private static final Logger log = LoggerFactory.getLogger(OffererAsBuyerProtocol.class);
private final BuyerAsOffererModel model; private final OffererAsBuyerModel model;
private final MessageHandler messageHandler; private final MessageHandler messageHandler;
private TransactionConfidence.Listener transactionConfidenceListener; private TransactionConfidence.Listener transactionConfidenceListener;
@ -63,7 +64,7 @@ public class BuyerAsOffererProtocol {
// Constructor // Constructor
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
public BuyerAsOffererProtocol(BuyerAsOffererModel model) { public OffererAsBuyerProtocol(OffererAsBuyerModel model) {
log.debug("New BuyerAsOffererProtocol " + this); log.debug("New BuyerAsOffererProtocol " + this);
this.model = model; this.model = model;
messageHandler = this::handleMessage; messageHandler = this::handleMessage;
@ -76,6 +77,17 @@ public class BuyerAsOffererProtocol {
// Public methods // Public methods
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
public void setMailboxMessage(MailboxMessage mailboxMessage) {
log.debug("setMailboxMessage " + mailboxMessage);
// Might be called twice, so check that its only processed once
if (model.mailboxMessage == null) {
model.mailboxMessage = mailboxMessage;
if (mailboxMessage instanceof PayoutTxPublishedMessage) {
handlePayoutTxPublishedMessage((PayoutTxPublishedMessage) mailboxMessage);
}
}
}
public void cleanup() { public void cleanup() {
log.debug("cleanup " + this); log.debug("cleanup " + this);
@ -99,7 +111,7 @@ public class BuyerAsOffererProtocol {
model.setTradeMessage(tradeMessage); model.setTradeMessage(tradeMessage);
model.taker.peer = taker; model.taker.peer = taker;
TaskRunner<BuyerAsOffererModel> taskRunner = new TaskRunner<>(model, TaskRunner<OffererAsBuyerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("sequence at handleTakeOfferFeePayedMessage completed"); log.debug("sequence at handleTakeOfferFeePayedMessage completed");
}, },
@ -110,7 +122,7 @@ public class BuyerAsOffererProtocol {
taskRunner.addTasks( taskRunner.addTasks(
ProcessRequestDepositTxInputsMessage.class, ProcessRequestDepositTxInputsMessage.class,
CreateOffererDepositTxInputs.class, CreateOffererDepositTxInputs.class,
RequestDepositPayment.class RequestTakerDepositPayment.class
); );
taskRunner.run(); taskRunner.run();
} }
@ -118,7 +130,7 @@ public class BuyerAsOffererProtocol {
private void handleRequestOffererPublishDepositTxMessage(RequestOffererPublishDepositTxMessage tradeMessage) { private void handleRequestOffererPublishDepositTxMessage(RequestOffererPublishDepositTxMessage tradeMessage) {
model.setTradeMessage(tradeMessage); model.setTradeMessage(tradeMessage);
TaskRunner<BuyerAsOffererModel> taskRunner = new TaskRunner<>(model, TaskRunner<OffererAsBuyerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("taskRunner at handleRequestOffererPublishDepositTxMessage completed"); log.debug("taskRunner at handleRequestOffererPublishDepositTxMessage completed");
transactionConfidenceListener = (tx, reason) -> { transactionConfidenceListener = (tx, reason) -> {
@ -142,7 +154,7 @@ public class BuyerAsOffererProtocol {
VerifyAndSignContract.class, VerifyAndSignContract.class,
SignAndPublishDepositTx.class, SignAndPublishDepositTx.class,
SetupListenerForBlockChainConfirmation.class, SetupListenerForBlockChainConfirmation.class,
SendDepositTxIdToTaker.class SendDepositTxToTaker.class
); );
taskRunner.run(); taskRunner.run();
} }
@ -154,7 +166,7 @@ public class BuyerAsOffererProtocol {
// User clicked the "bank transfer started" button // User clicked the "bank transfer started" button
public void onFiatPaymentStarted() { public void onFiatPaymentStarted() {
TaskRunner<BuyerAsOffererModel> taskRunner = new TaskRunner<>(model, TaskRunner<OffererAsBuyerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("sequence at handleBankTransferStartedUIEvent completed"); log.debug("sequence at handleBankTransferStartedUIEvent completed");
}, },
@ -178,7 +190,7 @@ public class BuyerAsOffererProtocol {
private void handlePayoutTxPublishedMessage(PayoutTxPublishedMessage tradeMessage) { private void handlePayoutTxPublishedMessage(PayoutTxPublishedMessage tradeMessage) {
model.setTradeMessage(tradeMessage); model.setTradeMessage(tradeMessage);
TaskRunner<BuyerAsOffererModel> taskRunner = new TaskRunner<>(model, TaskRunner<OffererAsBuyerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("sequence at handlePayoutTxPublishedMessage completed"); log.debug("sequence at handlePayoutTxPublishedMessage completed");

View file

@ -30,7 +30,7 @@ import java.security.PublicKey;
import java.util.List; import java.util.List;
public class OffererModel implements Serializable { public class Offerer implements Serializable {
private static final long serialVersionUID = -1845177552607819927L; private static final long serialVersionUID = -1845177552607819927L;
// Those fields are set at constructor but not declared as final because constructor is not called in case model gets created from a persisted model // Those fields are set at constructor but not declared as final because constructor is not called in case model gets created from a persisted model

View file

@ -32,18 +32,18 @@ import java.io.Serializable;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class BuyerAsOffererModel extends SharedTradeModel implements Serializable { public class OffererAsBuyerModel extends SharedTradeModel implements Serializable {
private static final long serialVersionUID = 5000457153390911569L; private static final long serialVersionUID = 5000457153390911569L;
private static final Logger log = LoggerFactory.getLogger(BuyerAsOffererModel.class); private static final Logger log = LoggerFactory.getLogger(OffererAsBuyerModel.class);
transient public final Trade trade; transient public final Trade trade;
public final TakerModel taker; public final Taker taker;
public final OffererModel offerer; public final Offerer offerer;
// written by tasks // written by tasks
private String takeOfferFeeTxId; private String takeOfferFeeTxId;
public BuyerAsOffererModel(Trade trade, public OffererAsBuyerModel(Trade trade,
MessageService messageService, MessageService messageService,
MailboxService mailboxService, MailboxService mailboxService,
WalletService walletService, WalletService walletService,
@ -62,8 +62,8 @@ public class BuyerAsOffererModel extends SharedTradeModel implements Serializabl
this.trade = trade; this.trade = trade;
Serializable serializable = persistence.read(this, "BuyerAsOffererModel_" + id); Serializable serializable = persistence.read(this, "BuyerAsOffererModel_" + id);
if (serializable instanceof BuyerAsOffererModel) { if (serializable instanceof OffererAsBuyerModel) {
BuyerAsOffererModel persistedModel = (BuyerAsOffererModel) serializable; OffererAsBuyerModel persistedModel = (OffererAsBuyerModel) serializable;
log.debug("Model reconstructed form persisted model."); log.debug("Model reconstructed form persisted model.");
setTakeOfferFeeTxId(persistedModel.takeOfferFeeTxId); setTakeOfferFeeTxId(persistedModel.takeOfferFeeTxId);
@ -72,8 +72,8 @@ public class BuyerAsOffererModel extends SharedTradeModel implements Serializabl
offerer = persistedModel.offerer; offerer = persistedModel.offerer;
} }
else { else {
taker = new TakerModel(); taker = new Taker();
offerer = new OffererModel(); offerer = new Offerer();
} }
offerer.registrationPubKey = walletService.getRegistrationAddressEntry().getPubKey(); offerer.registrationPubKey = walletService.getRegistrationAddressEntry().getPubKey();

View file

@ -30,7 +30,7 @@ import java.security.PublicKey;
import java.util.List; import java.util.List;
public class TakerModel implements Serializable { public class Taker implements Serializable {
private static final long serialVersionUID = 2660909397210346486L; private static final long serialVersionUID = 2660909397210346486L;
// written by tasks // written by tasks

View file

@ -20,17 +20,17 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class CreateAndSignPayoutTx extends Task<BuyerAsOffererModel> { public class CreateAndSignPayoutTx extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(CreateAndSignPayoutTx.class); private static final Logger log = LoggerFactory.getLogger(CreateAndSignPayoutTx.class);
public CreateAndSignPayoutTx(TaskRunner taskHandler, BuyerAsOffererModel model) { public CreateAndSignPayoutTx(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,17 +21,17 @@ import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.TradeWalletService; import io.bitsquare.btc.TradeWalletService;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class CreateOffererDepositTxInputs extends Task<BuyerAsOffererModel> { public class CreateOffererDepositTxInputs extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(CreateOffererDepositTxInputs.class); private static final Logger log = LoggerFactory.getLogger(CreateOffererDepositTxInputs.class);
public CreateOffererDepositTxInputs(TaskRunner taskHandler, BuyerAsOffererModel model) { public CreateOffererDepositTxInputs(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,7 +21,7 @@ import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage; import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -29,10 +29,10 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import static io.bitsquare.util.Validator.checkTradeId; import static io.bitsquare.util.Validator.checkTradeId;
public class ProcessPayoutTxPublishedMessage extends Task<BuyerAsOffererModel> { public class ProcessPayoutTxPublishedMessage extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(ProcessPayoutTxPublishedMessage.class); private static final Logger log = LoggerFactory.getLogger(ProcessPayoutTxPublishedMessage.class);
public ProcessPayoutTxPublishedMessage(TaskRunner taskHandler, BuyerAsOffererModel model) { public ProcessPayoutTxPublishedMessage(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,7 +21,7 @@ import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -29,10 +29,10 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import static io.bitsquare.util.Validator.*; import static io.bitsquare.util.Validator.*;
public class ProcessRequestDepositTxInputsMessage extends Task<BuyerAsOffererModel> { public class ProcessRequestDepositTxInputsMessage extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(ProcessRequestDepositTxInputsMessage.class); private static final Logger log = LoggerFactory.getLogger(ProcessRequestDepositTxInputsMessage.class);
public ProcessRequestDepositTxInputsMessage(TaskRunner taskHandler, BuyerAsOffererModel model) { public ProcessRequestDepositTxInputsMessage(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -20,7 +20,7 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -28,10 +28,10 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.*; import static com.google.common.base.Preconditions.*;
import static io.bitsquare.util.Validator.*; import static io.bitsquare.util.Validator.*;
public class ProcessRequestOffererPublishDepositTxMessage extends Task<BuyerAsOffererModel> { public class ProcessRequestOffererPublishDepositTxMessage extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(ProcessRequestOffererPublishDepositTxMessage.class); private static final Logger log = LoggerFactory.getLogger(ProcessRequestOffererPublishDepositTxMessage.class);
public ProcessRequestOffererPublishDepositTxMessage(TaskRunner taskHandler, BuyerAsOffererModel model) { public ProcessRequestOffererPublishDepositTxMessage(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -20,22 +20,22 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener; import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositPaymentMessage; import io.bitsquare.trade.protocol.trade.messages.RequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class RequestDepositPayment extends Task<BuyerAsOffererModel> { public class RequestTakerDepositPayment extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(RequestDepositPayment.class); private static final Logger log = LoggerFactory.getLogger(RequestTakerDepositPayment.class);
public RequestDepositPayment(TaskRunner taskHandler, BuyerAsOffererModel model) { public RequestTakerDepositPayment(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }
@Override @Override
protected void doRun() { protected void doRun() {
RequestDepositPaymentMessage tradeMessage = new RequestDepositPaymentMessage( RequestTakerDepositPaymentMessage tradeMessage = new RequestTakerDepositPaymentMessage(
model.id, model.id,
model.offerer.connectedOutputsForAllInputs, model.offerer.connectedOutputsForAllInputs,
model.offerer.outputs, model.offerer.outputs,

View file

@ -22,15 +22,15 @@ import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener; import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage; import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SendBankTransferStartedMessage extends Task<BuyerAsOffererModel> { public class SendBankTransferStartedMessage extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(SendBankTransferStartedMessage.class); private static final Logger log = LoggerFactory.getLogger(SendBankTransferStartedMessage.class);
public SendBankTransferStartedMessage(TaskRunner taskHandler, BuyerAsOffererModel model) { public SendBankTransferStartedMessage(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,15 +21,15 @@ import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener; import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage; import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SendDepositTxIdToTaker extends Task<BuyerAsOffererModel> { public class SendDepositTxToTaker extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(SendDepositTxIdToTaker.class); private static final Logger log = LoggerFactory.getLogger(SendDepositTxToTaker.class);
public SendDepositTxIdToTaker(TaskRunner taskHandler, BuyerAsOffererModel model) { public SendDepositTxToTaker(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -20,7 +20,7 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.bitcoinj.core.Transaction; import org.bitcoinj.core.Transaction;
import org.bitcoinj.core.TransactionConfidence; import org.bitcoinj.core.TransactionConfidence;
@ -30,13 +30,13 @@ import javafx.application.Platform;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SetupListenerForBlockChainConfirmation extends Task<BuyerAsOffererModel> { public class SetupListenerForBlockChainConfirmation extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(SetupListenerForBlockChainConfirmation.class); private static final Logger log = LoggerFactory.getLogger(SetupListenerForBlockChainConfirmation.class);
private TransactionConfidence.Listener transactionConfidenceListener; private TransactionConfidence.Listener transactionConfidenceListener;
private TransactionConfidence transactionConfidence; private TransactionConfidence transactionConfidence;
public SetupListenerForBlockChainConfirmation(TaskRunner taskHandler, BuyerAsOffererModel model) { public SetupListenerForBlockChainConfirmation(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,7 +21,7 @@ import io.bitsquare.btc.FeePolicy;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.core.Transaction; import org.bitcoinj.core.Transaction;
@ -33,10 +33,10 @@ import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SignAndPublishDepositTx extends Task<BuyerAsOffererModel> { public class SignAndPublishDepositTx extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(SignAndPublishDepositTx.class); private static final Logger log = LoggerFactory.getLogger(SignAndPublishDepositTx.class);
public SignAndPublishDepositTx(TaskRunner taskHandler, BuyerAsOffererModel model) { public SignAndPublishDepositTx(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,16 +21,16 @@ import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Contract; import io.bitsquare.trade.Contract;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import io.bitsquare.util.Utilities; import io.bitsquare.util.Utilities;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class VerifyAndSignContract extends Task<BuyerAsOffererModel> { public class VerifyAndSignContract extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(VerifyAndSignContract.class); private static final Logger log = LoggerFactory.getLogger(VerifyAndSignContract.class);
public VerifyAndSignContract(TaskRunner taskHandler, BuyerAsOffererModel model) { public VerifyAndSignContract(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -19,15 +19,15 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class VerifyTakeOfferFeePayment extends Task<BuyerAsOffererModel> { public class VerifyTakeOfferFeePayment extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(VerifyTakeOfferFeePayment.class); private static final Logger log = LoggerFactory.getLogger(VerifyTakeOfferFeePayment.class);
public VerifyTakeOfferFeePayment(TaskRunner taskHandler, BuyerAsOffererModel model) { public VerifyTakeOfferFeePayment(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -19,15 +19,15 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.OffererAsBuyerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class VerifyTakerAccount extends Task<BuyerAsOffererModel> { public class VerifyTakerAccount extends Task<OffererAsBuyerModel> {
private static final Logger log = LoggerFactory.getLogger(VerifyTakerAccount.class); private static final Logger log = LoggerFactory.getLogger(VerifyTakerAccount.class);
public VerifyTakerAccount(TaskRunner taskHandler, BuyerAsOffererModel model) { public VerifyTakerAccount(TaskRunner taskHandler, OffererAsBuyerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -22,18 +22,17 @@ import io.bitsquare.p2p.MailboxMessage;
import io.bitsquare.p2p.Message; import io.bitsquare.p2p.Message;
import io.bitsquare.p2p.MessageHandler; import io.bitsquare.p2p.MessageHandler;
import io.bitsquare.p2p.Peer; import io.bitsquare.p2p.Peer;
import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage; import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage; import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositPaymentMessage; import io.bitsquare.trade.protocol.trade.messages.RequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage; import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import io.bitsquare.trade.protocol.trade.taker.tasks.BroadcastTakeOfferFeeTx; import io.bitsquare.trade.protocol.trade.taker.tasks.BroadcastTakeOfferFeeTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.CreateAndSignContract; import io.bitsquare.trade.protocol.trade.taker.tasks.CreateAndSignContract;
import io.bitsquare.trade.protocol.trade.taker.tasks.CreateTakeOfferFeeTx; import io.bitsquare.trade.protocol.trade.taker.tasks.CreateTakeOfferFeeTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessDepositTxPublishedMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessDepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestDepositPaymentMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendPayoutTxToOfferer; import io.bitsquare.trade.protocol.trade.taker.tasks.SendPayoutTxToOfferer;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendRequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.SendRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendSignedTakerDepositTx; import io.bitsquare.trade.protocol.trade.taker.tasks.SendSignedTakerDepositTx;
@ -53,11 +52,11 @@ import org.slf4j.LoggerFactory;
import static io.bitsquare.util.Validator.nonEmptyStringOf; import static io.bitsquare.util.Validator.nonEmptyStringOf;
public class SellerAsTakerProtocol { public class TakerAsSellerProtocol {
private static final Logger log = LoggerFactory.getLogger(SellerAsTakerProtocol.class); private static final Logger log = LoggerFactory.getLogger(TakerAsSellerProtocol.class);
private static final int TIMEOUT_DELAY = 10000; private static final int TIMEOUT_DELAY = 10000;
private final SellerAsTakerModel model; private final TakerAsSellerModel model;
private final MessageHandler messageHandler; private final MessageHandler messageHandler;
private AnimationTimer timeoutTimer; private AnimationTimer timeoutTimer;
@ -66,7 +65,7 @@ public class SellerAsTakerProtocol {
// Constructor // Constructor
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
public SellerAsTakerProtocol(SellerAsTakerModel model) { public TakerAsSellerProtocol(TakerAsSellerModel model) {
log.debug("New SellerAsTakerProtocol " + this); log.debug("New SellerAsTakerProtocol " + this);
this.model = model; this.model = model;
messageHandler = this::handleMessage; messageHandler = this::handleMessage;
@ -93,11 +92,14 @@ public class SellerAsTakerProtocol {
if (mailboxMessage instanceof FiatTransferStartedMessage) { if (mailboxMessage instanceof FiatTransferStartedMessage) {
handleFiatTransferStartedMessage((FiatTransferStartedMessage) mailboxMessage); handleFiatTransferStartedMessage((FiatTransferStartedMessage) mailboxMessage);
} }
else if (mailboxMessage instanceof DepositTxPublishedMessage) {
handleDepositTxPublishedMessage((DepositTxPublishedMessage) mailboxMessage);
}
} }
} }
public void takeAvailableOffer() { public void takeAvailableOffer() {
TaskRunner<SellerAsTakerModel> taskRunner = new TaskRunner<>(model, TaskRunner<TakerAsSellerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("taskRunner at takeAvailableOffer completed"); log.debug("taskRunner at takeAvailableOffer completed");
}, },
@ -118,10 +120,10 @@ public class SellerAsTakerProtocol {
// Incoming message handling // Incoming message handling
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
private void handleRequestDepositPaymentMessage(RequestDepositPaymentMessage tradeMessage) { private void handleRequestTakerDepositPaymentMessage(RequestTakerDepositPaymentMessage tradeMessage) {
model.setTradeMessage(tradeMessage); model.setTradeMessage(tradeMessage);
TaskRunner<SellerAsTakerModel> taskRunner = new TaskRunner<>(model, TaskRunner<TakerAsSellerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("taskRunner at handleTakerDepositPaymentRequestMessage completed"); log.debug("taskRunner at handleTakerDepositPaymentRequestMessage completed");
}, },
@ -130,7 +132,7 @@ public class SellerAsTakerProtocol {
} }
); );
taskRunner.addTasks( taskRunner.addTasks(
ProcessRequestDepositPaymentMessage.class, ProcessRequestTakerDepositPaymentMessage.class,
VerifyOffererAccount.class, VerifyOffererAccount.class,
CreateAndSignContract.class, CreateAndSignContract.class,
TakerCreatesAndSignsDepositTx.class, TakerCreatesAndSignsDepositTx.class,
@ -142,7 +144,7 @@ public class SellerAsTakerProtocol {
private void handleDepositTxPublishedMessage(DepositTxPublishedMessage tradeMessage) { private void handleDepositTxPublishedMessage(DepositTxPublishedMessage tradeMessage) {
model.setTradeMessage(tradeMessage); model.setTradeMessage(tradeMessage);
TaskRunner<SellerAsTakerModel> taskRunner = new TaskRunner<>(model, TaskRunner<TakerAsSellerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("taskRunner at handleDepositTxPublishedMessage completed"); log.debug("taskRunner at handleDepositTxPublishedMessage completed");
}, },
@ -160,10 +162,9 @@ public class SellerAsTakerProtocol {
private void handleFiatTransferStartedMessage(FiatTransferStartedMessage tradeMessage) { private void handleFiatTransferStartedMessage(FiatTransferStartedMessage tradeMessage) {
model.setTradeMessage(tradeMessage); model.setTradeMessage(tradeMessage);
TaskRunner<SellerAsTakerModel> taskRunner = new TaskRunner<>(model, TaskRunner<TakerAsSellerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("taskRunner at handleFiatTransferStartedMessage completed"); log.debug("taskRunner at handleFiatTransferStartedMessage completed");
model.trade.setState(Trade.State.FIAT_PAYMENT_STARTED);
}, },
(errorMessage) -> { (errorMessage) -> {
log.error(errorMessage); log.error(errorMessage);
@ -173,13 +174,14 @@ public class SellerAsTakerProtocol {
taskRunner.run(); taskRunner.run();
} }
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// Called from UI // Called from UI
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// User clicked the "bank transfer received" button, so we release the funds for pay out // User clicked the "bank transfer received" button, so we release the funds for pay out
public void onFiatPaymentReceived() { public void onFiatPaymentReceived() {
TaskRunner<SellerAsTakerModel> taskRunner = new TaskRunner<>(model, TaskRunner<TakerAsSellerModel> taskRunner = new TaskRunner<>(model,
() -> { () -> {
log.debug("taskRunner at handleFiatReceivedUIEvent completed"); log.debug("taskRunner at handleFiatReceivedUIEvent completed");
@ -209,8 +211,8 @@ public class SellerAsTakerProtocol {
nonEmptyStringOf(tradeMessage.tradeId); nonEmptyStringOf(tradeMessage.tradeId);
if (tradeMessage.tradeId.equals(model.id)) { if (tradeMessage.tradeId.equals(model.id)) {
if (tradeMessage instanceof RequestDepositPaymentMessage) { if (tradeMessage instanceof RequestTakerDepositPaymentMessage) {
handleRequestDepositPaymentMessage((RequestDepositPaymentMessage) tradeMessage); handleRequestTakerDepositPaymentMessage((RequestTakerDepositPaymentMessage) tradeMessage);
} }
else if (tradeMessage instanceof DepositTxPublishedMessage) { else if (tradeMessage instanceof DepositTxPublishedMessage) {
handleDepositTxPublishedMessage((DepositTxPublishedMessage) tradeMessage); handleDepositTxPublishedMessage((DepositTxPublishedMessage) tradeMessage);

View file

@ -27,7 +27,7 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
public class OffererModel implements Serializable { public class Offerer implements Serializable {
private static final long serialVersionUID = 1582902150121576205L; private static final long serialVersionUID = 1582902150121576205L;
// Those fields are set at constructor but not declared as final because constructor is not called in case model gets created from a persisted model // Those fields are set at constructor but not declared as final because constructor is not called in case model gets created from a persisted model

View file

@ -31,7 +31,7 @@ import java.security.PublicKey;
import java.util.List; import java.util.List;
public class TakerModel implements Serializable { public class Taker implements Serializable {
private static long serialVersionUID = -4041809885931756860L; private static long serialVersionUID = -4041809885931756860L;
// Those fields are set at constructor but not declared as final because constructor is not called in case model gets created from a persisted model // Those fields are set at constructor but not declared as final because constructor is not called in case model gets created from a persisted model

View file

@ -35,19 +35,19 @@ import java.io.Serializable;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SellerAsTakerModel extends SharedTradeModel implements Serializable { public class TakerAsSellerModel extends SharedTradeModel implements Serializable {
private static final long serialVersionUID = -963501132927618376L; private static final long serialVersionUID = -963501132927618376L;
private static final Logger log = LoggerFactory.getLogger(SellerAsTakerModel.class); private static final Logger log = LoggerFactory.getLogger(TakerAsSellerModel.class);
public final Trade trade; public final Trade trade;
public final TakerModel taker; public final Taker taker;
public final OffererModel offerer; public final Offerer offerer;
// written by tasks // written by tasks
private Transaction takeOfferFeeTx; private Transaction takeOfferFeeTx;
private Transaction payoutTx; private Transaction payoutTx;
public SellerAsTakerModel(Trade trade, public TakerAsSellerModel(Trade trade,
Peer offererPeer, Peer offererPeer,
MessageService messageService, MessageService messageService,
MailboxService mailboxService, MailboxService mailboxService,
@ -67,8 +67,8 @@ public class SellerAsTakerModel extends SharedTradeModel implements Serializable
this.trade = trade; this.trade = trade;
Serializable serializable = persistence.read(this, "SellerAsTakerModel_" + id); Serializable serializable = persistence.read(this, "SellerAsTakerModel_" + id);
if (serializable instanceof SellerAsTakerModel) { if (serializable instanceof TakerAsSellerModel) {
SellerAsTakerModel persistedModel = (SellerAsTakerModel) serializable; TakerAsSellerModel persistedModel = (TakerAsSellerModel) serializable;
log.debug("Model reconstructed form persisted model."); log.debug("Model reconstructed form persisted model.");
setTakeOfferFeeTx(persistedModel.getTakeOfferFeeTx()); setTakeOfferFeeTx(persistedModel.getTakeOfferFeeTx());
@ -78,8 +78,8 @@ public class SellerAsTakerModel extends SharedTradeModel implements Serializable
offerer = persistedModel.offerer; offerer = persistedModel.offerer;
} }
else { else {
taker = new TakerModel(); taker = new Taker();
offerer = new OffererModel(); offerer = new Offerer();
} }
offerer.peer = offererPeer; offerer.peer = offererPeer;

View file

@ -20,7 +20,7 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.bitcoinj.core.Transaction; import org.bitcoinj.core.Transaction;
@ -31,10 +31,10 @@ import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class BroadcastTakeOfferFeeTx extends Task<SellerAsTakerModel> { public class BroadcastTakeOfferFeeTx extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(BroadcastTakeOfferFeeTx.class); private static final Logger log = LoggerFactory.getLogger(BroadcastTakeOfferFeeTx.class);
public BroadcastTakeOfferFeeTx(TaskRunner taskHandler, SellerAsTakerModel model) { public BroadcastTakeOfferFeeTx(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,16 +21,16 @@ import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Contract; import io.bitsquare.trade.Contract;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import io.bitsquare.util.Utilities; import io.bitsquare.util.Utilities;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class CreateAndSignContract extends Task<SellerAsTakerModel> { public class CreateAndSignContract extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(CreateAndSignContract.class); private static final Logger log = LoggerFactory.getLogger(CreateAndSignContract.class);
public CreateAndSignContract(TaskRunner taskHandler, SellerAsTakerModel model) { public CreateAndSignContract(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -20,17 +20,17 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.bitcoinj.core.Transaction; import org.bitcoinj.core.Transaction;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class CreateTakeOfferFeeTx extends Task<SellerAsTakerModel> { public class CreateTakeOfferFeeTx extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(CreateTakeOfferFeeTx.class); private static final Logger log = LoggerFactory.getLogger(CreateTakeOfferFeeTx.class);
public CreateTakeOfferFeeTx(TaskRunner taskHandler, SellerAsTakerModel model) { public CreateTakeOfferFeeTx(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,7 +21,7 @@ import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage; import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -29,10 +29,10 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import static io.bitsquare.util.Validator.checkTradeId; import static io.bitsquare.util.Validator.checkTradeId;
public class ProcessDepositTxPublishedMessage extends Task<SellerAsTakerModel> { public class ProcessDepositTxPublishedMessage extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(ProcessDepositTxPublishedMessage.class); private static final Logger log = LoggerFactory.getLogger(ProcessDepositTxPublishedMessage.class);
public ProcessDepositTxPublishedMessage(TaskRunner taskHandler, SellerAsTakerModel model) { public ProcessDepositTxPublishedMessage(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -19,8 +19,9 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage; import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -28,10 +29,10 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import static io.bitsquare.util.Validator.*; import static io.bitsquare.util.Validator.*;
public class ProcessFiatTransferStartedMessage extends Task<SellerAsTakerModel> { public class ProcessFiatTransferStartedMessage extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(ProcessFiatTransferStartedMessage.class); private static final Logger log = LoggerFactory.getLogger(ProcessFiatTransferStartedMessage.class);
public ProcessFiatTransferStartedMessage(TaskRunner taskHandler, SellerAsTakerModel model) { public ProcessFiatTransferStartedMessage(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }
@ -45,9 +46,11 @@ public class ProcessFiatTransferStartedMessage extends Task<SellerAsTakerModel>
model.offerer.payoutAmount = positiveCoinOf(nonZeroCoinOf(message.offererPayoutAmount)); model.offerer.payoutAmount = positiveCoinOf(nonZeroCoinOf(message.offererPayoutAmount));
model.taker.payoutAmount = positiveCoinOf(nonZeroCoinOf(message.takerPayoutAmount)); model.taker.payoutAmount = positiveCoinOf(nonZeroCoinOf(message.takerPayoutAmount));
model.offerer.payoutAddressString = nonEmptyStringOf(message.offererPayoutAddress); model.offerer.payoutAddressString = nonEmptyStringOf(message.offererPayoutAddress);
model.trade.setState(Trade.State.FIAT_PAYMENT_STARTED);
complete(); complete();
} catch (Throwable t) { } catch (Throwable t) {
model.trade.setState(Trade.State.FAULT);
failed(t); failed(t);
} }
} }

View file

@ -19,8 +19,8 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositPaymentMessage; import io.bitsquare.trade.protocol.trade.messages.RequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -28,10 +28,10 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.*; import static com.google.common.base.Preconditions.*;
import static io.bitsquare.util.Validator.*; import static io.bitsquare.util.Validator.*;
public class ProcessRequestDepositPaymentMessage extends Task<SellerAsTakerModel> { public class ProcessRequestTakerDepositPaymentMessage extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(ProcessRequestDepositPaymentMessage.class); private static final Logger log = LoggerFactory.getLogger(ProcessRequestTakerDepositPaymentMessage.class);
public ProcessRequestDepositPaymentMessage(TaskRunner taskHandler, SellerAsTakerModel model) { public ProcessRequestTakerDepositPaymentMessage(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }
@ -39,7 +39,7 @@ public class ProcessRequestDepositPaymentMessage extends Task<SellerAsTakerModel
protected void doRun() { protected void doRun() {
try { try {
checkTradeId(model.id, model.getTradeMessage()); checkTradeId(model.id, model.getTradeMessage());
RequestDepositPaymentMessage message = (RequestDepositPaymentMessage) model.getTradeMessage(); RequestTakerDepositPaymentMessage message = (RequestTakerDepositPaymentMessage) model.getTradeMessage();
model.offerer.connectedOutputsForAllInputs = checkNotNull(message.offererConnectedOutputsForAllInputs); model.offerer.connectedOutputsForAllInputs = checkNotNull(message.offererConnectedOutputsForAllInputs);
checkArgument(message.offererConnectedOutputsForAllInputs.size() > 0); checkArgument(message.offererConnectedOutputsForAllInputs.size() > 0);

View file

@ -21,15 +21,15 @@ import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener; import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage; import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SendPayoutTxToOfferer extends Task<SellerAsTakerModel> { public class SendPayoutTxToOfferer extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(SendPayoutTxToOfferer.class); private static final Logger log = LoggerFactory.getLogger(SendPayoutTxToOfferer.class);
public SendPayoutTxToOfferer(TaskRunner taskHandler, SellerAsTakerModel model) { public SendPayoutTxToOfferer(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -22,17 +22,17 @@ import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener; import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import javafx.application.Platform; import javafx.application.Platform;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SendRequestDepositTxInputsMessage extends Task<SellerAsTakerModel> { public class SendRequestDepositTxInputsMessage extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(SendRequestDepositTxInputsMessage.class); private static final Logger log = LoggerFactory.getLogger(SendRequestDepositTxInputsMessage.class);
public SendRequestDepositTxInputsMessage(TaskRunner taskHandler, SellerAsTakerModel model) { public SendRequestDepositTxInputsMessage(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -21,15 +21,15 @@ import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener; import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SendSignedTakerDepositTx extends Task<SellerAsTakerModel> { public class SendSignedTakerDepositTx extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(SendSignedTakerDepositTx.class); private static final Logger log = LoggerFactory.getLogger(SendSignedTakerDepositTx.class);
public SendSignedTakerDepositTx(TaskRunner taskHandler, SellerAsTakerModel model) { public SendSignedTakerDepositTx(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -20,7 +20,7 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.bitcoinj.core.Transaction; import org.bitcoinj.core.Transaction;
@ -31,10 +31,10 @@ import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SignAndPublishPayoutTx extends Task<SellerAsTakerModel> { public class SignAndPublishPayoutTx extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(SignAndPublishPayoutTx.class); private static final Logger log = LoggerFactory.getLogger(SignAndPublishPayoutTx.class);
public SignAndPublishPayoutTx(TaskRunner taskHandler, SellerAsTakerModel model) { public SignAndPublishPayoutTx(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -19,15 +19,15 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class TakerCommitDepositTx extends Task<SellerAsTakerModel> { public class TakerCommitDepositTx extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(TakerCommitDepositTx.class); private static final Logger log = LoggerFactory.getLogger(TakerCommitDepositTx.class);
public TakerCommitDepositTx(TaskRunner taskHandler, SellerAsTakerModel model) { public TakerCommitDepositTx(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -22,17 +22,17 @@ import io.bitsquare.btc.TradeWalletService;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class TakerCreatesAndSignsDepositTx extends Task<SellerAsTakerModel> { public class TakerCreatesAndSignsDepositTx extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(TakerCreatesAndSignsDepositTx.class); private static final Logger log = LoggerFactory.getLogger(TakerCreatesAndSignsDepositTx.class);
public TakerCreatesAndSignsDepositTx(TaskRunner taskHandler, SellerAsTakerModel model) { public TakerCreatesAndSignsDepositTx(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -19,15 +19,15 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class VerifyOfferFeePayment extends Task<SellerAsTakerModel> { public class VerifyOfferFeePayment extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(VerifyOfferFeePayment.class); private static final Logger log = LoggerFactory.getLogger(VerifyOfferFeePayment.class);
public VerifyOfferFeePayment(TaskRunner taskHandler, SellerAsTakerModel model) { public VerifyOfferFeePayment(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }

View file

@ -19,15 +19,15 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.TakerAsSellerModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class VerifyOffererAccount extends Task<SellerAsTakerModel> { public class VerifyOffererAccount extends Task<TakerAsSellerModel> {
private static final Logger log = LoggerFactory.getLogger(VerifyOffererAccount.class); private static final Logger log = LoggerFactory.getLogger(VerifyOffererAccount.class);
public VerifyOffererAccount(TaskRunner taskHandler, SellerAsTakerModel model) { public VerifyOffererAccount(TaskRunner taskHandler, TakerAsSellerModel model) {
super(taskHandler, model); super(taskHandler, model);
} }