mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-07-29 17:58:56 -04:00
Unified Seller tasks
This commit is contained in:
parent
06c06b1244
commit
a71853140a
42 changed files with 178 additions and 551 deletions
|
@ -28,27 +28,25 @@ 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.buyer.offerer.BuyerAsOffererProtocol;
|
import io.bitsquare.trade.protocol.trade.buyer.BuyerAsOffererProtocol;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.offerer.tasks.OffererProcessRequestDepositTxInputsMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.offerer.tasks.OffererProcessRequestPublishDepositTxMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.taker.tasks.TakerSendsRequestDepositTxInputsMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.taker.tasks.TakerSendsRequestPublishDepositTxMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessRequestPublishDepositTxMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSignsAndPublishDepositTx;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSignsAndPublishDepositTx;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.SellerAsTakerProtocol;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.ProcessRequestDepositTxInputsMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerCommitDepositTx;
|
import io.bitsquare.trade.protocol.trade.seller.SellerAsTakerProtocol;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerCreatesAndSignContract;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCommitDepositTx;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerCreatesAndSignsDepositTx;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsDepositTx;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerProcessDepositTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessDepositTxPublishedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerProcessFiatTransferStartedMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessFiatTransferStartedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerProcessRequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessRequestPayDepositMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerSendsPayoutTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsPayoutTxPublishedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerSignsAndPublishPayoutTx;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSignsAndPublishPayoutTx;
|
||||||
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SendRequestDepositTxInputsMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakeOfferFeePayment;
|
import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakeOfferFeePayment;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakerAccount;
|
import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakerAccount;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.taker.tasks.CreateTakeOfferFeeTx;
|
import io.bitsquare.trade.protocol.trade.shared.taker.tasks.CreateTakeOfferFeeTx;
|
||||||
|
@ -100,11 +98,11 @@ public class DebugView extends InitializableView {
|
||||||
|
|
||||||
/*---- Protocol ----*/
|
/*---- Protocol ----*/
|
||||||
BuyerAsOffererProtocol.class,
|
BuyerAsOffererProtocol.class,
|
||||||
OffererProcessRequestDepositTxInputsMessage.class,
|
ProcessRequestDepositTxInputsMessage.class,
|
||||||
BuyerCreatesDepositTxInputs.class,
|
BuyerCreatesDepositTxInputs.class,
|
||||||
BuyerSendsRequestPayDepositMessage.class,
|
BuyerSendsRequestPayDepositMessage.class,
|
||||||
|
|
||||||
OffererProcessRequestPublishDepositTxMessage.class,
|
BuyerProcessRequestPublishDepositTxMessage.class,
|
||||||
VerifyTakerAccount.class,
|
VerifyTakerAccount.class,
|
||||||
BuyerSignsAndPublishDepositTx.class,
|
BuyerSignsAndPublishDepositTx.class,
|
||||||
BuyerSendsDepositTxPublishedMessage.class,
|
BuyerSendsDepositTxPublishedMessage.class,
|
||||||
|
@ -120,22 +118,20 @@ public class DebugView extends InitializableView {
|
||||||
/*---- Protocol ----*/
|
/*---- Protocol ----*/
|
||||||
SellerAsTakerProtocol.class,
|
SellerAsTakerProtocol.class,
|
||||||
CreateTakeOfferFeeTx.class,
|
CreateTakeOfferFeeTx.class,
|
||||||
TakerSendsRequestDepositTxInputsMessage.class,
|
SendRequestDepositTxInputsMessage.class,
|
||||||
|
|
||||||
TakerProcessRequestPayDepositMessage.class,
|
SellerProcessRequestPayDepositMessage.class,
|
||||||
VerifyOffererAccount.class,
|
VerifyOffererAccount.class,
|
||||||
TakerCreatesAndSignContract.class,
|
SellerCreatesAndSignsDepositTx.class,
|
||||||
TakerCreatesAndSignsDepositTx.class,
|
|
||||||
TakerSendsRequestPublishDepositTxMessage.class,
|
|
||||||
|
|
||||||
TakerProcessDepositTxPublishedMessage.class,
|
SellerProcessDepositTxPublishedMessage.class,
|
||||||
TakerCommitDepositTx.class,
|
SellerCommitDepositTx.class,
|
||||||
|
|
||||||
TakerProcessFiatTransferStartedMessage.class,
|
SellerProcessFiatTransferStartedMessage.class,
|
||||||
|
|
||||||
TakerSignsAndPublishPayoutTx.class,
|
SellerSignsAndPublishPayoutTx.class,
|
||||||
VerifyOfferFeePayment.class,
|
VerifyOfferFeePayment.class,
|
||||||
TakerSendsPayoutTxPublishedMessage.class
|
SellerSendsPayoutTxPublishedMessage.class
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ class ClosedTradesDataModel implements Activatable, DataModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Offer.Direction getDirection(Offer offer) {
|
public Offer.Direction getDirection(Offer offer) {
|
||||||
return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ?
|
return offer.getP2pSigPubKey().equals(user.getP2pSigPubKey()) ?
|
||||||
offer.getDirection() : offer.getMirroredDirection();
|
offer.getDirection() : offer.getMirroredDirection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ class OffersDataModel implements Activatable, DataModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Offer.Direction getDirection(Offer offer) {
|
public Offer.Direction getDirection(Offer offer) {
|
||||||
return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ?
|
return offer.getP2pSigPubKey().equals(user.getP2pSigPubKey()) ?
|
||||||
offer.getDirection() : offer.getMirroredDirection();
|
offer.getDirection() : offer.getMirroredDirection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,7 @@ class PendingTradesDataModel implements Activatable, DataModel {
|
||||||
currentTrade.set(item.getTrade());
|
currentTrade.set(item.getTrade());
|
||||||
|
|
||||||
Trade trade = item.getTrade();
|
Trade trade = item.getTrade();
|
||||||
isOfferer = trade.getOffer().getP2PSigPubKey().equals(user.getP2PSigPubKey());
|
isOfferer = trade.getOffer().getP2pSigPubKey().equals(user.getP2pSigPubKey());
|
||||||
if (trade instanceof SellerAsTakerTrade)
|
if (trade instanceof SellerAsTakerTrade)
|
||||||
takerAsSellerProcessState.bind(trade.processStateProperty());
|
takerAsSellerProcessState.bind(trade.processStateProperty());
|
||||||
else if (trade instanceof BuyerAsOffererTrade)
|
else if (trade instanceof BuyerAsOffererTrade)
|
||||||
|
@ -248,7 +248,7 @@ class PendingTradesDataModel implements Activatable, DataModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Offer.Direction getDirection(Offer offer) {
|
public Offer.Direction getDirection(Offer offer) {
|
||||||
return offer.getP2PSigPubKey().equals(user.getP2PSigPubKey()) ?
|
return offer.getP2pSigPubKey().equals(user.getP2pSigPubKey()) ?
|
||||||
offer.getDirection() : offer.getMirroredDirection();
|
offer.getDirection() : offer.getMirroredDirection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -211,7 +211,7 @@ class OfferBookDataModel implements Activatable, DataModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isMyOffer(Offer offer) {
|
boolean isMyOffer(Offer offer) {
|
||||||
return offer.getP2PSigPubKey() != null && offer.getP2PSigPubKey().equals(user.getP2PSigPubKey());
|
return offer.getP2pSigPubKey() != null && offer.getP2pSigPubKey().equals(user.getP2pSigPubKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
Coin getAmountAsCoin() {
|
Coin getAmountAsCoin() {
|
||||||
|
|
|
@ -144,7 +144,7 @@ public class Offer implements Serializable {
|
||||||
checkNotNull(getCurrencyCode(), "Currency is null");
|
checkNotNull(getCurrencyCode(), "Currency is null");
|
||||||
checkNotNull(getDirection(), "Direction is null");
|
checkNotNull(getDirection(), "Direction is null");
|
||||||
checkNotNull(getId(), "Id is null");
|
checkNotNull(getId(), "Id is null");
|
||||||
checkNotNull(getP2PSigPubKey(), "p2pSigPubKey is null");
|
checkNotNull(getP2pSigPubKey(), "p2pSigPubKey is null");
|
||||||
checkNotNull(getMinAmount(), "MinAmount is null");
|
checkNotNull(getMinAmount(), "MinAmount is null");
|
||||||
checkNotNull(getPrice(), "Price is null");
|
checkNotNull(getPrice(), "Price is null");
|
||||||
|
|
||||||
|
@ -255,7 +255,7 @@ public class Offer implements Serializable {
|
||||||
return bankAccountUID;
|
return bankAccountUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicKey getP2PSigPubKey() {
|
public PublicKey getP2pSigPubKey() {
|
||||||
return p2pSigPubKey;
|
return p2pSigPubKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ package io.bitsquare.trade;
|
||||||
|
|
||||||
import io.bitsquare.offer.Offer;
|
import io.bitsquare.offer.Offer;
|
||||||
import io.bitsquare.storage.Storage;
|
import io.bitsquare.storage.Storage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.offerer.BuyerAsOffererProtocol;
|
import io.bitsquare.trade.protocol.trade.buyer.BuyerAsOffererProtocol;
|
||||||
import io.bitsquare.trade.states.OffererState;
|
import io.bitsquare.trade.states.OffererState;
|
||||||
import io.bitsquare.trade.states.TradeState;
|
import io.bitsquare.trade.states.TradeState;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ package io.bitsquare.trade;
|
||||||
import io.bitsquare.offer.Offer;
|
import io.bitsquare.offer.Offer;
|
||||||
import io.bitsquare.p2p.Peer;
|
import io.bitsquare.p2p.Peer;
|
||||||
import io.bitsquare.storage.Storage;
|
import io.bitsquare.storage.Storage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.taker.BuyerAsTakerProtocol;
|
import io.bitsquare.trade.protocol.trade.buyer.BuyerAsTakerProtocol;
|
||||||
import io.bitsquare.trade.states.TakerState;
|
import io.bitsquare.trade.states.TakerState;
|
||||||
import io.bitsquare.trade.states.TradeState;
|
import io.bitsquare.trade.states.TradeState;
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,8 @@ public class Contract implements Serializable {
|
||||||
public final String sellerAccountID;
|
public final String sellerAccountID;
|
||||||
public final FiatAccount buyerFiatAccount;
|
public final FiatAccount buyerFiatAccount;
|
||||||
public final FiatAccount sellerFiatAccount;
|
public final FiatAccount sellerFiatAccount;
|
||||||
public final String buyerP2PSigPubKeyAsString;
|
public final String buyerP2pSigPubKeyAsString;
|
||||||
public final String sellerP2PSigPubKeyAsString;
|
public final String sellerP2pSigPubKeyAsString;
|
||||||
|
|
||||||
public Contract(Offer offer,
|
public Contract(Offer offer,
|
||||||
Coin tradeAmount,
|
Coin tradeAmount,
|
||||||
|
@ -52,8 +52,8 @@ public class Contract implements Serializable {
|
||||||
String sellerAccountID,
|
String sellerAccountID,
|
||||||
FiatAccount buyerFiatAccount,
|
FiatAccount buyerFiatAccount,
|
||||||
FiatAccount sellerFiatAccount,
|
FiatAccount sellerFiatAccount,
|
||||||
PublicKey buyerP2PSigPubKey,
|
PublicKey buyerP2pSigPubKey,
|
||||||
PublicKey sellerP2PSigPubKey) {
|
PublicKey sellerP2pSigPubKey) {
|
||||||
this.offer = offer;
|
this.offer = offer;
|
||||||
this.tradeAmount = tradeAmount;
|
this.tradeAmount = tradeAmount;
|
||||||
this.takeOfferFeeTxID = takeOfferFeeTxID;
|
this.takeOfferFeeTxID = takeOfferFeeTxID;
|
||||||
|
@ -61,8 +61,8 @@ public class Contract implements Serializable {
|
||||||
this.sellerAccountID = sellerAccountID;
|
this.sellerAccountID = sellerAccountID;
|
||||||
this.buyerFiatAccount = buyerFiatAccount;
|
this.buyerFiatAccount = buyerFiatAccount;
|
||||||
this.sellerFiatAccount = sellerFiatAccount;
|
this.sellerFiatAccount = sellerFiatAccount;
|
||||||
this.buyerP2PSigPubKeyAsString = Utilities.getHexFromPubKey(buyerP2PSigPubKey);
|
this.buyerP2pSigPubKeyAsString = Utilities.getHexFromPubKey(buyerP2pSigPubKey);
|
||||||
this.sellerP2PSigPubKeyAsString = Utilities.getHexFromPubKey(sellerP2PSigPubKey);
|
this.sellerP2pSigPubKeyAsString = Utilities.getHexFromPubKey(sellerP2pSigPubKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -75,8 +75,8 @@ public class Contract implements Serializable {
|
||||||
", sellerAccountID='" + sellerAccountID + '\'' +
|
", sellerAccountID='" + sellerAccountID + '\'' +
|
||||||
", buyerFiatAccount=" + buyerFiatAccount +
|
", buyerFiatAccount=" + buyerFiatAccount +
|
||||||
", sellerFiatAccount=" + sellerFiatAccount +
|
", sellerFiatAccount=" + sellerFiatAccount +
|
||||||
", buyerP2PSigPubKeyAsString='" + buyerP2PSigPubKeyAsString + '\'' +
|
", buyerP2pSigPubKeyAsString='" + buyerP2pSigPubKeyAsString + '\'' +
|
||||||
", sellerP2PSigPubKeyAsString='" + sellerP2PSigPubKeyAsString + '\'' +
|
", sellerP2pSigPubKeyAsString='" + sellerP2pSigPubKeyAsString + '\'' +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ package io.bitsquare.trade;
|
||||||
|
|
||||||
import io.bitsquare.offer.Offer;
|
import io.bitsquare.offer.Offer;
|
||||||
import io.bitsquare.storage.Storage;
|
import io.bitsquare.storage.Storage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.offerer.SellerAsOffererProtocol;
|
import io.bitsquare.trade.protocol.trade.seller.SellerAsOffererProtocol;
|
||||||
import io.bitsquare.trade.states.OffererState;
|
import io.bitsquare.trade.states.OffererState;
|
||||||
import io.bitsquare.trade.states.TradeState;
|
import io.bitsquare.trade.states.TradeState;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ package io.bitsquare.trade;
|
||||||
import io.bitsquare.offer.Offer;
|
import io.bitsquare.offer.Offer;
|
||||||
import io.bitsquare.p2p.Peer;
|
import io.bitsquare.p2p.Peer;
|
||||||
import io.bitsquare.storage.Storage;
|
import io.bitsquare.storage.Storage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.SellerAsTakerProtocol;
|
import io.bitsquare.trade.protocol.trade.seller.SellerAsTakerProtocol;
|
||||||
import io.bitsquare.trade.states.TakerState;
|
import io.bitsquare.trade.states.TakerState;
|
||||||
import io.bitsquare.trade.states.TradeState;
|
import io.bitsquare.trade.states.TradeState;
|
||||||
|
|
||||||
|
|
|
@ -190,7 +190,7 @@ public class TradeManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
// if there are messages in our mailbox we apply it and remove them from the DHT
|
// if there are messages in our mailbox we apply it and remove them from the DHT
|
||||||
mailboxService.getAllMessages(user.getP2PSigPubKey(),
|
mailboxService.getAllMessages(user.getP2pSigPubKey(),
|
||||||
(encryptedMailboxMessages) -> {
|
(encryptedMailboxMessages) -> {
|
||||||
setMailboxMessagesToTrades(encryptedMailboxMessages);
|
setMailboxMessagesToTrades(encryptedMailboxMessages);
|
||||||
emptyMailbox();
|
emptyMailbox();
|
||||||
|
@ -217,7 +217,7 @@ public class TradeManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void emptyMailbox() {
|
private void emptyMailbox() {
|
||||||
mailboxService.removeAllMessages(user.getP2PSigPubKey(),
|
mailboxService.removeAllMessages(user.getP2pSigPubKey(),
|
||||||
() -> log.debug("All mailbox entries removed"),
|
() -> log.debug("All mailbox entries removed"),
|
||||||
(errorMessage, fault) -> {
|
(errorMessage, fault) -> {
|
||||||
log.error(errorMessage);
|
log.error(errorMessage);
|
||||||
|
@ -252,7 +252,7 @@ public class TradeManager {
|
||||||
|
|
||||||
FiatAccount fiatAccount = user.currentFiatAccountProperty().get();
|
FiatAccount fiatAccount = user.currentFiatAccountProperty().get();
|
||||||
Offer offer = new Offer(id,
|
Offer offer = new Offer(id,
|
||||||
user.getP2PSigPubKey(),
|
user.getP2pSigPubKey(),
|
||||||
direction,
|
direction,
|
||||||
price.getValue(),
|
price.getValue(),
|
||||||
amount,
|
amount,
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class GetPeerAddress extends Task<CheckOfferAvailabilityModel> {
|
||||||
@Override
|
@Override
|
||||||
protected void doRun() {
|
protected void doRun() {
|
||||||
try {
|
try {
|
||||||
model.addressService.findPeerAddress(model.offer.getP2PSigPubKey(), new GetPeerAddressListener() {
|
model.addressService.findPeerAddress(model.offer.getP2pSigPubKey(), new GetPeerAddressListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onResult(Peer peer) {
|
public void onResult(Peer peer) {
|
||||||
model.setPeer(peer);
|
model.setPeer(peer);
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.buyer.tasks;
|
package io.bitsquare.trade.protocol.trade;
|
||||||
|
|
||||||
import io.bitsquare.trade.BuyerAsOffererTrade;
|
import io.bitsquare.trade.BuyerAsOffererTrade;
|
||||||
import io.bitsquare.trade.BuyerAsTakerTrade;
|
import io.bitsquare.trade.BuyerAsTakerTrade;
|
|
@ -15,7 +15,7 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.buyer.offerer;
|
package io.bitsquare.trade.protocol.trade.buyer;
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
import io.bitsquare.common.taskrunner.TaskRunner;
|
||||||
import io.bitsquare.p2p.MailboxMessage;
|
import io.bitsquare.p2p.MailboxMessage;
|
||||||
|
@ -27,17 +27,17 @@ import io.bitsquare.trade.BuyerAsOffererTrade;
|
||||||
import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage;
|
import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage;
|
||||||
import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailableMessage;
|
import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailableMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeProtocol;
|
import io.bitsquare.trade.protocol.trade.TradeProtocol;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.offerer.tasks.OffererProcessRequestDepositTxInputsMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.offerer.tasks.OffererProcessRequestPublishDepositTxMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCommitsPayoutTx;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCommitsPayoutTx;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessRequestPublishDepositTxMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSignsAndPublishDepositTx;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSignsAndPublishDepositTx;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerVerifiesAndSignsContract;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerVerifiesAndSignsContract;
|
||||||
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.ProcessRequestDepositTxInputsMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
|
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.RequestPublishDepositTxMessage;
|
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
|
||||||
|
@ -143,7 +143,7 @@ public class BuyerAsOffererProtocol implements TradeProtocol {
|
||||||
() -> log.debug("taskRunner at handleRequestDepositTxInputsMessage completed"),
|
() -> log.debug("taskRunner at handleRequestDepositTxInputsMessage completed"),
|
||||||
this::handleTaskRunnerFault);
|
this::handleTaskRunnerFault);
|
||||||
taskRunner.addTasks(
|
taskRunner.addTasks(
|
||||||
OffererProcessRequestDepositTxInputsMessage.class,
|
ProcessRequestDepositTxInputsMessage.class,
|
||||||
BuyerCreatesDepositTxInputs.class,
|
BuyerCreatesDepositTxInputs.class,
|
||||||
BuyerSendsRequestPayDepositMessage.class
|
BuyerSendsRequestPayDepositMessage.class
|
||||||
);
|
);
|
||||||
|
@ -157,7 +157,7 @@ public class BuyerAsOffererProtocol implements TradeProtocol {
|
||||||
() -> log.debug("taskRunner at handleRequestPublishDepositTxMessage completed"),
|
() -> log.debug("taskRunner at handleRequestPublishDepositTxMessage completed"),
|
||||||
this::handleTaskRunnerFault);
|
this::handleTaskRunnerFault);
|
||||||
taskRunner.addTasks(
|
taskRunner.addTasks(
|
||||||
OffererProcessRequestPublishDepositTxMessage.class,
|
BuyerProcessRequestPublishDepositTxMessage.class,
|
||||||
VerifyTakerAccount.class,
|
VerifyTakerAccount.class,
|
||||||
BuyerVerifiesAndSignsContract.class,
|
BuyerVerifiesAndSignsContract.class,
|
||||||
BuyerSignsAndPublishDepositTx.class,
|
BuyerSignsAndPublishDepositTx.class,
|
|
@ -15,7 +15,7 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.buyer.taker;
|
package io.bitsquare.trade.protocol.trade.buyer;
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
import io.bitsquare.common.taskrunner.TaskRunner;
|
||||||
import io.bitsquare.p2p.MailboxMessage;
|
import io.bitsquare.p2p.MailboxMessage;
|
||||||
|
@ -24,11 +24,11 @@ import io.bitsquare.p2p.MessageHandler;
|
||||||
import io.bitsquare.p2p.Peer;
|
import io.bitsquare.p2p.Peer;
|
||||||
import io.bitsquare.trade.BuyerAsTakerTrade;
|
import io.bitsquare.trade.BuyerAsTakerTrade;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeProtocol;
|
import io.bitsquare.trade.protocol.trade.TradeProtocol;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.taker.tasks.TakerProcessRequestPublishDepositTxFromSellerMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCommitsPayoutTx;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCommitsPayoutTx;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesAndSignPayoutTx;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerCreatesDepositTxInputs;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessPayoutTxPublishedMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerProcessRequestPublishDepositTxMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsDepositTxPublishedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsFiatTransferStartedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.buyer.tasks.BuyerSendsRequestPayDepositMessage;
|
||||||
|
@ -119,7 +119,7 @@ public class BuyerAsTakerProtocol implements TradeProtocol {
|
||||||
() -> log.debug("taskRunner at handleRequestPublishDepositTxMessage completed"),
|
() -> log.debug("taskRunner at handleRequestPublishDepositTxMessage completed"),
|
||||||
this::handleTaskRunnerFault);
|
this::handleTaskRunnerFault);
|
||||||
taskRunner.addTasks(
|
taskRunner.addTasks(
|
||||||
TakerProcessRequestPublishDepositTxFromSellerMessage.class,
|
BuyerProcessRequestPublishDepositTxMessage.class,
|
||||||
VerifyOffererAccount.class,
|
VerifyOffererAccount.class,
|
||||||
BuyerVerifiesAndSignsContract.class,
|
BuyerVerifiesAndSignsContract.class,
|
||||||
BuyerSignsAndPublishDepositTx.class,
|
BuyerSignsAndPublishDepositTx.class,
|
|
@ -1,66 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of Bitsquare.
|
|
||||||
*
|
|
||||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Affero General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or (at
|
|
||||||
* your option) any later version.
|
|
||||||
*
|
|
||||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
|
||||||
* License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.buyer.taker.tasks;
|
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
|
||||||
import io.bitsquare.trade.Trade;
|
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
|
||||||
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxFromSellerMessage;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.*;
|
|
||||||
import static io.bitsquare.util.Validator.*;
|
|
||||||
|
|
||||||
public class TakerProcessRequestPublishDepositTxFromSellerMessage extends TradeTask {
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(TakerProcessRequestPublishDepositTxFromSellerMessage.class);
|
|
||||||
|
|
||||||
public TakerProcessRequestPublishDepositTxFromSellerMessage(TaskRunner taskHandler, Trade trade) {
|
|
||||||
super(taskHandler, trade);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRun() {
|
|
||||||
try {
|
|
||||||
RequestPublishDepositTxFromSellerMessage message = (RequestPublishDepositTxFromSellerMessage) processModel.getTradeMessage();
|
|
||||||
checkTradeId(processModel.getId(), message);
|
|
||||||
checkNotNull(message);
|
|
||||||
|
|
||||||
processModel.tradingPeer.setFiatAccount(checkNotNull(message.takerFiatAccount));
|
|
||||||
processModel.tradingPeer.setAccountId(nonEmptyStringOf(message.takerAccountId));
|
|
||||||
processModel.tradingPeer.setP2pSigPubKey(checkNotNull(message.takerP2PSigPublicKey));
|
|
||||||
processModel.tradingPeer.setP2pSigPubKey(checkNotNull(message.takerP2PSigPublicKey));
|
|
||||||
processModel.tradingPeer.setTradeWalletPubKey(checkNotNull(message.sellerTradeWalletPubKey));
|
|
||||||
processModel.tradingPeer.setP2pEncryptPubKey(checkNotNull(message.takerP2PEncryptPublicKey));
|
|
||||||
processModel.tradingPeer.setContractAsJson(nonEmptyStringOf(message.takerContractAsJson));
|
|
||||||
processModel.tradingPeer.setContractSignature(nonEmptyStringOf(message.takerContractSignature));
|
|
||||||
processModel.tradingPeer.setPayoutAddressString(nonEmptyStringOf(message.takerPayoutAddressString));
|
|
||||||
processModel.tradingPeer.setPreparedDepositTx(checkNotNull(message.takersPreparedDepositTx));
|
|
||||||
processModel.tradingPeer.setConnectedOutputsForAllInputs(checkNotNull(message.takerConnectedOutputsForAllInputs));
|
|
||||||
checkArgument(message.takerConnectedOutputsForAllInputs.size() > 0);
|
|
||||||
|
|
||||||
complete();
|
|
||||||
} catch (Throwable t) {
|
|
||||||
t.printStackTrace();
|
|
||||||
trade.setThrowable(t);
|
|
||||||
|
|
||||||
failed(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -21,6 +21,7 @@ import io.bitsquare.btc.FeePolicy;
|
||||||
import io.bitsquare.btc.TradeWalletService;
|
import io.bitsquare.btc.TradeWalletService;
|
||||||
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.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
|
|
||||||
import org.bitcoinj.core.Coin;
|
import org.bitcoinj.core.Coin;
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.buyer.offerer.tasks;
|
package io.bitsquare.trade.protocol.trade.buyer.tasks;
|
||||||
|
|
||||||
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.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.StateUtil;
|
|
||||||
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
|
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -29,10 +29,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 OffererProcessRequestPublishDepositTxMessage extends TradeTask {
|
public class BuyerProcessRequestPublishDepositTxMessage extends TradeTask {
|
||||||
private static final Logger log = LoggerFactory.getLogger(OffererProcessRequestPublishDepositTxMessage.class);
|
private static final Logger log = LoggerFactory.getLogger(BuyerProcessRequestPublishDepositTxMessage.class);
|
||||||
|
|
||||||
public OffererProcessRequestPublishDepositTxMessage(TaskRunner taskHandler, Trade trade) {
|
public BuyerProcessRequestPublishDepositTxMessage(TaskRunner taskHandler, Trade trade) {
|
||||||
super(taskHandler, trade);
|
super(taskHandler, trade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,16 +43,17 @@ public class OffererProcessRequestPublishDepositTxMessage extends TradeTask {
|
||||||
checkTradeId(processModel.getId(), message);
|
checkTradeId(processModel.getId(), message);
|
||||||
checkNotNull(message);
|
checkNotNull(message);
|
||||||
|
|
||||||
processModel.tradingPeer.setFiatAccount(checkNotNull(message.takerFiatAccount));
|
processModel.tradingPeer.setFiatAccount(checkNotNull(message.sellerFiatAccount));
|
||||||
processModel.tradingPeer.setAccountId(nonEmptyStringOf(message.takerAccountId));
|
processModel.tradingPeer.setAccountId(nonEmptyStringOf(message.sellerAccountId));
|
||||||
processModel.tradingPeer.setP2pSigPubKey(checkNotNull(message.takerP2PSigPublicKey));
|
processModel.tradingPeer.setP2pSigPubKey(checkNotNull(message.sellerP2pSigPublicKey));
|
||||||
processModel.tradingPeer.setP2pEncryptPubKey(checkNotNull(message.takerP2PEncryptPublicKey));
|
processModel.tradingPeer.setTradeWalletPubKey(checkNotNull(message.sellerTradeWalletPubKey));
|
||||||
processModel.tradingPeer.setContractAsJson(nonEmptyStringOf(message.takerContractAsJson));
|
processModel.tradingPeer.setP2pEncryptPubKey(checkNotNull(message.sellerP2pEncryptPublicKey));
|
||||||
processModel.tradingPeer.setContractSignature(nonEmptyStringOf(message.takerContractSignature));
|
processModel.tradingPeer.setContractAsJson(nonEmptyStringOf(message.sellerContractAsJson));
|
||||||
processModel.tradingPeer.setPayoutAddressString(nonEmptyStringOf(message.takerPayoutAddressString));
|
processModel.tradingPeer.setContractSignature(nonEmptyStringOf(message.sellerContractSignature));
|
||||||
processModel.tradingPeer.setPreparedDepositTx(checkNotNull(message.takersPreparedDepositTx));
|
processModel.tradingPeer.setPayoutAddressString(nonEmptyStringOf(message.sellerPayoutAddressString));
|
||||||
processModel.tradingPeer.setConnectedOutputsForAllInputs(checkNotNull(message.takerConnectedOutputsForAllInputs));
|
processModel.tradingPeer.setPreparedDepositTx(checkNotNull(message.sellersPreparedDepositTx));
|
||||||
checkArgument(message.takerConnectedOutputsForAllInputs.size() > 0);
|
processModel.tradingPeer.setConnectedOutputsForAllInputs(checkNotNull(message.sellerConnectedOutputsForAllInputs));
|
||||||
|
checkArgument(message.sellerConnectedOutputsForAllInputs.size() > 0);
|
||||||
|
|
||||||
complete();
|
complete();
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
|
@ -20,6 +20,7 @@ package io.bitsquare.trade.protocol.trade.buyer.tasks;
|
||||||
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.Trade;
|
import io.bitsquare.trade.Trade;
|
||||||
|
import io.bitsquare.trade.protocol.trade.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ import io.bitsquare.trade.BuyerAsTakerTrade;
|
||||||
import io.bitsquare.trade.SellerAsOffererTrade;
|
import io.bitsquare.trade.SellerAsOffererTrade;
|
||||||
import io.bitsquare.trade.SellerAsTakerTrade;
|
import io.bitsquare.trade.SellerAsTakerTrade;
|
||||||
import io.bitsquare.trade.Trade;
|
import io.bitsquare.trade.Trade;
|
||||||
|
import io.bitsquare.trade.protocol.trade.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
|
import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
|
||||||
import io.bitsquare.trade.states.OffererState;
|
import io.bitsquare.trade.states.OffererState;
|
||||||
|
|
|
@ -20,6 +20,7 @@ package io.bitsquare.trade.protocol.trade.buyer.tasks;
|
||||||
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.Trade;
|
import io.bitsquare.trade.Trade;
|
||||||
|
import io.bitsquare.trade.protocol.trade.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.trade.protocol.trade.messages.RequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.messages.RequestPayDepositMessage;
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ package io.bitsquare.trade.protocol.trade.buyer.tasks;
|
||||||
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.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.util.Utilities;
|
import io.bitsquare.util.Utilities;
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.buyer.offerer.tasks;
|
package io.bitsquare.trade.protocol.trade.buyer.tasks;
|
||||||
|
|
||||||
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.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.StateUtil;
|
|
||||||
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
|
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -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 OffererProcessRequestDepositTxInputsMessage extends TradeTask {
|
public class ProcessRequestDepositTxInputsMessage extends TradeTask {
|
||||||
private static final Logger log = LoggerFactory.getLogger(OffererProcessRequestDepositTxInputsMessage.class);
|
private static final Logger log = LoggerFactory.getLogger(ProcessRequestDepositTxInputsMessage.class);
|
||||||
|
|
||||||
public OffererProcessRequestDepositTxInputsMessage(TaskRunner taskHandler, Trade trade) {
|
public ProcessRequestDepositTxInputsMessage(TaskRunner taskHandler, Trade trade) {
|
||||||
super(taskHandler, trade);
|
super(taskHandler, trade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@ public class OffererProcessRequestDepositTxInputsMessage extends TradeTask {
|
||||||
checkNotNull(message);
|
checkNotNull(message);
|
||||||
|
|
||||||
trade.setTradeAmount(positiveCoinOf(nonZeroCoinOf(message.tradeAmount)));
|
trade.setTradeAmount(positiveCoinOf(nonZeroCoinOf(message.tradeAmount)));
|
||||||
processModel.setTakeOfferFeeTxId(nonEmptyStringOf(message.takeOfferFeeTxId));
|
processModel.setTakeOfferFeeTxId(nonEmptyStringOf(message.sellerOfferFeeTxId));
|
||||||
processModel.tradingPeer.setTradeWalletPubKey(checkNotNull(message.takerTradeWalletPubKey));
|
processModel.tradingPeer.setTradeWalletPubKey(checkNotNull(message.sellerTradeWalletPubKey));
|
||||||
|
|
||||||
complete();
|
complete();
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
|
@ -29,13 +29,13 @@ public class RequestDepositTxInputsMessage extends TradeMessage implements Seria
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
public final Coin tradeAmount;
|
public final Coin tradeAmount;
|
||||||
public final String takeOfferFeeTxId;
|
public final String sellerOfferFeeTxId;
|
||||||
public final byte[] takerTradeWalletPubKey;
|
public final byte[] sellerTradeWalletPubKey;
|
||||||
|
|
||||||
public RequestDepositTxInputsMessage(String tradeId, String takeOfferFeeTxId, Coin tradeAmount, byte[] takerTradeWalletPubKey) {
|
public RequestDepositTxInputsMessage(String tradeId, String sellerOfferFeeTxId, Coin tradeAmount, byte[] sellerTradeWalletPubKey) {
|
||||||
super(tradeId);
|
super(tradeId);
|
||||||
this.takeOfferFeeTxId = takeOfferFeeTxId;
|
this.sellerOfferFeeTxId = sellerOfferFeeTxId;
|
||||||
this.tradeAmount = tradeAmount;
|
this.tradeAmount = tradeAmount;
|
||||||
this.takerTradeWalletPubKey = takerTradeWalletPubKey;
|
this.sellerTradeWalletPubKey = sellerTradeWalletPubKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,8 +38,8 @@ public class RequestPayDepositMessage extends TradeMessage implements Serializab
|
||||||
public final List<TransactionOutput> buyerConnectedOutputsForAllInputs;
|
public final List<TransactionOutput> buyerConnectedOutputsForAllInputs;
|
||||||
public final List<TransactionOutput> buyerOutputs;
|
public final List<TransactionOutput> buyerOutputs;
|
||||||
public final byte[] buyerTradeWalletPubKey;
|
public final byte[] buyerTradeWalletPubKey;
|
||||||
public final PublicKey buyerP2PSigPublicKey;
|
public final PublicKey buyerP2pSigPublicKey;
|
||||||
public final PublicKey buyerP2PEncryptPublicKey;
|
public final PublicKey buyerP2pEncryptPublicKey;
|
||||||
public final FiatAccount buyerFiatAccount;
|
public final FiatAccount buyerFiatAccount;
|
||||||
public final String buyerAccountId;
|
public final String buyerAccountId;
|
||||||
public final Coin tradeAmount;
|
public final Coin tradeAmount;
|
||||||
|
@ -49,14 +49,14 @@ public class RequestPayDepositMessage extends TradeMessage implements Serializab
|
||||||
List<TransactionOutput> buyerConnectedOutputsForAllInputs,
|
List<TransactionOutput> buyerConnectedOutputsForAllInputs,
|
||||||
List<TransactionOutput> buyerOutputs,
|
List<TransactionOutput> buyerOutputs,
|
||||||
byte[] buyerTradeWalletPubKey,
|
byte[] buyerTradeWalletPubKey,
|
||||||
PublicKey buyerP2PSigPublicKey,
|
PublicKey buyerP2pSigPublicKey,
|
||||||
PublicKey buyerP2PEncryptPublicKey,
|
PublicKey buyerP2pEncryptPublicKey,
|
||||||
FiatAccount buyerFiatAccount,
|
FiatAccount buyerFiatAccount,
|
||||||
String buyerAccountId) {
|
String buyerAccountId) {
|
||||||
super(tradeId);
|
super(tradeId);
|
||||||
this.tradeAmount = tradeAmount;
|
this.tradeAmount = tradeAmount;
|
||||||
this.buyerP2PSigPublicKey = buyerP2PSigPublicKey;
|
this.buyerP2pSigPublicKey = buyerP2pSigPublicKey;
|
||||||
this.buyerP2PEncryptPublicKey = buyerP2PEncryptPublicKey;
|
this.buyerP2pEncryptPublicKey = buyerP2pEncryptPublicKey;
|
||||||
this.buyerConnectedOutputsForAllInputs = buyerConnectedOutputsForAllInputs;
|
this.buyerConnectedOutputsForAllInputs = buyerConnectedOutputsForAllInputs;
|
||||||
this.buyerOutputs = buyerOutputs;
|
this.buyerOutputs = buyerOutputs;
|
||||||
this.buyerTradeWalletPubKey = buyerTradeWalletPubKey;
|
this.buyerTradeWalletPubKey = buyerTradeWalletPubKey;
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of Bitsquare.
|
|
||||||
*
|
|
||||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Affero General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or (at
|
|
||||||
* your option) any later version.
|
|
||||||
*
|
|
||||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
|
||||||
* License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.messages;
|
|
||||||
|
|
||||||
import io.bitsquare.fiat.FiatAccount;
|
|
||||||
|
|
||||||
import org.bitcoinj.core.Transaction;
|
|
||||||
import org.bitcoinj.core.TransactionOutput;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import java.security.PublicKey;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.annotation.concurrent.Immutable;
|
|
||||||
|
|
||||||
@Immutable
|
|
||||||
public class RequestPublishDepositTxFromSellerMessage extends RequestPublishDepositTxMessage implements Serializable {
|
|
||||||
// That object is sent over the wire, so we need to take care of version compatibility.
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
public byte[] sellerTradeWalletPubKey;
|
|
||||||
|
|
||||||
public RequestPublishDepositTxFromSellerMessage(String tradeId,
|
|
||||||
FiatAccount takerFiatAccount,
|
|
||||||
String takerAccountId,
|
|
||||||
byte[] sellerTradeWalletPubKey,
|
|
||||||
PublicKey takerP2PSigPublicKey,
|
|
||||||
PublicKey takerP2PEncryptPublicKey,
|
|
||||||
String takerContractAsJson,
|
|
||||||
String takerContractSignature,
|
|
||||||
String takerPayoutAddressString,
|
|
||||||
Transaction takersPreparedDepositTx,
|
|
||||||
List<TransactionOutput> takerConnectedOutputsForAllInputs) {
|
|
||||||
super(tradeId,
|
|
||||||
takerFiatAccount,
|
|
||||||
takerAccountId,
|
|
||||||
takerP2PSigPublicKey,
|
|
||||||
takerP2PEncryptPublicKey,
|
|
||||||
takerContractAsJson,
|
|
||||||
takerContractSignature,
|
|
||||||
takerPayoutAddressString,
|
|
||||||
takersPreparedDepositTx,
|
|
||||||
takerConnectedOutputsForAllInputs);
|
|
||||||
|
|
||||||
this.sellerTradeWalletPubKey = sellerTradeWalletPubKey;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -35,35 +35,38 @@ public class RequestPublishDepositTxMessage extends TradeMessage implements Seri
|
||||||
// That object is sent over the wire, so we need to take care of version compatibility.
|
// That object is sent over the wire, so we need to take care of version compatibility.
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
public final FiatAccount takerFiatAccount;
|
public final FiatAccount sellerFiatAccount;
|
||||||
public final String takerAccountId;
|
public final String sellerAccountId;
|
||||||
public final PublicKey takerP2PSigPublicKey;
|
public final PublicKey sellerP2pSigPublicKey;
|
||||||
public final PublicKey takerP2PEncryptPublicKey;
|
public final PublicKey sellerP2pEncryptPublicKey;
|
||||||
public final String takerContractAsJson;
|
public final String sellerContractAsJson;
|
||||||
public final String takerContractSignature;
|
public final String sellerContractSignature;
|
||||||
public final String takerPayoutAddressString;
|
public final String sellerPayoutAddressString;
|
||||||
public final Transaction takersPreparedDepositTx;
|
public final Transaction sellersPreparedDepositTx;
|
||||||
public final List<TransactionOutput> takerConnectedOutputsForAllInputs;
|
public final List<TransactionOutput> sellerConnectedOutputsForAllInputs;
|
||||||
|
public byte[] sellerTradeWalletPubKey;
|
||||||
|
|
||||||
public RequestPublishDepositTxMessage(String tradeId,
|
public RequestPublishDepositTxMessage(String tradeId,
|
||||||
FiatAccount takerFiatAccount,
|
FiatAccount sellerFiatAccount,
|
||||||
String takerAccountId,
|
String sellerAccountId,
|
||||||
PublicKey takerP2PSigPublicKey,
|
byte[] sellerTradeWalletPubKey,
|
||||||
PublicKey takerP2PEncryptPublicKey,
|
PublicKey sellerP2pSigPublicKey,
|
||||||
String takerContractAsJson,
|
PublicKey sellerP2pEncryptPublicKey,
|
||||||
String takerContractSignature,
|
String sellerContractAsJson,
|
||||||
String takerPayoutAddressString,
|
String sellerContractSignature,
|
||||||
Transaction takersPreparedDepositTx,
|
String sellerPayoutAddressString,
|
||||||
List<TransactionOutput> takerConnectedOutputsForAllInputs) {
|
Transaction sellersPreparedDepositTx,
|
||||||
|
List<TransactionOutput> sellerConnectedOutputsForAllInputs) {
|
||||||
super(tradeId);
|
super(tradeId);
|
||||||
this.takerFiatAccount = takerFiatAccount;
|
this.sellerFiatAccount = sellerFiatAccount;
|
||||||
this.takerAccountId = takerAccountId;
|
this.sellerAccountId = sellerAccountId;
|
||||||
this.takerP2PSigPublicKey = takerP2PSigPublicKey;
|
this.sellerTradeWalletPubKey = sellerTradeWalletPubKey;
|
||||||
this.takerP2PEncryptPublicKey = takerP2PEncryptPublicKey;
|
this.sellerP2pSigPublicKey = sellerP2pSigPublicKey;
|
||||||
this.takerContractAsJson = takerContractAsJson;
|
this.sellerP2pEncryptPublicKey = sellerP2pEncryptPublicKey;
|
||||||
this.takerContractSignature = takerContractSignature;
|
this.sellerContractAsJson = sellerContractAsJson;
|
||||||
this.takerPayoutAddressString = takerPayoutAddressString;
|
this.sellerContractSignature = sellerContractSignature;
|
||||||
this.takersPreparedDepositTx = takersPreparedDepositTx;
|
this.sellerPayoutAddressString = sellerPayoutAddressString;
|
||||||
this.takerConnectedOutputsForAllInputs = takerConnectedOutputsForAllInputs;
|
this.sellersPreparedDepositTx = sellersPreparedDepositTx;
|
||||||
|
this.sellerConnectedOutputsForAllInputs = sellerConnectedOutputsForAllInputs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.seller.offerer;
|
package io.bitsquare.trade.protocol.trade.seller;
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
import io.bitsquare.common.taskrunner.TaskRunner;
|
||||||
import io.bitsquare.p2p.MailboxMessage;
|
import io.bitsquare.p2p.MailboxMessage;
|
||||||
|
@ -31,15 +31,15 @@ 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.RequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.messages.RequestPayDepositMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
|
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.offerer.tasks.OffererSendsPayoutTxPublishedMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.seller.offerer.tasks.OffererSendsRequestPublishDepositTxFromTakerMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.seller.offerer.tasks.OffererSignsAndPublishPayoutTx;
|
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCommitDepositTx;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCommitDepositTx;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsContract;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsContract;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsDepositTx;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsDepositTx;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessDepositTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessDepositTxPublishedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessFiatTransferStartedMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessFiatTransferStartedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessRequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessRequestPayDepositMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsPayoutTxPublishedMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsRequestPublishDepositTxMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSignsAndPublishPayoutTx;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
|
import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakeOfferFeePayment;
|
import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakeOfferFeePayment;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakerAccount;
|
import io.bitsquare.trade.protocol.trade.shared.offerer.tasks.VerifyTakerAccount;
|
||||||
|
@ -149,7 +149,7 @@ public class SellerAsOffererProtocol implements TradeProtocol {
|
||||||
VerifyTakerAccount.class,
|
VerifyTakerAccount.class,
|
||||||
SellerCreatesAndSignsContract.class,
|
SellerCreatesAndSignsContract.class,
|
||||||
SellerCreatesAndSignsDepositTx.class,
|
SellerCreatesAndSignsDepositTx.class,
|
||||||
OffererSendsRequestPublishDepositTxFromTakerMessage.class
|
SellerSendsRequestPublishDepositTxMessage.class
|
||||||
);
|
);
|
||||||
taskRunner.run();
|
taskRunner.run();
|
||||||
}
|
}
|
||||||
|
@ -199,8 +199,8 @@ public class SellerAsOffererProtocol implements TradeProtocol {
|
||||||
|
|
||||||
taskRunner.addTasks(
|
taskRunner.addTasks(
|
||||||
VerifyTakeOfferFeePayment.class,
|
VerifyTakeOfferFeePayment.class,
|
||||||
OffererSignsAndPublishPayoutTx.class,
|
SellerSignsAndPublishPayoutTx.class,
|
||||||
OffererSendsPayoutTxPublishedMessage.class
|
SellerSendsPayoutTxPublishedMessage.class
|
||||||
);
|
);
|
||||||
taskRunner.run();
|
taskRunner.run();
|
||||||
}
|
}
|
|
@ -15,7 +15,7 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.seller.taker;
|
package io.bitsquare.trade.protocol.trade.seller;
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
import io.bitsquare.common.taskrunner.TaskRunner;
|
||||||
import io.bitsquare.p2p.MailboxMessage;
|
import io.bitsquare.p2p.MailboxMessage;
|
||||||
|
@ -25,20 +25,20 @@ import io.bitsquare.p2p.Peer;
|
||||||
import io.bitsquare.trade.SellerAsTakerTrade;
|
import io.bitsquare.trade.SellerAsTakerTrade;
|
||||||
import io.bitsquare.trade.Trade;
|
import io.bitsquare.trade.Trade;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeProtocol;
|
import io.bitsquare.trade.protocol.trade.TradeProtocol;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.taker.tasks.TakerSendsRequestDepositTxInputsMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.taker.tasks.TakerSendsRequestPublishDepositTxMessage;
|
|
||||||
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.RequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.messages.RequestPayDepositMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
|
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerSendsPayoutTxPublishedMessage;
|
|
||||||
import io.bitsquare.trade.protocol.trade.seller.taker.tasks.TakerSignsAndPublishPayoutTx;
|
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCommitDepositTx;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCommitDepositTx;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsContract;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsContract;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsDepositTx;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerCreatesAndSignsDepositTx;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessDepositTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessDepositTxPublishedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessFiatTransferStartedMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessFiatTransferStartedMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessRequestPayDepositMessage;
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerProcessRequestPayDepositMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsPayoutTxPublishedMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSendsRequestPublishDepositTxMessage;
|
||||||
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SellerSignsAndPublishPayoutTx;
|
||||||
|
import io.bitsquare.trade.protocol.trade.seller.tasks.SendRequestDepositTxInputsMessage;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
|
import io.bitsquare.trade.protocol.trade.shared.models.ProcessModel;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.taker.tasks.BroadcastTakeOfferFeeTx;
|
import io.bitsquare.trade.protocol.trade.shared.taker.tasks.BroadcastTakeOfferFeeTx;
|
||||||
import io.bitsquare.trade.protocol.trade.shared.taker.tasks.CreateTakeOfferFeeTx;
|
import io.bitsquare.trade.protocol.trade.shared.taker.tasks.CreateTakeOfferFeeTx;
|
||||||
|
@ -104,7 +104,7 @@ public class SellerAsTakerProtocol implements TradeProtocol {
|
||||||
taskRunner.addTasks(
|
taskRunner.addTasks(
|
||||||
CreateTakeOfferFeeTx.class,
|
CreateTakeOfferFeeTx.class,
|
||||||
BroadcastTakeOfferFeeTx.class,
|
BroadcastTakeOfferFeeTx.class,
|
||||||
TakerSendsRequestDepositTxInputsMessage.class
|
SendRequestDepositTxInputsMessage.class
|
||||||
);
|
);
|
||||||
taskRunner.run();
|
taskRunner.run();
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ public class SellerAsTakerProtocol implements TradeProtocol {
|
||||||
VerifyOffererAccount.class,
|
VerifyOffererAccount.class,
|
||||||
SellerCreatesAndSignsContract.class,
|
SellerCreatesAndSignsContract.class,
|
||||||
SellerCreatesAndSignsDepositTx.class,
|
SellerCreatesAndSignsDepositTx.class,
|
||||||
TakerSendsRequestPublishDepositTxMessage.class
|
SellerSendsRequestPublishDepositTxMessage.class
|
||||||
);
|
);
|
||||||
taskRunner.run();
|
taskRunner.run();
|
||||||
}
|
}
|
||||||
|
@ -176,8 +176,8 @@ public class SellerAsTakerProtocol implements TradeProtocol {
|
||||||
|
|
||||||
taskRunner.addTasks(
|
taskRunner.addTasks(
|
||||||
VerifyOfferFeePayment.class,
|
VerifyOfferFeePayment.class,
|
||||||
TakerSignsAndPublishPayoutTx.class,
|
SellerSignsAndPublishPayoutTx.class,
|
||||||
TakerSendsPayoutTxPublishedMessage.class
|
SellerSendsPayoutTxPublishedMessage.class
|
||||||
);
|
);
|
||||||
taskRunner.run();
|
taskRunner.run();
|
||||||
}
|
}
|
|
@ -1,73 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of Bitsquare.
|
|
||||||
*
|
|
||||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Affero General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or (at
|
|
||||||
* your option) any later version.
|
|
||||||
*
|
|
||||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
|
||||||
* License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.seller.offerer.tasks;
|
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
|
||||||
import io.bitsquare.p2p.listener.SendMessageListener;
|
|
||||||
import io.bitsquare.trade.BuyerAsOffererTrade;
|
|
||||||
import io.bitsquare.trade.SellerAsOffererTrade;
|
|
||||||
import io.bitsquare.trade.Trade;
|
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
|
||||||
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
|
|
||||||
import io.bitsquare.trade.states.OffererState;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
public class OffererSendsPayoutTxPublishedMessage extends TradeTask {
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(OffererSendsPayoutTxPublishedMessage.class);
|
|
||||||
|
|
||||||
public OffererSendsPayoutTxPublishedMessage(TaskRunner taskHandler, Trade trade) {
|
|
||||||
super(taskHandler, trade);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRun() {
|
|
||||||
try {
|
|
||||||
PayoutTxPublishedMessage tradeMessage = new PayoutTxPublishedMessage(processModel.getId(), processModel.getPayoutTx());
|
|
||||||
processModel.getMessageService().sendMessage(trade.getTradingPeer(),
|
|
||||||
tradeMessage,
|
|
||||||
processModel.getP2pSigPubKey(),
|
|
||||||
processModel.getP2pEncryptPubKey(),
|
|
||||||
new SendMessageListener() {
|
|
||||||
@Override
|
|
||||||
public void handleResult() {
|
|
||||||
log.trace("PayoutTxPublishedMessage successfully arrived at peer");
|
|
||||||
complete();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handleFault() {
|
|
||||||
appendToErrorMessage("Sending PayoutTxPublishedMessage failed");
|
|
||||||
trade.setErrorMessage(errorMessage);
|
|
||||||
|
|
||||||
if (trade instanceof BuyerAsOffererTrade)
|
|
||||||
trade.setProcessState(OffererState.ProcessState.MESSAGE_SENDING_FAILED);
|
|
||||||
else if (trade instanceof SellerAsOffererTrade)
|
|
||||||
trade.setProcessState(OffererState.ProcessState.MESSAGE_SENDING_FAILED);
|
|
||||||
|
|
||||||
failed();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (Throwable t) {
|
|
||||||
t.printStackTrace();
|
|
||||||
trade.setThrowable(t);
|
|
||||||
failed(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,81 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of Bitsquare.
|
|
||||||
*
|
|
||||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Affero General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or (at
|
|
||||||
* your option) any later version.
|
|
||||||
*
|
|
||||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
|
||||||
* License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.seller.offerer.tasks;
|
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
|
||||||
import io.bitsquare.p2p.listener.SendMessageListener;
|
|
||||||
import io.bitsquare.trade.BuyerAsOffererTrade;
|
|
||||||
import io.bitsquare.trade.SellerAsOffererTrade;
|
|
||||||
import io.bitsquare.trade.Trade;
|
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
|
||||||
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxFromSellerMessage;
|
|
||||||
import io.bitsquare.trade.states.OffererState;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
public class OffererSendsRequestPublishDepositTxFromTakerMessage extends TradeTask {
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(OffererSendsRequestPublishDepositTxFromTakerMessage.class);
|
|
||||||
|
|
||||||
public OffererSendsRequestPublishDepositTxFromTakerMessage(TaskRunner taskHandler, Trade trade) {
|
|
||||||
super(taskHandler, trade);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRun() {
|
|
||||||
try {
|
|
||||||
RequestPublishDepositTxFromSellerMessage tradeMessage = new RequestPublishDepositTxFromSellerMessage(
|
|
||||||
processModel.getId(),
|
|
||||||
processModel.getFiatAccount(),
|
|
||||||
processModel.getAccountId(),
|
|
||||||
processModel.getTradeWalletPubKey(),
|
|
||||||
processModel.getP2pSigPubKey(),
|
|
||||||
processModel.getP2pEncryptPublicKey(),
|
|
||||||
trade.getContractAsJson(),
|
|
||||||
trade.getBuyerContractSignature(),
|
|
||||||
processModel.getAddressEntry().getAddressString(),
|
|
||||||
processModel.getPreparedDepositTx(),
|
|
||||||
processModel.getConnectedOutputsForAllInputs()
|
|
||||||
);
|
|
||||||
|
|
||||||
processModel.getMessageService().sendMessage(trade.getTradingPeer(), tradeMessage, new SendMessageListener() {
|
|
||||||
@Override
|
|
||||||
public void handleResult() {
|
|
||||||
complete();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handleFault() {
|
|
||||||
appendToErrorMessage("Sending RequestOffererPublishDepositTxMessage failed");
|
|
||||||
trade.setErrorMessage(errorMessage);
|
|
||||||
|
|
||||||
if (trade instanceof BuyerAsOffererTrade)
|
|
||||||
trade.setProcessState(OffererState.ProcessState.MESSAGE_SENDING_FAILED);
|
|
||||||
else if (trade instanceof SellerAsOffererTrade)
|
|
||||||
trade.setProcessState(OffererState.ProcessState.MESSAGE_SENDING_FAILED);
|
|
||||||
|
|
||||||
failed();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (Throwable t) {
|
|
||||||
t.printStackTrace();
|
|
||||||
trade.setThrowable(t);
|
|
||||||
failed(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,82 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of Bitsquare.
|
|
||||||
*
|
|
||||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Affero General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or (at
|
|
||||||
* your option) any later version.
|
|
||||||
*
|
|
||||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
|
||||||
* License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.seller.offerer.tasks;
|
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
|
||||||
import io.bitsquare.trade.BuyerAsOffererTrade;
|
|
||||||
import io.bitsquare.trade.SellerAsOffererTrade;
|
|
||||||
import io.bitsquare.trade.Trade;
|
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
|
||||||
import io.bitsquare.trade.states.OffererState;
|
|
||||||
|
|
||||||
import org.bitcoinj.core.Transaction;
|
|
||||||
|
|
||||||
import com.google.common.util.concurrent.FutureCallback;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
public class OffererSignsAndPublishPayoutTx extends TradeTask {
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(OffererSignsAndPublishPayoutTx.class);
|
|
||||||
|
|
||||||
public OffererSignsAndPublishPayoutTx(TaskRunner taskHandler, Trade trade) {
|
|
||||||
super(taskHandler, trade);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRun() {
|
|
||||||
try {
|
|
||||||
processModel.getTradeWalletService().signAndPublishPayoutTx(
|
|
||||||
trade.getDepositTx(),
|
|
||||||
processModel.tradingPeer.getSignature(),
|
|
||||||
processModel.tradingPeer.getPayoutAmount(),
|
|
||||||
processModel.getPayoutAmount(),
|
|
||||||
processModel.tradingPeer.getPayoutAddressString(),
|
|
||||||
processModel.getAddressEntry(),
|
|
||||||
processModel.tradingPeer.getTradeWalletPubKey(),
|
|
||||||
processModel.getTradeWalletPubKey(),
|
|
||||||
processModel.getArbitratorPubKey(),
|
|
||||||
new FutureCallback<Transaction>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(Transaction transaction) {
|
|
||||||
processModel.setPayoutTx(transaction);
|
|
||||||
|
|
||||||
if (trade instanceof BuyerAsOffererTrade)
|
|
||||||
trade.setProcessState(OffererState.ProcessState.PAYOUT_PUBLISHED);
|
|
||||||
else if (trade instanceof SellerAsOffererTrade)
|
|
||||||
trade.setProcessState(OffererState.ProcessState.PAYOUT_PUBLISHED);
|
|
||||||
|
|
||||||
complete();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(@NotNull Throwable t) {
|
|
||||||
t.printStackTrace();
|
|
||||||
trade.setThrowable(t);
|
|
||||||
failed(t);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (Throwable t) {
|
|
||||||
t.printStackTrace();
|
|
||||||
trade.setThrowable(t);
|
|
||||||
failed(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -45,7 +45,7 @@ public class SellerCreatesAndSignsContract extends TradeTask {
|
||||||
processModel.getAccountId(),
|
processModel.getAccountId(),
|
||||||
processModel.tradingPeer.getFiatAccount(),
|
processModel.tradingPeer.getFiatAccount(),
|
||||||
processModel.getFiatAccount(),
|
processModel.getFiatAccount(),
|
||||||
processModel.tradingPeer.getP2PSigPubKey(),
|
processModel.tradingPeer.getP2pSigPubKey(),
|
||||||
processModel.getP2pSigPubKey());
|
processModel.getP2pSigPubKey());
|
||||||
String contractAsJson = Utilities.objectToJson(contract);
|
String contractAsJson = Utilities.objectToJson(contract);
|
||||||
String signature = processModel.getSignatureService().signMessage(processModel.getRegistrationKeyPair(), contractAsJson);
|
String signature = processModel.getSignatureService().signMessage(processModel.getRegistrationKeyPair(), contractAsJson);
|
||||||
|
|
|
@ -46,8 +46,8 @@ public class SellerProcessRequestPayDepositMessage extends TradeTask {
|
||||||
checkArgument(message.buyerConnectedOutputsForAllInputs.size() > 0);
|
checkArgument(message.buyerConnectedOutputsForAllInputs.size() > 0);
|
||||||
processModel.tradingPeer.setOutputs(checkNotNull(message.buyerOutputs));
|
processModel.tradingPeer.setOutputs(checkNotNull(message.buyerOutputs));
|
||||||
processModel.tradingPeer.setTradeWalletPubKey(checkNotNull(message.buyerTradeWalletPubKey));
|
processModel.tradingPeer.setTradeWalletPubKey(checkNotNull(message.buyerTradeWalletPubKey));
|
||||||
processModel.tradingPeer.setP2pSigPubKey(checkNotNull(message.buyerP2PSigPublicKey));
|
processModel.tradingPeer.setP2pSigPubKey(checkNotNull(message.buyerP2pSigPublicKey));
|
||||||
processModel.tradingPeer.setP2pEncryptPubKey(checkNotNull(message.buyerP2PEncryptPublicKey));
|
processModel.tradingPeer.setP2pEncryptPubKey(checkNotNull(message.buyerP2pEncryptPublicKey));
|
||||||
processModel.tradingPeer.setFiatAccount(checkNotNull(message.buyerFiatAccount));
|
processModel.tradingPeer.setFiatAccount(checkNotNull(message.buyerFiatAccount));
|
||||||
processModel.tradingPeer.setAccountId(nonEmptyStringOf(message.buyerAccountId));
|
processModel.tradingPeer.setAccountId(nonEmptyStringOf(message.buyerAccountId));
|
||||||
trade.setTradeAmount(positiveCoinOf(nonZeroCoinOf(message.tradeAmount)));
|
trade.setTradeAmount(positiveCoinOf(nonZeroCoinOf(message.tradeAmount)));
|
||||||
|
|
|
@ -15,24 +15,22 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.seller.taker.tasks;
|
package io.bitsquare.trade.protocol.trade.seller.tasks;
|
||||||
|
|
||||||
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.BuyerAsTakerTrade;
|
|
||||||
import io.bitsquare.trade.SellerAsTakerTrade;
|
|
||||||
import io.bitsquare.trade.Trade;
|
import io.bitsquare.trade.Trade;
|
||||||
|
import io.bitsquare.trade.protocol.trade.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
|
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
|
||||||
import io.bitsquare.trade.states.TakerState;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class TakerSendsPayoutTxPublishedMessage extends TradeTask {
|
public class SellerSendsPayoutTxPublishedMessage extends TradeTask {
|
||||||
private static final Logger log = LoggerFactory.getLogger(TakerSendsPayoutTxPublishedMessage.class);
|
private static final Logger log = LoggerFactory.getLogger(SellerSendsPayoutTxPublishedMessage.class);
|
||||||
|
|
||||||
public TakerSendsPayoutTxPublishedMessage(TaskRunner taskHandler, Trade trade) {
|
public SellerSendsPayoutTxPublishedMessage(TaskRunner taskHandler, Trade trade) {
|
||||||
super(taskHandler, trade);
|
super(taskHandler, trade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,12 +53,7 @@ public class TakerSendsPayoutTxPublishedMessage extends TradeTask {
|
||||||
public void handleFault() {
|
public void handleFault() {
|
||||||
appendToErrorMessage("Sending PayoutTxPublishedMessage failed");
|
appendToErrorMessage("Sending PayoutTxPublishedMessage failed");
|
||||||
trade.setErrorMessage(errorMessage);
|
trade.setErrorMessage(errorMessage);
|
||||||
|
StateUtil.setSendFailedState(trade);
|
||||||
if (trade instanceof BuyerAsTakerTrade)
|
|
||||||
trade.setProcessState(TakerState.ProcessState.MESSAGE_SENDING_FAILED);
|
|
||||||
else if (trade instanceof SellerAsTakerTrade)
|
|
||||||
trade.setProcessState(TakerState.ProcessState.MESSAGE_SENDING_FAILED);
|
|
||||||
|
|
||||||
failed();
|
failed();
|
||||||
}
|
}
|
||||||
});
|
});
|
|
@ -15,22 +15,22 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.buyer.taker.tasks;
|
package io.bitsquare.trade.protocol.trade.seller.tasks;
|
||||||
|
|
||||||
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.Trade;
|
import io.bitsquare.trade.Trade;
|
||||||
|
import io.bitsquare.trade.protocol.trade.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.StateUtil;
|
|
||||||
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
|
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class TakerSendsRequestPublishDepositTxMessage extends TradeTask {
|
public class SellerSendsRequestPublishDepositTxMessage extends TradeTask {
|
||||||
private static final Logger log = LoggerFactory.getLogger(TakerSendsRequestPublishDepositTxMessage.class);
|
private static final Logger log = LoggerFactory.getLogger(SellerSendsRequestPublishDepositTxMessage.class);
|
||||||
|
|
||||||
public TakerSendsRequestPublishDepositTxMessage(TaskRunner taskHandler, Trade trade) {
|
public SellerSendsRequestPublishDepositTxMessage(TaskRunner taskHandler, Trade trade) {
|
||||||
super(taskHandler, trade);
|
super(taskHandler, trade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,8 +41,9 @@ public class TakerSendsRequestPublishDepositTxMessage extends TradeTask {
|
||||||
processModel.getId(),
|
processModel.getId(),
|
||||||
processModel.getFiatAccount(),
|
processModel.getFiatAccount(),
|
||||||
processModel.getAccountId(),
|
processModel.getAccountId(),
|
||||||
|
processModel.getTradeWalletPubKey(),
|
||||||
processModel.getP2pSigPubKey(),
|
processModel.getP2pSigPubKey(),
|
||||||
processModel.getP2pEncryptPublicKey(),
|
processModel.getP2pEncryptPubKey(),
|
||||||
trade.getContractAsJson(),
|
trade.getContractAsJson(),
|
||||||
trade.getSellerContractSignature(),
|
trade.getSellerContractSignature(),
|
||||||
processModel.getAddressEntry().getAddressString(),
|
processModel.getAddressEntry().getAddressString(),
|
||||||
|
@ -60,7 +61,9 @@ public class TakerSendsRequestPublishDepositTxMessage extends TradeTask {
|
||||||
public void handleFault() {
|
public void handleFault() {
|
||||||
appendToErrorMessage("Sending RequestOffererPublishDepositTxMessage failed");
|
appendToErrorMessage("Sending RequestOffererPublishDepositTxMessage failed");
|
||||||
trade.setErrorMessage(errorMessage);
|
trade.setErrorMessage(errorMessage);
|
||||||
|
|
||||||
StateUtil.setSendFailedState(trade);
|
StateUtil.setSendFailedState(trade);
|
||||||
|
|
||||||
failed();
|
failed();
|
||||||
}
|
}
|
||||||
});
|
});
|
|
@ -15,13 +15,16 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.seller.taker.tasks;
|
package io.bitsquare.trade.protocol.trade.seller.tasks;
|
||||||
|
|
||||||
import io.bitsquare.common.taskrunner.TaskRunner;
|
import io.bitsquare.common.taskrunner.TaskRunner;
|
||||||
|
import io.bitsquare.trade.BuyerAsOffererTrade;
|
||||||
import io.bitsquare.trade.BuyerAsTakerTrade;
|
import io.bitsquare.trade.BuyerAsTakerTrade;
|
||||||
|
import io.bitsquare.trade.SellerAsOffererTrade;
|
||||||
import io.bitsquare.trade.SellerAsTakerTrade;
|
import io.bitsquare.trade.SellerAsTakerTrade;
|
||||||
import io.bitsquare.trade.Trade;
|
import io.bitsquare.trade.Trade;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
|
import io.bitsquare.trade.states.OffererState;
|
||||||
import io.bitsquare.trade.states.TakerState;
|
import io.bitsquare.trade.states.TakerState;
|
||||||
|
|
||||||
import org.bitcoinj.core.Transaction;
|
import org.bitcoinj.core.Transaction;
|
||||||
|
@ -33,10 +36,10 @@ import org.jetbrains.annotations.NotNull;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class TakerSignsAndPublishPayoutTx extends TradeTask {
|
public class SellerSignsAndPublishPayoutTx extends TradeTask {
|
||||||
private static final Logger log = LoggerFactory.getLogger(TakerSignsAndPublishPayoutTx.class);
|
private static final Logger log = LoggerFactory.getLogger(SellerSignsAndPublishPayoutTx.class);
|
||||||
|
|
||||||
public TakerSignsAndPublishPayoutTx(TaskRunner taskHandler, Trade trade) {
|
public SellerSignsAndPublishPayoutTx(TaskRunner taskHandler, Trade trade) {
|
||||||
super(taskHandler, trade);
|
super(taskHandler, trade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,10 +61,10 @@ public class TakerSignsAndPublishPayoutTx extends TradeTask {
|
||||||
public void onSuccess(Transaction transaction) {
|
public void onSuccess(Transaction transaction) {
|
||||||
processModel.setPayoutTx(transaction);
|
processModel.setPayoutTx(transaction);
|
||||||
|
|
||||||
if (trade instanceof BuyerAsTakerTrade)
|
if (trade instanceof BuyerAsTakerTrade || trade instanceof SellerAsTakerTrade)
|
||||||
trade.setProcessState(TakerState.ProcessState.PAYOUT_PUBLISHED);
|
|
||||||
else if (trade instanceof SellerAsTakerTrade)
|
|
||||||
trade.setProcessState(TakerState.ProcessState.PAYOUT_PUBLISHED);
|
trade.setProcessState(TakerState.ProcessState.PAYOUT_PUBLISHED);
|
||||||
|
else if (trade instanceof BuyerAsOffererTrade || trade instanceof SellerAsOffererTrade)
|
||||||
|
trade.setProcessState(OffererState.ProcessState.PAYOUT_PUBLISHED);
|
||||||
|
|
||||||
complete();
|
complete();
|
||||||
}
|
}
|
|
@ -15,13 +15,13 @@
|
||||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.bitsquare.trade.protocol.trade.buyer.taker.tasks;
|
package io.bitsquare.trade.protocol.trade.seller.tasks;
|
||||||
|
|
||||||
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.Trade;
|
import io.bitsquare.trade.Trade;
|
||||||
|
import io.bitsquare.trade.protocol.trade.StateUtil;
|
||||||
import io.bitsquare.trade.protocol.trade.TradeTask;
|
import io.bitsquare.trade.protocol.trade.TradeTask;
|
||||||
import io.bitsquare.trade.protocol.trade.buyer.tasks.StateUtil;
|
|
||||||
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
|
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
|
||||||
|
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
|
@ -29,10 +29,10 @@ import javafx.application.Platform;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class TakerSendsRequestDepositTxInputsMessage extends TradeTask {
|
public class SendRequestDepositTxInputsMessage extends TradeTask {
|
||||||
private static final Logger log = LoggerFactory.getLogger(TakerSendsRequestDepositTxInputsMessage.class);
|
private static final Logger log = LoggerFactory.getLogger(SendRequestDepositTxInputsMessage.class);
|
||||||
|
|
||||||
public TakerSendsRequestDepositTxInputsMessage(TaskRunner taskHandler, Trade trade) {
|
public SendRequestDepositTxInputsMessage(TaskRunner taskHandler, Trade trade) {
|
||||||
super(taskHandler, trade);
|
super(taskHandler, trade);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ public class TakerSendsRequestDepositTxInputsMessage extends TradeTask {
|
||||||
// We try to repeat once and if that fails as well we persist the state for a later retry.
|
// We try to repeat once and if that fails as well we persist the state for a later retry.
|
||||||
if (retryCounter == 0) {
|
if (retryCounter == 0) {
|
||||||
retryCounter++;
|
retryCounter++;
|
||||||
Platform.runLater(TakerSendsRequestDepositTxInputsMessage.this::doRun);
|
Platform.runLater(SendRequestDepositTxInputsMessage.this::doRun);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
appendToErrorMessage("Sending TakeOfferFeePayedMessage to offerer failed. Maybe the network connection was " +
|
appendToErrorMessage("Sending TakeOfferFeePayedMessage to offerer failed. Maybe the network connection was " +
|
|
@ -206,11 +206,7 @@ public class ProcessModel extends Model implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicKey getP2pSigPubKey() {
|
public PublicKey getP2pSigPubKey() {
|
||||||
return user.getP2PSigPubKey();
|
return user.getP2pSigPubKey();
|
||||||
}
|
|
||||||
|
|
||||||
public PublicKey getP2pEncryptPublicKey() {
|
|
||||||
return user.getP2PEncryptPubKey();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] getRegistrationPubKey() {
|
public byte[] getRegistrationPubKey() {
|
||||||
|
@ -226,7 +222,7 @@ public class ProcessModel extends Model implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicKey getP2pEncryptPubKey() {
|
public PublicKey getP2pEncryptPubKey() {
|
||||||
return user.getP2PEncryptPubKey();
|
return user.getP2pEncryptPubKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -55,7 +55,6 @@ public class TradingPeer implements Serializable {
|
||||||
private byte[] signature;
|
private byte[] signature;
|
||||||
private String contractAsJson;
|
private String contractAsJson;
|
||||||
private String contractSignature;
|
private String contractSignature;
|
||||||
private PublicKey p2PSigPubKey;
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -199,11 +198,4 @@ public class TradingPeer implements Serializable {
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicKey getP2PSigPubKey() {
|
|
||||||
return p2PSigPubKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setP2PSigPubKey(PublicKey p2PSigPubKey) {
|
|
||||||
this.p2PSigPubKey = p2PSigPubKey;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,11 +200,11 @@ public class User implements Serializable {
|
||||||
return p2pSigKeyPair;
|
return p2pSigKeyPair;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicKey getP2PSigPubKey() {
|
public PublicKey getP2pSigPubKey() {
|
||||||
return p2pSigKeyPair.getPublic();
|
return p2pSigKeyPair.getPublic();
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicKey getP2PEncryptPubKey() {
|
public PublicKey getP2pEncryptPubKey() {
|
||||||
return p2pEncryptKeyPair.getPublic();
|
return p2pEncryptKeyPair.getPublic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue