From 9b50dc40e55c12a14044a7b1b72e638e8cd87d0d Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Tue, 17 Mar 2015 22:35:53 +0100 Subject: [PATCH] Refactor models for offerer --- .../io/bitsquare/btc/TradeWalletService.java | 2 - .../java/io/bitsquare/trade/TradeManager.java | 25 ++- .../protocol/trade/OfferSharedModel.java | 20 +- .../trade/protocol/trade/TakerModel.java | 44 ++++ .../trade/offerer/BuyerAsOffererModel.java | 205 +++--------------- .../trade/offerer/BuyerAsOffererProtocol.java | 2 +- .../protocol/trade/offerer/OffererModel.java | 34 +++ .../tasks/GetOffererDepositTxInputs.java | 6 +- .../ProcessRequestDepositTxInputsMessage.java | 2 +- ...RequestOffererPublishDepositTxMessage.java | 20 +- .../offerer/tasks/RequestDepositPayment.java | 9 +- .../tasks/SendBankTransferStartedMessage.java | 8 +- .../offerer/tasks/SendDepositTxIdToTaker.java | 2 +- .../tasks/SignAndPublishDepositTx.java | 12 +- .../trade/offerer/tasks/SignPayoutTx.java | 14 +- .../offerer/tasks/VerifyAndSignContract.java | 6 +- .../offerer/tasks/VerifyTakerAccount.java | 4 +- .../trade/taker/SellerAsTakerModel.java | 9 +- 18 files changed, 178 insertions(+), 246 deletions(-) create mode 100644 core/src/main/java/io/bitsquare/trade/protocol/trade/TakerModel.java create mode 100644 core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/OffererModel.java diff --git a/core/src/main/java/io/bitsquare/btc/TradeWalletService.java b/core/src/main/java/io/bitsquare/btc/TradeWalletService.java index bfc6268cfb..c1c2e4652f 100644 --- a/core/src/main/java/io/bitsquare/btc/TradeWalletService.java +++ b/core/src/main/java/io/bitsquare/btc/TradeWalletService.java @@ -415,8 +415,6 @@ public class TradeWalletService { verifyTransaction(payoutTx); checkWalletConsistency(); - checkScriptSig(payoutTx, input, 0); - input.verify(input.getConnectedOutput()); printTxWithInputs("payoutTx", payoutTx); ListenableFuture broadcastComplete = walletAppKit.peerGroup().broadcastTransaction(payoutTx); diff --git a/core/src/main/java/io/bitsquare/trade/TradeManager.java b/core/src/main/java/io/bitsquare/trade/TradeManager.java index f5da962e13..9fbffb0e09 100644 --- a/core/src/main/java/io/bitsquare/trade/TradeManager.java +++ b/core/src/main/java/io/bitsquare/trade/TradeManager.java @@ -125,9 +125,9 @@ public class TradeManager { for (Map.Entry entry : openOffers.entrySet()) { createBuyerAcceptsOfferProtocol(entry.getValue()); } - /* for (Map.Entry entry : pendingTrades.entrySet()) { + for (Map.Entry entry : pendingTrades.entrySet()) { createBuyerAcceptsOfferProtocol(entry.getValue().getOffer()); - }*/ + } } @@ -251,7 +251,8 @@ public class TradeManager { walletService, blockChainService, signatureService, - user); + user, + persistence); SellerAsTakerProtocol sellerTakesOfferProtocol = new SellerAsTakerProtocol(model); sellerAsTakerProtocolMap.put(trade.getId(), sellerTakesOfferProtocol); @@ -359,13 +360,7 @@ public class TradeManager { } private void createBuyerAcceptsOfferProtocol(Offer offer) { - BuyerAsOffererModel model = new BuyerAsOffererModel( - offer, - tradeMessageService, - walletService, - blockChainService, - signatureService, - user); + Trade trade; if (pendingTrades.containsKey(offer.getId())) { @@ -377,7 +372,15 @@ public class TradeManager { pendingTrades.put(trade.getId(), trade); persistPendingTrades(); } - model.setTrade(trade); + + BuyerAsOffererModel model = new BuyerAsOffererModel( + trade, + tradeMessageService, + walletService, + blockChainService, + signatureService, + user, + persistence); currentPendingTrade = trade; // TODO check, remove listener diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/OfferSharedModel.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/OfferSharedModel.java index 44556b0a75..5b212632bc 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/OfferSharedModel.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/OfferSharedModel.java @@ -17,16 +17,17 @@ package io.bitsquare.trade.protocol.trade; -import io.bitsquare.fiat.FiatAccount; import io.bitsquare.btc.AddressEntry; import io.bitsquare.btc.BlockChainService; import io.bitsquare.btc.TradeWalletService; import io.bitsquare.btc.WalletService; +import io.bitsquare.common.taskrunner.SharedModel; import io.bitsquare.crypto.SignatureService; +import io.bitsquare.fiat.FiatAccount; import io.bitsquare.offer.Offer; +import io.bitsquare.persistence.Persistence; import io.bitsquare.trade.TradeMessageService; import io.bitsquare.user.User; -import io.bitsquare.common.taskrunner.SharedModel; import org.bitcoinj.crypto.DeterministicKey; @@ -44,6 +45,7 @@ public class OfferSharedModel extends SharedModel { private final WalletService walletService; private final BlockChainService blockChainService; private final SignatureService signatureService; + private Persistence persistence; // derived @@ -66,12 +68,14 @@ public class OfferSharedModel extends SharedModel { WalletService walletService, BlockChainService blockChainService, SignatureService signatureService, - User user) { + User user, + Persistence persistence) { this.offer = offer; this.tradeMessageService = tradeMessageService; this.walletService = walletService; this.blockChainService = blockChainService; this.signatureService = signatureService; + this.persistence = persistence; id = offer.getId(); tradeWalletService = walletService.getTradeWalletService(); @@ -85,8 +89,12 @@ public class OfferSharedModel extends SharedModel { networkPubKey = user.getNetworkPubKey(); } - // getter/setter + //setter + public void setTradeMessage(TradeMessage tradeMessage) { + this.tradeMessage = tradeMessage; + } + // getter public String getId() { return id; } @@ -99,10 +107,6 @@ public class OfferSharedModel extends SharedModel { return tradeMessage; } - public void setTradeMessage(TradeMessage tradeMessage) { - this.tradeMessage = tradeMessage; - } - public Offer getOffer() { return offer; } diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/TakerModel.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/TakerModel.java new file mode 100644 index 0000000000..6e39d9a69e --- /dev/null +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/TakerModel.java @@ -0,0 +1,44 @@ +/* + * 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 . + */ + +package io.bitsquare.trade.protocol.trade; + +import io.bitsquare.fiat.FiatAccount; +import io.bitsquare.network.Peer; + +import org.bitcoinj.core.Coin; +import org.bitcoinj.core.Transaction; +import org.bitcoinj.core.TransactionOutput; + +import java.security.PublicKey; + +import java.util.List; + +public class TakerModel { + public Peer peer; + public String accountId; + public FiatAccount fiatAccount; + public PublicKey messagePublicKey; + public String contractAsJson; + public Coin payoutAmount; + public Transaction depositTx; + public List connectedOutputsForAllInputs; + public List outputs; + public String payoutAddress; + public byte[] pubKey; + +} diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAsOffererModel.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAsOffererModel.java index 9aafcf9aed..9dbf1371ad 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAsOffererModel.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAsOffererModel.java @@ -20,22 +20,14 @@ package io.bitsquare.trade.protocol.trade.offerer; import io.bitsquare.btc.BlockChainService; import io.bitsquare.btc.WalletService; import io.bitsquare.crypto.SignatureService; -import io.bitsquare.fiat.FiatAccount; -import io.bitsquare.network.Peer; -import io.bitsquare.offer.Offer; +import io.bitsquare.persistence.Persistence; import io.bitsquare.trade.Trade; import io.bitsquare.trade.TradeMessageService; import io.bitsquare.trade.protocol.trade.OfferSharedModel; +import io.bitsquare.trade.protocol.trade.TakerModel; import io.bitsquare.user.User; -import org.bitcoinj.core.Coin; -import org.bitcoinj.core.ECKey; import org.bitcoinj.core.Transaction; -import org.bitcoinj.core.TransactionOutput; - -import java.security.PublicKey; - -import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,72 +36,55 @@ public class BuyerAsOffererModel extends OfferSharedModel { private static final Logger log = LoggerFactory.getLogger(BuyerAsOffererModel.class); - // derived - private final byte[] offererPubKey; - // data written/read by tasks - private Trade trade; - private Peer taker; + private final Trade trade; + + + public final TakerModel taker; + public final OffererModel offerer; - private String takerAccountId; - private FiatAccount takerFiatAccount; - private PublicKey takerMessagePublicKey; - private String takerContractAsJson; - private Coin takerPayoutAmount; - private String takeOfferFeeTxId; - private ECKey.ECDSASignature offererSignature; - private Coin offererPayoutAmount; - private List offererConnectedOutputsForAllInputs; - private List offererOutputs; - private Transaction takerDepositTx; - private List takerConnectedOutputsForAllInputs; - private List takerOutputs; - private String takerPayoutAddress; - private Transaction offererPayoutTx; private Transaction publishedDepositTx; - private byte[] takerPubKey; + private String takeOfferFeeTxId; /////////////////////////////////////////////////////////////////////////////////////////// // Constructor /////////////////////////////////////////////////////////////////////////////////////////// - public BuyerAsOffererModel(Offer offer, + public BuyerAsOffererModel(Trade trade, TradeMessageService tradeMessageService, WalletService walletService, BlockChainService blockChainService, SignatureService signatureService, - User user) { - super(offer, + User user, + Persistence persistence) { + super(trade.getOffer(), tradeMessageService, walletService, blockChainService, signatureService, - user); + user, + persistence); - offererPubKey = getAddressEntry().getPubKey(); + this.trade = trade; + + taker = new TakerModel(); + offerer = new OffererModel(); + + offerer.pubKey = getAddressEntry().getPubKey(); } - //getter/setter - public List getOffererConnectedOutputsForAllInputs() { - return offererConnectedOutputsForAllInputs; + public Trade getTrade() { + return trade; } - public void setOffererConnectedOutputsForAllInputs(List offererConnectedOutputsForAllInputs) { - this.offererConnectedOutputsForAllInputs = offererConnectedOutputsForAllInputs; + public Transaction getPublishedDepositTx() { + return publishedDepositTx; } - public List getOffererOutputs() { - return offererOutputs; - } - - public void setOffererOutputs(List offererOutputs) { - this.offererOutputs = offererOutputs; - } - - public Peer getTaker() { - return taker; + public void setPublishedDepositTx(Transaction publishedDepositTx) { + this.publishedDepositTx = publishedDepositTx; } public String getTakeOfferFeeTxId() { @@ -119,132 +94,4 @@ public class BuyerAsOffererModel extends OfferSharedModel { public void setTakeOfferFeeTxId(String takeOfferFeeTxId) { this.takeOfferFeeTxId = takeOfferFeeTxId; } - - public String getTakerAccountId() { - return takerAccountId; - } - - public void setTakerAccountId(String takerAccountId) { - this.takerAccountId = takerAccountId; - } - - public FiatAccount getTakerFiatAccount() { - return takerFiatAccount; - } - - public void setTakerFiatAccount(FiatAccount takerFiatAccount) { - this.takerFiatAccount = takerFiatAccount; - } - - public PublicKey getTakerMessagePublicKey() { - return takerMessagePublicKey; - } - - public void setTakerMessagePublicKey(PublicKey takerMessagePublicKey) { - this.takerMessagePublicKey = takerMessagePublicKey; - } - - public String getTakerContractAsJson() { - return takerContractAsJson; - } - - public void setTakerContractAsJson(String takerContractAsJson) { - this.takerContractAsJson = takerContractAsJson; - } - - public byte[] getOffererPubKey() { - return offererPubKey; - } - - public ECKey.ECDSASignature getOffererSignature() { - return offererSignature; - } - - public void setOffererSignature(ECKey.ECDSASignature offererSignature) { - this.offererSignature = offererSignature; - } - - public Coin getOffererPayoutAmount() { - return offererPayoutAmount; - } - - public void setOffererPayoutAmount(Coin offererPayoutAmount) { - this.offererPayoutAmount = offererPayoutAmount; - } - - public Coin getTakerPayoutAmount() { - return takerPayoutAmount; - } - - public void setTakerPayoutAmount(Coin takerPayoutAmount) { - this.takerPayoutAmount = takerPayoutAmount; - } - - public void setTrade(Trade trade) { - this.trade = trade; - } - - public Trade getTrade() { - return trade; - } - - public void setTaker(Peer taker) { - this.taker = taker; - } - - public void setTakerDepositTx(Transaction takerDepositTx) { - this.takerDepositTx = takerDepositTx; - } - - public Transaction getTakerDepositTx() { - return takerDepositTx; - } - - public void setTakerConnectedOutputsForAllInputs(List takerConnectedOutputsForAllInputs) { - this.takerConnectedOutputsForAllInputs = takerConnectedOutputsForAllInputs; - } - - public List getTakerConnectedOutputsForAllInputs() { - return takerConnectedOutputsForAllInputs; - } - - public void setTakerOutputs(List takerOutputs) { - this.takerOutputs = takerOutputs; - } - - public List getTakerOutputs() { - return takerOutputs; - } - - public String getTakerPayoutAddress() { - return takerPayoutAddress; - } - - public void setTakerPayoutAddress(String takerPayoutAddress) { - this.takerPayoutAddress = takerPayoutAddress; - } - - public void setOffererPayoutTx(Transaction offererPayoutTx) { - this.offererPayoutTx = offererPayoutTx; - } - - public Transaction getOffererPayoutTx() { - return offererPayoutTx; - } - - public void setPublishedDepositTx(Transaction publishedDepositTx) { - this.publishedDepositTx = publishedDepositTx; - } - - public Transaction getPublishedDepositTx() { - return publishedDepositTx; - } - - public byte[] getTakerPubKey() { - return takerPubKey; - } - - public void setTakerPubKey(byte[] takerPubKey) { - this.takerPubKey = takerPubKey; - } } diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAsOffererProtocol.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAsOffererProtocol.java index afcdb87f64..b6c1d7230b 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAsOffererProtocol.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAsOffererProtocol.java @@ -82,7 +82,7 @@ public class BuyerAsOffererProtocol { private void handleRequestDepositTxInputsMessage(RequestDepositTxInputsMessage tradeMessage, Peer taker) { model.setTradeMessage(tradeMessage); - model.setTaker(taker); + model.taker.peer = taker; BuyerAsOffererTaskRunner taskRunner = new BuyerAsOffererTaskRunner<>(model, () -> { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/OffererModel.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/OffererModel.java new file mode 100644 index 0000000000..c2d124aa4c --- /dev/null +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/OffererModel.java @@ -0,0 +1,34 @@ +/* + * 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 . + */ + +package io.bitsquare.trade.protocol.trade.offerer; + +import org.bitcoinj.core.Coin; +import org.bitcoinj.core.ECKey; +import org.bitcoinj.core.Transaction; +import org.bitcoinj.core.TransactionOutput; + +import java.util.List; + +public class OffererModel { + public byte[] pubKey; + public ECKey.ECDSASignature payoutSignature; + public Coin payoutAmount; + public List connectedOutputsForAllInputs; + public List outputs; + public Transaction payoutTx; +} diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/GetOffererDepositTxInputs.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/GetOffererDepositTxInputs.java index 483ffb00d1..c189b4dade 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/GetOffererDepositTxInputs.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/GetOffererDepositTxInputs.java @@ -20,9 +20,9 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks; import io.bitsquare.btc.AddressEntry; import io.bitsquare.btc.FeePolicy; import io.bitsquare.btc.TradeWalletService; -import io.bitsquare.trade.protocol.trade.offerer.BuyerAsOffererModel; import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.TaskRunner; +import io.bitsquare.trade.protocol.trade.offerer.BuyerAsOffererModel; import org.bitcoinj.core.Coin; @@ -43,8 +43,8 @@ public class GetOffererDepositTxInputs extends Task { AddressEntry addressInfo = model.getAddressEntry(); TradeWalletService.TransactionDataResult result = model.getTradeWalletService().offererCreatesDepositTxInputs(offererInputAmount, addressInfo); - model.setOffererConnectedOutputsForAllInputs(result.getConnectedOutputsForAllInputs()); - model.setOffererOutputs(result.getOutputs()); + model.offerer.connectedOutputsForAllInputs = result.getConnectedOutputsForAllInputs(); + model.offerer.outputs = result.getOutputs(); complete(); } catch (Throwable e) { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/ProcessRequestDepositTxInputsMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/ProcessRequestDepositTxInputsMessage.java index ee77e27a71..fe50496722 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/ProcessRequestDepositTxInputsMessage.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/ProcessRequestDepositTxInputsMessage.java @@ -44,7 +44,7 @@ public class ProcessRequestDepositTxInputsMessage extends Task 0); - model.setTakerOutputs(checkNotNull(message.getTakerOutputs())); + model.taker.outputs = checkNotNull(message.getTakerOutputs()); complete(); } catch (Throwable t) { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestDepositPayment.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestDepositPayment.java index 83a490602f..8aedb32190 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestDepositPayment.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestDepositPayment.java @@ -35,16 +35,15 @@ public class RequestDepositPayment extends Task { @Override protected void doRun() { - model.getOffererPubKey(); RequestDepositPaymentMessage tradeMessage = new RequestDepositPaymentMessage( model.getId(), - model.getOffererConnectedOutputsForAllInputs(), - model.getOffererOutputs(), - model.getOffererPubKey(), + model.offerer.connectedOutputsForAllInputs, + model.offerer.outputs, + model.offerer.pubKey, model.getFiatAccount(), model.getAccountId()); - model.getTradeMessageService().sendMessage(model.getTaker(), tradeMessage, new SendMessageListener() { + model.getTradeMessageService().sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() { @Override public void handleResult() { log.trace("RequestTakerDepositPaymentMessage successfully arrived at peer"); diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendBankTransferStartedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendBankTransferStartedMessage.java index 943959813e..3bd741234c 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendBankTransferStartedMessage.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendBankTransferStartedMessage.java @@ -38,11 +38,11 @@ public class SendBankTransferStartedMessage extends Task { BankTransferStartedMessage tradeMessage = new BankTransferStartedMessage( model.getId(), model.getPublishedDepositTx(), - model.getOffererSignature().encodeToDER(), - model.getOffererPayoutAmount(), - model.getTakerPayoutAmount(), + model.offerer.payoutSignature.encodeToDER(), + model.offerer.payoutAmount, + model.taker.payoutAmount, model.getAddressEntry().getAddressString()); - model.getTradeMessageService().sendMessage(model.getTaker(), tradeMessage, new SendMessageListener() { + model.getTradeMessageService().sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() { @Override public void handleResult() { log.trace("Sending BankTransferInitedMessage succeeded."); diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java index 975809664d..bec111a2be 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java @@ -37,7 +37,7 @@ public class SendDepositTxIdToTaker extends Task { protected void doRun() { DepositTxPublishedMessage tradeMessage = new DepositTxPublishedMessage(model.getId(), model.getTrade().getDepositTx()); - model.getTradeMessageService().sendMessage(model.getTaker(), tradeMessage, new SendMessageListener() { + model.getTradeMessageService().sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() { @Override public void handleResult() { log.trace("DepositTxPublishedMessage successfully arrived at peer"); diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java index b1697b680c..9fd1db23a9 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java @@ -45,13 +45,13 @@ public class SignAndPublishDepositTx extends Task { try { Coin offererInputAmount = model.getTrade().getSecurityDeposit().add(FeePolicy.TX_FEE); model.getTradeWalletService().offererSignsAndPublishTx( - model.getTakerDepositTx(), - model.getOffererConnectedOutputsForAllInputs(), - model.getTakerConnectedOutputsForAllInputs(), - model.getOffererOutputs(), + model.taker.depositTx, + model.offerer.connectedOutputsForAllInputs, + model.taker.connectedOutputsForAllInputs, + model.offerer.outputs, offererInputAmount, - model.getOffererPubKey(), - model.getTakerPubKey(), + model.offerer.pubKey, + model.taker.pubKey, model.getArbitratorPubKey(), new FutureCallback() { @Override diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignPayoutTx.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignPayoutTx.java index b1e2613719..3f39fae14c 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignPayoutTx.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignPayoutTx.java @@ -47,16 +47,16 @@ public class SignPayoutTx extends Task { trade.getDepositTx(), offererPayoutAmount, takerPayoutAmount, - model.getTakerPayoutAddress(), + model.taker.payoutAddress, model.getWalletService().getAddressEntry(trade.getId()), - model.getOffererPubKey(), - model.getTakerPubKey(), + model.offerer.pubKey, + model.taker.pubKey, model.getArbitratorPubKey()); - model.setOffererPayoutTx(result.getPayoutTx()); - model.setOffererSignature(result.getOffererSignature()); - model.setOffererPayoutAmount(offererPayoutAmount); - model.setTakerPayoutAmount(takerPayoutAmount); + model.offerer.payoutTx = result.getPayoutTx(); + model.offerer.payoutSignature = result.getOffererSignature(); + model.offerer.payoutAmount = offererPayoutAmount; + model.taker.payoutAmount = takerPayoutAmount; complete(); } catch (Exception e) { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java index 56f57c96e8..b95ab930cb 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java @@ -43,11 +43,11 @@ public class VerifyAndSignContract extends Task { trade.getTradeAmount(), model.getTakeOfferFeeTxId(), model.getAccountId(), - model.getTakerAccountId(), + model.taker.accountId, model.getFiatAccount(), - model.getTakerFiatAccount(), + model.taker.fiatAccount, model.getNetworkPubKey(), - model.getTakerMessagePublicKey()); + model.taker.messagePublicKey); String contractAsJson = Utilities.objectToJson(contract); String signature = model.getSignatureService().signMessage(model.getRegistrationKeyPair(), contractAsJson); diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java index 18b25a3abe..1973c87e8c 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java @@ -17,9 +17,9 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks; -import io.bitsquare.trade.protocol.trade.offerer.BuyerAsOffererModel; import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.TaskRunner; +import io.bitsquare.trade.protocol.trade.offerer.BuyerAsOffererModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,7 +35,7 @@ public class VerifyTakerAccount extends Task { protected void doRun() { //TODO mocked yet if (model.getBlockChainService().verifyAccountRegistration()) { - if (model.getBlockChainService().isAccountBlackListed(model.getTakerAccountId(), model.getTakerFiatAccount())) { + if (model.getBlockChainService().isAccountBlackListed(model.taker.accountId, model.taker.fiatAccount)) { log.error("Taker is blacklisted"); failed("Taker is blacklisted"); } diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerAsTakerModel.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerAsTakerModel.java index ceef5fb9cc..f556e1a2b8 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerAsTakerModel.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerAsTakerModel.java @@ -17,11 +17,12 @@ package io.bitsquare.trade.protocol.trade.taker; -import io.bitsquare.fiat.FiatAccount; import io.bitsquare.btc.BlockChainService; import io.bitsquare.btc.WalletService; import io.bitsquare.crypto.SignatureService; +import io.bitsquare.fiat.FiatAccount; import io.bitsquare.network.Peer; +import io.bitsquare.persistence.Persistence; import io.bitsquare.trade.Trade; import io.bitsquare.trade.TradeMessageService; import io.bitsquare.trade.protocol.trade.OfferSharedModel; @@ -71,13 +72,15 @@ public class SellerAsTakerModel extends OfferSharedModel { WalletService walletService, BlockChainService blockChainService, SignatureService signatureService, - User user) { + User user, + Persistence persistence) { super(trade.getOffer(), tradeMessageService, walletService, blockChainService, signatureService, - user); + user, + persistence); this.trade = trade; this.offerer = offerer;