Version 0.1.3 interrupted trade process working fine

This commit is contained in:
Manfred Karrer 2015-03-28 23:12:18 +01:00
parent 0008202037
commit aa1e141900
39 changed files with 209 additions and 148 deletions

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>parent</artifactId>
<groupId>io.bitsquare</groupId>
<version>0.1.2-SNAPSHOT</version>
<version>0.1.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -39,6 +39,8 @@ import org.springframework.core.env.Environment;
public class BootstrapNode {
private static final Logger log = LoggerFactory.getLogger(BootstrapNode.class);
private static final String VERSION = "0.1.3";
private static Peer peer = null;
private final Environment env;
@ -51,7 +53,6 @@ public class BootstrapNode {
public void start() {
String name = env.getRequiredProperty(Node.NAME_KEY);
int port = env.getProperty(Node.PORT_KEY, Integer.class, Node.DEFAULT_PORT);
try {
Number160 peerId = Number160.createHash(name);
@ -94,7 +95,7 @@ public class BootstrapNode {
}
});
log.info("Bootstrap node started with name " + name + " and port " + port);
log.info("Bootstrap node started with name " + name + " ,port " + port + " and version " + VERSION);
new Thread(() -> {
while (true) {
if (peer.peerBean().peerMap().all().size() > 0) {

View File

@ -6,7 +6,7 @@
<parent>
<artifactId>parent</artifactId>
<groupId>io.bitsquare</groupId>
<version>0.1.2-SNAPSHOT</version>
<version>0.1.3-SNAPSHOT</version>
</parent>
<artifactId>core</artifactId>
@ -41,7 +41,7 @@
<minimizeJar>false</minimizeJar>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>io.bitsquare.app.BitsquareAppMain</mainClass>
<mainClass>io.bitsquare.app.gui.BitsquareAppMain</mainClass>
</transformer>
</transformers>
<filters>
@ -112,7 +112,7 @@
<dependency>
<groupId>net.tomp2p</groupId>
<artifactId>tomp2p-all</artifactId>
<version>5.0-Beta3</version>
<version>5.0-Beta6</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>

View File

@ -18,6 +18,7 @@
package io.bitsquare.app;
import io.bitsquare.BitsquareException;
import io.bitsquare.app.gui.BitsquareAppMain;
import io.bitsquare.btc.UserAgent;
import io.bitsquare.btc.WalletService;
import io.bitsquare.gui.main.MainView;

View File

@ -17,6 +17,7 @@
package io.bitsquare.app;
import io.bitsquare.app.gui.BitsquareAppMain;
import io.bitsquare.util.Utilities;
import com.google.inject.Inject;
@ -101,7 +102,7 @@ public class UpdateProcess {
});
timeoutTimer.start();
String agent = environment.getProperty(BitsquareEnvironment.APP_NAME_KEY) + BUILD_VERSION;
String agent = environment.getProperty(BitsquareEnvironment.APP_NAME_KEY) + BitsquareAppMain.getVersion();
Path dataDirPath = new File(environment.getProperty(BitsquareEnvironment.APP_DATA_DIR_KEY)).toPath();
Updater updater = new Updater(UPDATES_BASE_URL, agent, BUILD_VERSION, dataDirPath, ROOT_CLASS_PATH,
UPDATE_SIGNING_KEYS, UPDATE_SIGNING_THRESHOLD) {

View File

@ -15,9 +15,13 @@
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/
package io.bitsquare.app;
package io.bitsquare.app.gui;
import io.bitsquare.BitsquareException;
import io.bitsquare.app.BitsquareApp;
import io.bitsquare.app.BitsquareEnvironment;
import io.bitsquare.app.BitsquareExecutable;
import io.bitsquare.app.UpdateProcess;
import io.bitsquare.btc.BitcoinNetwork;
import io.bitsquare.p2p.BootstrapNodes;
import io.bitsquare.p2p.Node;

View File

@ -396,16 +396,16 @@ public class TradeWalletService {
}
// Commits the tx to the wallet and returns that
public Transaction commitsDepositTx(Transaction publishedDepositTx) throws VerificationException {
log.trace("takerCommitsDepositTx called");
log.trace("publishedDepositTx " + publishedDepositTx.toString());
public Transaction commitTx(Transaction tx) throws VerificationException {
log.trace("commitTx called");
log.trace("tx " + tx.toString());
// We need to recreate the tx we get a null pointer otherwise
Transaction depositTx = new Transaction(params, publishedDepositTx.bitcoinSerialize());
log.trace("depositTx " + depositTx.toString());
Transaction transaction = new Transaction(params, tx.bitcoinSerialize());
log.trace("transaction " + transaction.toString());
wallet.receivePending(depositTx, null, true);
return depositTx;
wallet.receivePending(transaction, null, true);
return transaction;
}
// Returns local existing wallet transaction

View File

@ -33,10 +33,10 @@ import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateAndSignPayoutTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateOffererDepositTxInputs;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestTakerDepositPayment;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxToTaker;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendRequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SignAndPublishDepositTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakeOfferFeePayment;
@ -47,12 +47,12 @@ import io.bitsquare.trade.protocol.trade.taker.tasks.CreateTakeOfferFeeTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessDepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendPayoutTxToOfferer;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendPayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendSignedTakerDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendRequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SignAndPublishPayoutTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.TakerCommitDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.TakerCreatesAndSignsDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.CommitDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.CreateAndSignDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.VerifyOfferFeePayment;
import io.bitsquare.trade.protocol.trade.taker.tasks.VerifyOffererAccount;
@ -103,17 +103,17 @@ public class DebugView extends InitializableView {
OffererProtocol.class,
ProcessRequestDepositTxInputsMessage.class,
CreateOffererDepositTxInputs.class,
RequestTakerDepositPayment.class,
SendRequestTakerDepositPaymentMessage.class,
ProcessRequestOffererPublishDepositTxMessage.class,
ProcessRequestPublishDepositTxMessage.class,
VerifyTakerAccount.class,
VerifyAndSignContract.class,
SignAndPublishDepositTx.class,
SendDepositTxToTaker.class,
SendDepositTxPublishedMessage.class,
CreateAndSignPayoutTx.class,
VerifyTakeOfferFeePayment.class,
SendBankTransferStartedMessage.class,
SendFiatTransferStartedMessage.class,
ProcessPayoutTxPublishedMessage.class,
Boolean.class, /* used as seperator*/
@ -127,17 +127,17 @@ public class DebugView extends InitializableView {
ProcessRequestTakerDepositPaymentMessage.class,
VerifyOffererAccount.class,
CreateAndSignContract.class,
TakerCreatesAndSignsDepositTx.class,
SendSignedTakerDepositTx.class,
CreateAndSignDepositTx.class,
SendRequestPublishDepositTxMessage.class,
ProcessDepositTxPublishedMessage.class,
TakerCommitDepositTx.class,
CommitDepositTx.class,
ProcessFiatTransferStartedMessage.class,
SignAndPublishPayoutTx.class,
VerifyOfferFeePayment.class,
SendPayoutTxToOfferer.class
SendPayoutTxPublishedMessage.class
)
);

View File

@ -76,7 +76,7 @@ public class PortfolioView extends ActivatableViewAndModel<TabPane, Activatable>
root.getSelectionModel().selectedItemProperty().addListener(tabChangeListener);
navigation.addListener(navigationListener);
navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class);
// navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class);
/* if (tradeManager.getPendingTrades().size() == 0)
navigation.navigateTo(MainView.class, PortfolioView.class, OffersView.class);

View File

@ -34,7 +34,7 @@ import io.bitsquare.gui.main.account.settings.AccountSettingsView;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import io.bitsquare.gui.main.portfolio.PortfolioView;
import io.bitsquare.gui.main.portfolio.pending.PendingTradesView;
import io.bitsquare.gui.main.portfolio.offer.OffersView;
import io.bitsquare.gui.main.trade.TradeView;
import io.bitsquare.gui.util.ImageUtil;
import io.bitsquare.locale.BSResources;
@ -292,10 +292,10 @@ public class CreateOfferView extends ActivatableViewAndModel<AnchorPane, CreateO
model.showTransactionPublishedScreen.addListener((o, oldValue, newValue) -> {
// TODO temp just for testing
newValue = false;
close();
navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class);
// newValue = false;
// close();
//navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class, OffersView.class);
if (newValue) {
overlayManager.blurContent();
@ -315,6 +315,7 @@ public class CreateOfferView extends ActivatableViewAndModel<AnchorPane, CreateO
getProperties().put("type", "CLOSE");
try {
close();
navigation.navigateTo(MainView.class, PortfolioView.class, OffersView.class);
} catch (Exception e) {
e.printStackTrace();
}

View File

@ -145,9 +145,9 @@ public class OfferBookView extends ActivatableViewAndModel<GridPane, OfferBookVi
table.sort();
//TODO temp for testing
amountTextField.setText("1");
/* amountTextField.setText("1");
priceTextField.setText("300");
volumeTextField.setText("300");
volumeTextField.setText("300");*/
}
@Override

View File

@ -243,9 +243,9 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
model.showTransactionPublishedScreen.addListener((o, oldValue, newValue) -> {
// TODO temp just for testing
newValue = false;
close();
navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class);
/* newValue = false;
close();*/
//navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class);
if (newValue) {
overlayManager.blurContent();

View File

@ -155,7 +155,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel<TakeOfferDataModel> im
switch (state) {
case UNKNOWN:
log.error("Offer state is UNKNOWN. That must not happen.");
// TODO set spinner?
break;
case AVAILABLE:
this.state.set(State.AMOUNT_SCREEN);

View File

@ -155,6 +155,7 @@ public class TradeManager {
offerBookService.addOffer(offer,
() -> log.debug("Successful removed open offer from DHT"),
(message, throwable) -> log.error("Remove open offer from DHT failed. " + message));
setupDepositPublishedListener(offererTrade);
offererTrade.setStorage(openOfferTradesStorage);
initTrade(offererTrade);
@ -163,9 +164,9 @@ public class TradeManager {
// We continue an interrupted trade.
// TODO if the peer has changed its IP address, we need to make another findPeer request. At the moment we use the peer stored in trade to
// continue the trade, but that might fail.
initTrade(trade);
trade.updateDepositTxFromWallet(tradeWalletService);
trade.setStorage(pendingTradesStorage);
trade.updateDepositTxFromWallet(tradeWalletService);
initTrade(trade);
}
// if there are messages in our mailbox we apply it and remove them from the DHT
@ -260,7 +261,11 @@ public class TradeManager {
OffererTrade offererTrade = new OffererTrade(offer, openOfferTradesStorage);
openOfferTrades.add(offererTrade);
initTrade(offererTrade);
setupDepositPublishedListener(offererTrade);
resultHandler.handleResult(transaction);
}
private void setupDepositPublishedListener(OffererTrade offererTrade) {
offererTrade.processStateProperty().addListener((ov, oldValue, newValue) -> {
log.debug("offererTrade state = " + newValue);
if (newValue == OffererTrade.OffererProcessState.DEPOSIT_PUBLISHED) {
@ -272,8 +277,6 @@ public class TradeManager {
offererTrade.setStorage(pendingTradesStorage);
}
});
resultHandler.handleResult(transaction);
}
public void cancelOpenOffer(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {

View File

@ -31,7 +31,7 @@ import java.util.List;
import javax.annotation.concurrent.Immutable;
@Immutable
public class RequestOffererPublishDepositTxMessage extends TradeMessage implements Serializable {
public class RequestPublishDepositTxMessage extends TradeMessage implements Serializable {
// That object is sent over the wire, so we need to take care of version compatibility.
private static final long serialVersionUID = 1L;
@ -45,16 +45,16 @@ public class RequestOffererPublishDepositTxMessage extends TradeMessage implemen
public final Transaction takersPreparedDepositTx;
public final List<TransactionOutput> takerConnectedOutputsForAllInputs;
public RequestOffererPublishDepositTxMessage(String tradeId,
FiatAccount takerFiatAccount,
String takerAccountId,
PublicKey takerP2PSigPublicKey,
PublicKey takerP2PEncryptPublicKey,
String takerContractAsJson,
String takerContractSignature,
String takerPayoutAddressString,
Transaction takersPreparedDepositTx,
List<TransactionOutput> takerConnectedOutputsForAllInputs) {
public RequestPublishDepositTxMessage(String tradeId,
FiatAccount takerFiatAccount,
String takerAccountId,
PublicKey takerP2PSigPublicKey,
PublicKey takerP2PEncryptPublicKey,
String takerContractAsJson,
String takerContractSignature,
String takerPayoutAddressString,
Transaction takersPreparedDepositTx,
List<TransactionOutput> takerConnectedOutputsForAllInputs) {
super(tradeId);
this.takerFiatAccount = takerFiatAccount;
this.takerAccountId = takerAccountId;

View File

@ -29,17 +29,18 @@ import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailability
import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailableMessage;
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.OffererProcessModel;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CommitPayoutTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateAndSignPayoutTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateOffererDepositTxInputs;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestTakerDepositPayment;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxToTaker;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendRequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SignAndPublishDepositTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakeOfferFeePayment;
@ -134,28 +135,28 @@ public class OffererProtocol implements Protocol {
offererTrade.setLifeCycleState(OffererTrade.OffererLifeCycleState.OFFER_RESERVED);
TaskRunner<OffererTrade> taskRunner = new TaskRunner<>(offererTrade,
() -> log.debug("taskRunner at handleTakeOfferFeePayedMessage completed"),
() -> log.debug("taskRunner at handleRequestDepositTxInputsMessage completed"),
this::handleTaskRunnerFault);
taskRunner.addTasks(
ProcessRequestDepositTxInputsMessage.class,
CreateOffererDepositTxInputs.class,
RequestTakerDepositPayment.class
SendRequestTakerDepositPaymentMessage.class
);
taskRunner.run();
}
private void handleRequestOffererPublishDepositTxMessage(RequestOffererPublishDepositTxMessage tradeMessage) {
private void handleRequestPublishDepositTxMessage(RequestPublishDepositTxMessage tradeMessage) {
offererTradeProcessModel.setTradeMessage(tradeMessage);
TaskRunner<OffererTrade> taskRunner = new TaskRunner<>(offererTrade,
() -> log.debug("taskRunner at handleRequestOffererPublishDepositTxMessage completed"),
() -> log.debug("taskRunner at handleRequestPublishDepositTxMessage completed"),
this::handleTaskRunnerFault);
taskRunner.addTasks(
ProcessRequestOffererPublishDepositTxMessage.class,
ProcessRequestPublishDepositTxMessage.class,
VerifyTakerAccount.class,
VerifyAndSignContract.class,
SignAndPublishDepositTx.class,
SendDepositTxToTaker.class
SendDepositTxPublishedMessage.class
);
taskRunner.run();
}
@ -173,7 +174,7 @@ public class OffererProtocol implements Protocol {
taskRunner.addTasks(
CreateAndSignPayoutTx.class,
VerifyTakeOfferFeePayment.class,
SendBankTransferStartedMessage.class
SendFiatTransferStartedMessage.class
);
taskRunner.run();
}
@ -195,6 +196,7 @@ public class OffererProtocol implements Protocol {
this::handleTaskRunnerFault);
taskRunner.addTasks(ProcessPayoutTxPublishedMessage.class);
taskRunner.addTasks(CommitPayoutTx.class);
taskRunner.run();
}
@ -216,8 +218,8 @@ public class OffererProtocol implements Protocol {
else if (tradeMessage instanceof RequestDepositTxInputsMessage) {
handleRequestDepositTxInputsMessage((RequestDepositTxInputsMessage) tradeMessage, sender);
}
else if (tradeMessage instanceof RequestOffererPublishDepositTxMessage) {
handleRequestOffererPublishDepositTxMessage((RequestOffererPublishDepositTxMessage) tradeMessage);
else if (tradeMessage instanceof RequestPublishDepositTxMessage) {
handleRequestPublishDepositTxMessage((RequestPublishDepositTxMessage) tradeMessage);
}
else if (tradeMessage instanceof PayoutTxPublishedMessage) {
handlePayoutTxPublishedMessage((PayoutTxPublishedMessage) tradeMessage);

View File

@ -0,0 +1,49 @@
/*
* 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.offerer.tasks;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.OffererTrade;
import org.bitcoinj.core.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CommitPayoutTx extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(CommitPayoutTx.class);
public CommitPayoutTx(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, offererTradeProcessModel);
}
@Override
protected void doRun() {
try {
Transaction transaction = offererTradeProcessModel.getTradeWalletService().commitTx(offererTrade.getPayoutTx());
offererTrade.setPayoutTx(transaction);
complete();
} catch (Throwable t) {
t.printStackTrace();
offererTrade.setThrowable(t);
failed(t);
}
}
}

View File

@ -19,7 +19,7 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.OffererTrade;
import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -27,17 +27,17 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.*;
import static io.bitsquare.util.Validator.*;
public class ProcessRequestOffererPublishDepositTxMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(ProcessRequestOffererPublishDepositTxMessage.class);
public class ProcessRequestPublishDepositTxMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(ProcessRequestPublishDepositTxMessage.class);
public ProcessRequestOffererPublishDepositTxMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
public ProcessRequestPublishDepositTxMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, offererTradeProcessModel);
}
@Override
protected void doRun() {
try {
RequestOffererPublishDepositTxMessage message = (RequestOffererPublishDepositTxMessage) offererTradeProcessModel.getTradeMessage();
RequestPublishDepositTxMessage message = (RequestPublishDepositTxMessage) offererTradeProcessModel.getTradeMessage();
checkTradeId(offererTradeProcessModel.getId(), message);
checkNotNull(message);

View File

@ -25,10 +25,10 @@ import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SendDepositTxToTaker extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendDepositTxToTaker.class);
public class SendDepositTxPublishedMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendDepositTxPublishedMessage.class);
public SendDepositTxToTaker(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
public SendDepositTxPublishedMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, offererTradeProcessModel);
}

View File

@ -25,10 +25,10 @@ import io.bitsquare.trade.protocol.trade.messages.FiatTransferStartedMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SendBankTransferStartedMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendBankTransferStartedMessage.class);
public class SendFiatTransferStartedMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendFiatTransferStartedMessage.class);
public SendBankTransferStartedMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
public SendFiatTransferStartedMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, offererTradeProcessModel);
}

View File

@ -25,10 +25,10 @@ import io.bitsquare.trade.protocol.trade.messages.RequestTakerDepositPaymentMess
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class RequestTakerDepositPayment extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(RequestTakerDepositPayment.class);
public class SendRequestTakerDepositPaymentMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendRequestTakerDepositPaymentMessage.class);
public RequestTakerDepositPayment(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
public SendRequestTakerDepositPaymentMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, offererTradeProcessModel);
}

View File

@ -35,12 +35,12 @@ import io.bitsquare.trade.protocol.trade.taker.tasks.CreateTakeOfferFeeTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessDepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendPayoutTxToOfferer;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendPayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendSignedTakerDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.SendRequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.SignAndPublishPayoutTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.TakerCommitDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.TakerCreatesAndSignsDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.CommitDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.CreateAndSignDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.VerifyOfferFeePayment;
import io.bitsquare.trade.protocol.trade.taker.tasks.VerifyOffererAccount;
@ -123,8 +123,8 @@ public class TakerProtocol implements Protocol {
ProcessRequestTakerDepositPaymentMessage.class,
VerifyOffererAccount.class,
CreateAndSignContract.class,
TakerCreatesAndSignsDepositTx.class,
SendSignedTakerDepositTx.class
CreateAndSignDepositTx.class,
SendRequestPublishDepositTxMessage.class
);
taskRunner.run();
}
@ -138,7 +138,7 @@ public class TakerProtocol implements Protocol {
taskRunner.addTasks(
ProcessDepositTxPublishedMessage.class,
TakerCommitDepositTx.class
CommitDepositTx.class
);
taskRunner.run();
}
@ -175,7 +175,7 @@ public class TakerProtocol implements Protocol {
taskRunner.addTasks(
SignAndPublishPayoutTx.class,
VerifyOfferFeePayment.class,
SendPayoutTxToOfferer.class
SendPayoutTxPublishedMessage.class
);
taskRunner.run();
}

View File

@ -25,10 +25,10 @@ import org.bitcoinj.core.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TakerCommitDepositTx extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(TakerCommitDepositTx.class);
public class CommitDepositTx extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(CommitDepositTx.class);
public TakerCommitDepositTx(TaskRunner taskHandler, TakerTrade model) {
public CommitDepositTx(TaskRunner taskHandler, TakerTrade model) {
super(taskHandler, model);
}
@ -36,7 +36,7 @@ public class TakerCommitDepositTx extends TakerTradeTask {
protected void doRun() {
try {
// To access tx confidence we need to add that tx into our wallet.
Transaction depositTx = takerTradeProcessModel.getTradeWalletService().commitsDepositTx(takerTrade.getDepositTx());
Transaction depositTx = takerTradeProcessModel.getTradeWalletService().commitTx(takerTrade.getDepositTx());
takerTrade.setDepositTx(depositTx);

View File

@ -27,10 +27,10 @@ import org.bitcoinj.core.Coin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TakerCreatesAndSignsDepositTx extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(TakerCreatesAndSignsDepositTx.class);
public class CreateAndSignDepositTx extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(CreateAndSignDepositTx.class);
public TakerCreatesAndSignsDepositTx(TaskRunner taskHandler, TakerTrade model) {
public CreateAndSignDepositTx(TaskRunner taskHandler, TakerTrade model) {
super(taskHandler, model);
}

View File

@ -25,10 +25,10 @@ import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SendPayoutTxToOfferer extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendPayoutTxToOfferer.class);
public class SendPayoutTxPublishedMessage extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendPayoutTxPublishedMessage.class);
public SendPayoutTxToOfferer(TaskRunner taskHandler, TakerTrade model) {
public SendPayoutTxPublishedMessage(TaskRunner taskHandler, TakerTrade model) {
super(taskHandler, model);
}

View File

@ -40,13 +40,13 @@ public class SendRequestDepositTxInputsMessage extends TakerTradeTask {
protected void doRun() {
try {
assert takerTradeProcessModel.getTakeOfferFeeTx() != null;
RequestDepositTxInputsMessage msg = new RequestDepositTxInputsMessage(
RequestDepositTxInputsMessage message = new RequestDepositTxInputsMessage(
takerTradeProcessModel.getId(),
takerTradeProcessModel.getTakeOfferFeeTx().getHashAsString(),
takerTrade.getTradeAmount(),
takerTradeProcessModel.taker.getTradeWalletPubKey());
takerTradeProcessModel.getMessageService().sendMessage(takerTrade.getTradingPeer(), msg, new SendMessageListener() {
takerTradeProcessModel.getMessageService().sendMessage(takerTrade.getTradingPeer(), message, new SendMessageListener() {
@Override
public void handleResult() {
log.trace("Sending TakeOfferFeePayedMessage succeeded.");

View File

@ -20,22 +20,22 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.TakerTrade;
import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SendSignedTakerDepositTx extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendSignedTakerDepositTx.class);
public class SendRequestPublishDepositTxMessage extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendRequestPublishDepositTxMessage.class);
public SendSignedTakerDepositTx(TaskRunner taskHandler, TakerTrade model) {
public SendRequestPublishDepositTxMessage(TaskRunner taskHandler, TakerTrade model) {
super(taskHandler, model);
}
@Override
protected void doRun() {
try {
RequestOffererPublishDepositTxMessage tradeMessage = new RequestOffererPublishDepositTxMessage(
RequestPublishDepositTxMessage tradeMessage = new RequestPublishDepositTxMessage(
takerTradeProcessModel.getId(),
takerTradeProcessModel.taker.getFiatAccount(),
takerTradeProcessModel.taker.getAccountId(),
@ -56,7 +56,7 @@ public class SendSignedTakerDepositTx extends TakerTradeTask {
@Override
public void handleFault() {
appendToErrorMessage("Sending RequestOffererDepositPublicationMessage failed");
appendToErrorMessage("Sending RequestOffererPublishDepositTxMessage failed");
takerTrade.setErrorMessage(errorMessage);
takerTrade.setProcessState(TakerTrade.TakerProcessState.MESSAGE_SENDING_FAILED);

View File

@ -34,9 +34,8 @@ public class VerifyOffererAccount extends TakerTradeTask {
protected void doRun() {
try {
if (takerTradeProcessModel.getBlockChainService().verifyAccountRegistration()) {
if (takerTradeProcessModel.getBlockChainService().isAccountBlackListed(takerTradeProcessModel.offerer.getAccountId(), takerTradeProcessModel
.offerer
.getFiatAccount())) {
if (takerTradeProcessModel.getBlockChainService().isAccountBlackListed(takerTradeProcessModel.offerer.getAccountId(),
takerTradeProcessModel.offerer.getFiatAccount())) {
failed("Taker is blacklisted.");
}
else {

View File

@ -3,7 +3,7 @@ Binary build instructions with Update FX:
Binary build:
1. Set version numbers in UpdateProcess, BitsquareAppMain and pom files. Check in changes.
2. Remove previous build files under gui/updatefx. Use wallet file form backup if not there. Run setup.sh. Key in UpdateProcess must be same as reported in
2. Remove previous build files under core/updatefx. Use wallet file form backup if not there. Run setup.sh. Key in UpdateProcess must be same as reported in
console.
3. Run create_app.sh
4. Upload index to server

View File

@ -21,9 +21,9 @@ $JAVA_HOME/bin/javapackager \
-name Bitsquare \
-title Bitsquare \
-vendor Bitsquare \
-outdir gui/deploy \
-srcfiles gui/updatefx/builds/processed/$buildVersion.jar \
-appclass io.bitsquare.app.gui.BitsquareAppMain \
-outdir core/deploy \
-srcfiles core/updatefx/builds/processed/$buildVersion.jar \
-appclass io.bitsquare.app.core.BitsquareAppMain \
-outfile Bitsquare
cd package/linux

View File

@ -3,9 +3,9 @@
# setup dirs
cd ../../
mkdir gui/updatefx
mkdir gui/updatefx/builds
mkdir gui/updatefx/builds/processed
mkdir gui/deploy
mkdir core/updatefx
mkdir core/updatefx/builds
mkdir core/updatefx/builds/processed
mkdir core/deploy
cd package/linux

View File

@ -35,7 +35,7 @@
<key>JVMRuntime</key>
<string>..</string>
<key>JVMMainClassName</key>
<string>io.bitsquare.app.gui.BitsquareAppMain</string>
<string>io.bitsquare.app.core.BitsquareAppMain</string>
<key>JVMAppClasspath</key>
<string></string>
<key>JVMMainJarName</key>

View File

@ -35,7 +35,7 @@
<key>JVMRuntime</key>
<string>..</string>
<key>JVMMainClassName</key>
<string>io.bitsquare.app.gui.BitsquareAppMain</string>
<string>io.bitsquare.app.core.BitsquareAppMain</string>
<key>JVMAppClasspath</key>
<string></string>
<key>JVMMainJarName</key>

View File

@ -5,10 +5,10 @@ cd ../../
set -e
# Extract the version number. buildVersion is used for ever increasing integer at UpdateFX. fullVersion contains major and minor version + buildVersion
buildVersion=$( sed -n 's/^.*final int BUILD_VERSION = //p' gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java )
buildVersion=$( sed -n 's/^.*final int BUILD_VERSION = //p' core/src/main/java/io/bitsquare/app/UpdateProcess.java )
# remove trailing;
buildVersion="${buildVersion:0:${#buildVersion}-1}"
fullVersion=$( sed -n 's/^.*final String VERSION = "//p' gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java )
fullVersion=$( sed -n 's/^.*final String VERSION = "//p' core/src/main/java/io/bitsquare/app/BitsquareAppMain.java )
# remove trailing ";
fullVersion="${fullVersion:0:${#fullVersion}-2}".$buildVersion
@ -20,9 +20,9 @@ sed "s|JAR_NAME_STRING_GOES_HERE|$buildVersion.jar|" package/mac/Info.template.p
mvn clean package -DskipTests -Dmaven.javadoc.skip=true
cp gui/target/shaded.jar gui/updatefx/builds/$buildVersion.jar
cp core/target/shaded.jar core/updatefx/builds/$buildVersion.jar
java -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ gui/updatefx
java -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ core/updatefx
$JAVA_HOME/bin/javapackager \
-deploy \
@ -35,9 +35,9 @@ $JAVA_HOME/bin/javapackager \
-name Bitsquare \
-title Bitsquare \
-vendor Bitsquare \
-outdir gui/deploy \
-srcfiles gui/updatefx/builds/processed/$buildVersion.jar \
-appclass io.bitsquare.app.gui.BitsquareAppMain \
-outdir core/deploy \
-srcfiles core/updatefx/builds/processed/$buildVersion.jar \
-appclass io.bitsquare.app.core.BitsquareAppMain \
-outfile Bitsquare
cd package/mac

View File

@ -2,14 +2,14 @@
# setup dirs
cd ../../
mkdir gui/updatefx
mkdir gui/updatefx/builds
mkdir gui/updatefx/builds/processed
mkdir gui/updatefx/site
mkdir gui/deploy
mkdir core/updatefx
mkdir core/updatefx/builds
mkdir core/updatefx/builds/processed
mkdir core/updatefx/site
mkdir core/deploy
# create key/wallet. Copy wallet key to UpdateProcess and use wallet for other OS builds
java -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ gui/updatefx
java -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ core/updatefx
cd package/mac

View File

@ -5,13 +5,13 @@ cd ../../
set -e
# Extract the version number. buildVersion is used for ever increasing integer at UpdateFX. fullVersion contains major and minor version + buildVersion
buildVersion=$( sed -n 's/^.*final int BUILD_VERSION = //p' gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java )
buildVersion=$( sed -n 's/^.*final int BUILD_VERSION = //p' core/src/main/java/io/bitsquare/app/UpdateProcess.java )
# remove trailing;
buildVersion="${buildVersion:0:${#buildVersion}-1}"
echo buildVersion = $buildVersion
mvn clean package -DskipTests -Dmaven.javadoc.skip=true
cp gui/target/shaded.jar gui/updatefx/builds/$buildVersion.jar
java -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ gui/updatefx
cp core/target/shaded.jar core/updatefx/builds/$buildVersion.jar
java -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ core/updatefx
cd package/mac

View File

@ -8,9 +8,9 @@ cd ..\..\
:: 64 bit build
:: Needs Inno Setup 5 or later (http://www.jrsoftware.org/isdl.php)
:: Build with jdk1.8.0_40 fails but jdk1.8.0_3 works
call "C:\Program Files\Java\jdk1.8.0_31\bin\javapackager.exe" -deploy -BappVersion=0.1.1 -native exe -name Bitsquare -title Bitsquare -vendor Bitsquare -outdir gui\deploy -appclass io.bitsquare.app.gui.BitsquareAppMain -srcfiles "gui\updatefx\builds\processed\1.jar" -outfile Bitsquare -Bruntime="C:\Program Files\Java\jdk1.8.0_31\jre"
call "C:\Program Files\Java\jdk1.8.0_31\bin\javapackager.exe" -deploy -BappVersion=0.1.1 -native exe -name Bitsquare -title Bitsquare -vendor Bitsquare -outdir core\deploy -appclass io.bitsquare.app.core.BitsquareAppMain -srcfiles "core\updatefx\builds\processed\1.jar" -outfile Bitsquare -Bruntime="C:\Program Files\Java\jdk1.8.0_31\jre"
:: 32 bit build
:: call "C:\Program Files (x86)\Java\jdk1.8.0_31\bin\javapackager.exe" -deploy -BappVersion=0.1.1 -native exe -name Bitsquare -title Bitsquare -vendor Bitsquare -outdir gui\deploy -appclass io.bitsquare.app.gui.BitsquareAppMain -srcfiles "gui\updatefx\builds\processed\1.jar" -outfile Bitsquare -Bruntime="C:\Program Files (x86)\Java\jdk1.8.0_31\jre"
:: call "C:\Program Files (x86)\Java\jdk1.8.0_31\bin\javapackager.exe" -deploy -BappVersion=0.1.1 -native exe -name Bitsquare -title Bitsquare -vendor Bitsquare -outdir core\deploy -appclass io.bitsquare.app.core.BitsquareAppMain -srcfiles "core\updatefx\builds\processed\1.jar" -outfile Bitsquare -Bruntime="C:\Program Files (x86)\Java\jdk1.8.0_31\jre"
cd package\windows

View File

@ -1,9 +1,9 @@
cd ..\..\
:: setup dirs
mkdir gui\updatefx
mkdir gui\updatefx\builds
mkdir gui\updatefx\builds\processed
mkdir gui\deploy
mkdir core\updatefx
mkdir core\updatefx\builds
mkdir core\updatefx\builds\processed
mkdir core\deploy
cd package\windows

View File

@ -6,7 +6,7 @@
<groupId>io.bitsquare</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>0.1.2-SNAPSHOT</version>
<version>0.1.3-SNAPSHOT</version>
<description>The decentralized bitcoin exchange</description>
<url>https://bitsquare.io</url>