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> <parent>
<artifactId>parent</artifactId> <artifactId>parent</artifactId>
<groupId>io.bitsquare</groupId> <groupId>io.bitsquare</groupId>
<version>0.1.2-SNAPSHOT</version> <version>0.1.3-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

View file

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

View file

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

View file

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

View file

@ -17,6 +17,7 @@
package io.bitsquare.app; package io.bitsquare.app;
import io.bitsquare.app.gui.BitsquareAppMain;
import io.bitsquare.util.Utilities; import io.bitsquare.util.Utilities;
import com.google.inject.Inject; import com.google.inject.Inject;
@ -101,7 +102,7 @@ public class UpdateProcess {
}); });
timeoutTimer.start(); 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(); 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, Updater updater = new Updater(UPDATES_BASE_URL, agent, BUILD_VERSION, dataDirPath, ROOT_CLASS_PATH,
UPDATE_SIGNING_KEYS, UPDATE_SIGNING_THRESHOLD) { UPDATE_SIGNING_KEYS, UPDATE_SIGNING_THRESHOLD) {

View file

@ -15,9 +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.app; package io.bitsquare.app.gui;
import io.bitsquare.BitsquareException; 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.btc.BitcoinNetwork;
import io.bitsquare.p2p.BootstrapNodes; import io.bitsquare.p2p.BootstrapNodes;
import io.bitsquare.p2p.Node; import io.bitsquare.p2p.Node;

View file

@ -396,16 +396,16 @@ public class TradeWalletService {
} }
// Commits the tx to the wallet and returns that // Commits the tx to the wallet and returns that
public Transaction commitsDepositTx(Transaction publishedDepositTx) throws VerificationException { public Transaction commitTx(Transaction tx) throws VerificationException {
log.trace("takerCommitsDepositTx called"); log.trace("commitTx called");
log.trace("publishedDepositTx " + publishedDepositTx.toString()); log.trace("tx " + tx.toString());
// We need to recreate the tx we get a null pointer otherwise // We need to recreate the tx we get a null pointer otherwise
Transaction depositTx = new Transaction(params, publishedDepositTx.bitcoinSerialize()); Transaction transaction = new Transaction(params, tx.bitcoinSerialize());
log.trace("depositTx " + depositTx.toString()); log.trace("transaction " + transaction.toString());
wallet.receivePending(depositTx, null, true); wallet.receivePending(transaction, null, true);
return depositTx; return transaction;
} }
// Returns local existing wallet 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.CreateOffererDepositTxInputs;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestTakerDepositPayment; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendRequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxToTaker; 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.SignAndPublishDepositTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakeOfferFeePayment; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakeOfferFeePayment;
@ -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.ProcessDepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestTakerDepositPaymentMessage; 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.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.SignAndPublishPayoutTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.TakerCommitDepositTx; import io.bitsquare.trade.protocol.trade.taker.tasks.CommitDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.TakerCreatesAndSignsDepositTx; 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.VerifyOfferFeePayment;
import io.bitsquare.trade.protocol.trade.taker.tasks.VerifyOffererAccount; import io.bitsquare.trade.protocol.trade.taker.tasks.VerifyOffererAccount;
@ -103,17 +103,17 @@ public class DebugView extends InitializableView {
OffererProtocol.class, OffererProtocol.class,
ProcessRequestDepositTxInputsMessage.class, ProcessRequestDepositTxInputsMessage.class,
CreateOffererDepositTxInputs.class, CreateOffererDepositTxInputs.class,
RequestTakerDepositPayment.class, SendRequestTakerDepositPaymentMessage.class,
ProcessRequestOffererPublishDepositTxMessage.class, ProcessRequestPublishDepositTxMessage.class,
VerifyTakerAccount.class, VerifyTakerAccount.class,
VerifyAndSignContract.class, VerifyAndSignContract.class,
SignAndPublishDepositTx.class, SignAndPublishDepositTx.class,
SendDepositTxToTaker.class, SendDepositTxPublishedMessage.class,
CreateAndSignPayoutTx.class, CreateAndSignPayoutTx.class,
VerifyTakeOfferFeePayment.class, VerifyTakeOfferFeePayment.class,
SendBankTransferStartedMessage.class, SendFiatTransferStartedMessage.class,
ProcessPayoutTxPublishedMessage.class, ProcessPayoutTxPublishedMessage.class,
Boolean.class, /* used as seperator*/ Boolean.class, /* used as seperator*/
@ -127,17 +127,17 @@ public class DebugView extends InitializableView {
ProcessRequestTakerDepositPaymentMessage.class, ProcessRequestTakerDepositPaymentMessage.class,
VerifyOffererAccount.class, VerifyOffererAccount.class,
CreateAndSignContract.class, CreateAndSignContract.class,
TakerCreatesAndSignsDepositTx.class, CreateAndSignDepositTx.class,
SendSignedTakerDepositTx.class, SendRequestPublishDepositTxMessage.class,
ProcessDepositTxPublishedMessage.class, ProcessDepositTxPublishedMessage.class,
TakerCommitDepositTx.class, CommitDepositTx.class,
ProcessFiatTransferStartedMessage.class, ProcessFiatTransferStartedMessage.class,
SignAndPublishPayoutTx.class, SignAndPublishPayoutTx.class,
VerifyOfferFeePayment.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); root.getSelectionModel().selectedItemProperty().addListener(tabChangeListener);
navigation.addListener(navigationListener); navigation.addListener(navigationListener);
navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class); // navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class);
/* if (tradeManager.getPendingTrades().size() == 0) /* if (tradeManager.getPendingTrades().size() == 0)
navigation.navigateTo(MainView.class, PortfolioView.class, OffersView.class); 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.Help;
import io.bitsquare.gui.main.help.HelpId; import io.bitsquare.gui.main.help.HelpId;
import io.bitsquare.gui.main.portfolio.PortfolioView; 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.main.trade.TradeView;
import io.bitsquare.gui.util.ImageUtil; import io.bitsquare.gui.util.ImageUtil;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
@ -292,10 +292,10 @@ public class CreateOfferView extends ActivatableViewAndModel<AnchorPane, CreateO
model.showTransactionPublishedScreen.addListener((o, oldValue, newValue) -> { model.showTransactionPublishedScreen.addListener((o, oldValue, newValue) -> {
// TODO temp just for testing // TODO temp just for testing
newValue = false; // newValue = false;
close(); // close();
navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class); //navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class, OffersView.class);
if (newValue) { if (newValue) {
overlayManager.blurContent(); overlayManager.blurContent();
@ -315,6 +315,7 @@ public class CreateOfferView extends ActivatableViewAndModel<AnchorPane, CreateO
getProperties().put("type", "CLOSE"); getProperties().put("type", "CLOSE");
try { try {
close(); close();
navigation.navigateTo(MainView.class, PortfolioView.class, OffersView.class);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

View file

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

View file

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

View file

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

View file

@ -155,6 +155,7 @@ public class TradeManager {
offerBookService.addOffer(offer, offerBookService.addOffer(offer,
() -> log.debug("Successful removed open offer from DHT"), () -> log.debug("Successful removed open offer from DHT"),
(message, throwable) -> log.error("Remove open offer from DHT failed. " + message)); (message, throwable) -> log.error("Remove open offer from DHT failed. " + message));
setupDepositPublishedListener(offererTrade);
offererTrade.setStorage(openOfferTradesStorage); offererTrade.setStorage(openOfferTradesStorage);
initTrade(offererTrade); initTrade(offererTrade);
@ -163,9 +164,9 @@ public class TradeManager {
// We continue an interrupted trade. // 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 // 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. // continue the trade, but that might fail.
initTrade(trade);
trade.updateDepositTxFromWallet(tradeWalletService);
trade.setStorage(pendingTradesStorage); trade.setStorage(pendingTradesStorage);
trade.updateDepositTxFromWallet(tradeWalletService);
initTrade(trade);
} }
// 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
@ -260,7 +261,11 @@ public class TradeManager {
OffererTrade offererTrade = new OffererTrade(offer, openOfferTradesStorage); OffererTrade offererTrade = new OffererTrade(offer, openOfferTradesStorage);
openOfferTrades.add(offererTrade); openOfferTrades.add(offererTrade);
initTrade(offererTrade); initTrade(offererTrade);
setupDepositPublishedListener(offererTrade);
resultHandler.handleResult(transaction);
}
private void setupDepositPublishedListener(OffererTrade offererTrade) {
offererTrade.processStateProperty().addListener((ov, oldValue, newValue) -> { offererTrade.processStateProperty().addListener((ov, oldValue, newValue) -> {
log.debug("offererTrade state = " + newValue); log.debug("offererTrade state = " + newValue);
if (newValue == OffererTrade.OffererProcessState.DEPOSIT_PUBLISHED) { if (newValue == OffererTrade.OffererProcessState.DEPOSIT_PUBLISHED) {
@ -272,8 +277,6 @@ public class TradeManager {
offererTrade.setStorage(pendingTradesStorage); offererTrade.setStorage(pendingTradesStorage);
} }
}); });
resultHandler.handleResult(transaction);
} }
public void cancelOpenOffer(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) { public void cancelOpenOffer(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {

View file

@ -31,7 +31,7 @@ import java.util.List;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@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. // 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;
@ -45,16 +45,16 @@ public class RequestOffererPublishDepositTxMessage extends TradeMessage implemen
public final Transaction takersPreparedDepositTx; public final Transaction takersPreparedDepositTx;
public final List<TransactionOutput> takerConnectedOutputsForAllInputs; public final List<TransactionOutput> takerConnectedOutputsForAllInputs;
public RequestOffererPublishDepositTxMessage(String tradeId, public RequestPublishDepositTxMessage(String tradeId,
FiatAccount takerFiatAccount, FiatAccount takerFiatAccount,
String takerAccountId, String takerAccountId,
PublicKey takerP2PSigPublicKey, PublicKey takerP2PSigPublicKey,
PublicKey takerP2PEncryptPublicKey, PublicKey takerP2PEncryptPublicKey,
String takerContractAsJson, String takerContractAsJson,
String takerContractSignature, String takerContractSignature,
String takerPayoutAddressString, String takerPayoutAddressString,
Transaction takersPreparedDepositTx, Transaction takersPreparedDepositTx,
List<TransactionOutput> takerConnectedOutputsForAllInputs) { List<TransactionOutput> takerConnectedOutputsForAllInputs) {
super(tradeId); super(tradeId);
this.takerFiatAccount = takerFiatAccount; this.takerFiatAccount = takerFiatAccount;
this.takerAccountId = takerAccountId; 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.availability.messages.RequestIsOfferAvailableMessage;
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.RequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.messages.RequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage; import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.OffererProcessModel; 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.CreateAndSignPayoutTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateOffererDepositTxInputs; import io.bitsquare.trade.protocol.trade.offerer.tasks.CreateOffererDepositTxInputs;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessPayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestTakerDepositPayment; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendRequestTakerDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxToTaker; 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.SignAndPublishDepositTx;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyAndSignContract;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakeOfferFeePayment; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakeOfferFeePayment;
@ -134,28 +135,28 @@ public class OffererProtocol implements Protocol {
offererTrade.setLifeCycleState(OffererTrade.OffererLifeCycleState.OFFER_RESERVED); offererTrade.setLifeCycleState(OffererTrade.OffererLifeCycleState.OFFER_RESERVED);
TaskRunner<OffererTrade> taskRunner = new TaskRunner<>(offererTrade, TaskRunner<OffererTrade> taskRunner = new TaskRunner<>(offererTrade,
() -> log.debug("taskRunner at handleTakeOfferFeePayedMessage completed"), () -> log.debug("taskRunner at handleRequestDepositTxInputsMessage completed"),
this::handleTaskRunnerFault); this::handleTaskRunnerFault);
taskRunner.addTasks( taskRunner.addTasks(
ProcessRequestDepositTxInputsMessage.class, ProcessRequestDepositTxInputsMessage.class,
CreateOffererDepositTxInputs.class, CreateOffererDepositTxInputs.class,
RequestTakerDepositPayment.class SendRequestTakerDepositPaymentMessage.class
); );
taskRunner.run(); taskRunner.run();
} }
private void handleRequestOffererPublishDepositTxMessage(RequestOffererPublishDepositTxMessage tradeMessage) { private void handleRequestPublishDepositTxMessage(RequestPublishDepositTxMessage tradeMessage) {
offererTradeProcessModel.setTradeMessage(tradeMessage); offererTradeProcessModel.setTradeMessage(tradeMessage);
TaskRunner<OffererTrade> taskRunner = new TaskRunner<>(offererTrade, TaskRunner<OffererTrade> taskRunner = new TaskRunner<>(offererTrade,
() -> log.debug("taskRunner at handleRequestOffererPublishDepositTxMessage completed"), () -> log.debug("taskRunner at handleRequestPublishDepositTxMessage completed"),
this::handleTaskRunnerFault); this::handleTaskRunnerFault);
taskRunner.addTasks( taskRunner.addTasks(
ProcessRequestOffererPublishDepositTxMessage.class, ProcessRequestPublishDepositTxMessage.class,
VerifyTakerAccount.class, VerifyTakerAccount.class,
VerifyAndSignContract.class, VerifyAndSignContract.class,
SignAndPublishDepositTx.class, SignAndPublishDepositTx.class,
SendDepositTxToTaker.class SendDepositTxPublishedMessage.class
); );
taskRunner.run(); taskRunner.run();
} }
@ -173,7 +174,7 @@ public class OffererProtocol implements Protocol {
taskRunner.addTasks( taskRunner.addTasks(
CreateAndSignPayoutTx.class, CreateAndSignPayoutTx.class,
VerifyTakeOfferFeePayment.class, VerifyTakeOfferFeePayment.class,
SendBankTransferStartedMessage.class SendFiatTransferStartedMessage.class
); );
taskRunner.run(); taskRunner.run();
} }
@ -195,6 +196,7 @@ public class OffererProtocol implements Protocol {
this::handleTaskRunnerFault); this::handleTaskRunnerFault);
taskRunner.addTasks(ProcessPayoutTxPublishedMessage.class); taskRunner.addTasks(ProcessPayoutTxPublishedMessage.class);
taskRunner.addTasks(CommitPayoutTx.class);
taskRunner.run(); taskRunner.run();
} }
@ -216,8 +218,8 @@ public class OffererProtocol implements Protocol {
else if (tradeMessage instanceof RequestDepositTxInputsMessage) { else if (tradeMessage instanceof RequestDepositTxInputsMessage) {
handleRequestDepositTxInputsMessage((RequestDepositTxInputsMessage) tradeMessage, sender); handleRequestDepositTxInputsMessage((RequestDepositTxInputsMessage) tradeMessage, sender);
} }
else if (tradeMessage instanceof RequestOffererPublishDepositTxMessage) { else if (tradeMessage instanceof RequestPublishDepositTxMessage) {
handleRequestOffererPublishDepositTxMessage((RequestOffererPublishDepositTxMessage) tradeMessage); handleRequestPublishDepositTxMessage((RequestPublishDepositTxMessage) tradeMessage);
} }
else if (tradeMessage instanceof PayoutTxPublishedMessage) { else if (tradeMessage instanceof PayoutTxPublishedMessage) {
handlePayoutTxPublishedMessage((PayoutTxPublishedMessage) tradeMessage); 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.common.taskrunner.TaskRunner;
import io.bitsquare.trade.OffererTrade; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -27,17 +27,17 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.*; import static com.google.common.base.Preconditions.*;
import static io.bitsquare.util.Validator.*; import static io.bitsquare.util.Validator.*;
public class ProcessRequestOffererPublishDepositTxMessage extends OffererTradeTask { public class ProcessRequestPublishDepositTxMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(ProcessRequestOffererPublishDepositTxMessage.class); private static final Logger log = LoggerFactory.getLogger(ProcessRequestPublishDepositTxMessage.class);
public ProcessRequestOffererPublishDepositTxMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) { public ProcessRequestPublishDepositTxMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, offererTradeProcessModel); super(taskHandler, offererTradeProcessModel);
} }
@Override @Override
protected void doRun() { protected void doRun() {
try { try {
RequestOffererPublishDepositTxMessage message = (RequestOffererPublishDepositTxMessage) offererTradeProcessModel.getTradeMessage(); RequestPublishDepositTxMessage message = (RequestPublishDepositTxMessage) offererTradeProcessModel.getTradeMessage();
checkTradeId(offererTradeProcessModel.getId(), message); checkTradeId(offererTradeProcessModel.getId(), message);
checkNotNull(message); checkNotNull(message);

View file

@ -25,10 +25,10 @@ import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SendDepositTxToTaker extends OffererTradeTask { public class SendDepositTxPublishedMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendDepositTxToTaker.class); private static final Logger log = LoggerFactory.getLogger(SendDepositTxPublishedMessage.class);
public SendDepositTxToTaker(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) { public SendDepositTxPublishedMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SendBankTransferStartedMessage extends OffererTradeTask { public class SendFiatTransferStartedMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendBankTransferStartedMessage.class); private static final Logger log = LoggerFactory.getLogger(SendFiatTransferStartedMessage.class);
public SendBankTransferStartedMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) { public SendFiatTransferStartedMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class RequestTakerDepositPayment extends OffererTradeTask { public class SendRequestTakerDepositPaymentMessage extends OffererTradeTask {
private static final Logger log = LoggerFactory.getLogger(RequestTakerDepositPayment.class); private static final Logger log = LoggerFactory.getLogger(SendRequestTakerDepositPaymentMessage.class);
public RequestTakerDepositPayment(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) { public SendRequestTakerDepositPaymentMessage(TaskRunner taskHandler, OffererTrade offererTradeProcessModel) {
super(taskHandler, 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.ProcessDepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage; import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessFiatTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestTakerDepositPaymentMessage; 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.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.SignAndPublishPayoutTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.TakerCommitDepositTx; import io.bitsquare.trade.protocol.trade.taker.tasks.CommitDepositTx;
import io.bitsquare.trade.protocol.trade.taker.tasks.TakerCreatesAndSignsDepositTx; 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.VerifyOfferFeePayment;
import io.bitsquare.trade.protocol.trade.taker.tasks.VerifyOffererAccount; import io.bitsquare.trade.protocol.trade.taker.tasks.VerifyOffererAccount;
@ -123,8 +123,8 @@ public class TakerProtocol implements Protocol {
ProcessRequestTakerDepositPaymentMessage.class, ProcessRequestTakerDepositPaymentMessage.class,
VerifyOffererAccount.class, VerifyOffererAccount.class,
CreateAndSignContract.class, CreateAndSignContract.class,
TakerCreatesAndSignsDepositTx.class, CreateAndSignDepositTx.class,
SendSignedTakerDepositTx.class SendRequestPublishDepositTxMessage.class
); );
taskRunner.run(); taskRunner.run();
} }
@ -138,7 +138,7 @@ public class TakerProtocol implements Protocol {
taskRunner.addTasks( taskRunner.addTasks(
ProcessDepositTxPublishedMessage.class, ProcessDepositTxPublishedMessage.class,
TakerCommitDepositTx.class CommitDepositTx.class
); );
taskRunner.run(); taskRunner.run();
} }
@ -175,7 +175,7 @@ public class TakerProtocol implements Protocol {
taskRunner.addTasks( taskRunner.addTasks(
SignAndPublishPayoutTx.class, SignAndPublishPayoutTx.class,
VerifyOfferFeePayment.class, VerifyOfferFeePayment.class,
SendPayoutTxToOfferer.class SendPayoutTxPublishedMessage.class
); );
taskRunner.run(); taskRunner.run();
} }

View file

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

View file

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

View file

@ -40,13 +40,13 @@ public class SendRequestDepositTxInputsMessage extends TakerTradeTask {
protected void doRun() { protected void doRun() {
try { try {
assert takerTradeProcessModel.getTakeOfferFeeTx() != null; assert takerTradeProcessModel.getTakeOfferFeeTx() != null;
RequestDepositTxInputsMessage msg = new RequestDepositTxInputsMessage( RequestDepositTxInputsMessage message = new RequestDepositTxInputsMessage(
takerTradeProcessModel.getId(), takerTradeProcessModel.getId(),
takerTradeProcessModel.getTakeOfferFeeTx().getHashAsString(), takerTradeProcessModel.getTakeOfferFeeTx().getHashAsString(),
takerTrade.getTradeAmount(), takerTrade.getTradeAmount(),
takerTradeProcessModel.taker.getTradeWalletPubKey()); takerTradeProcessModel.taker.getTradeWalletPubKey());
takerTradeProcessModel.getMessageService().sendMessage(takerTrade.getTradingPeer(), msg, new SendMessageListener() { takerTradeProcessModel.getMessageService().sendMessage(takerTrade.getTradingPeer(), message, new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {
log.trace("Sending TakeOfferFeePayedMessage succeeded."); 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.common.taskrunner.TaskRunner;
import io.bitsquare.p2p.listener.SendMessageListener; import io.bitsquare.p2p.listener.SendMessageListener;
import io.bitsquare.trade.TakerTrade; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class SendSignedTakerDepositTx extends TakerTradeTask { public class SendRequestPublishDepositTxMessage extends TakerTradeTask {
private static final Logger log = LoggerFactory.getLogger(SendSignedTakerDepositTx.class); private static final Logger log = LoggerFactory.getLogger(SendRequestPublishDepositTxMessage.class);
public SendSignedTakerDepositTx(TaskRunner taskHandler, TakerTrade model) { public SendRequestPublishDepositTxMessage(TaskRunner taskHandler, TakerTrade model) {
super(taskHandler, model); super(taskHandler, model);
} }
@Override @Override
protected void doRun() { protected void doRun() {
try { try {
RequestOffererPublishDepositTxMessage tradeMessage = new RequestOffererPublishDepositTxMessage( RequestPublishDepositTxMessage tradeMessage = new RequestPublishDepositTxMessage(
takerTradeProcessModel.getId(), takerTradeProcessModel.getId(),
takerTradeProcessModel.taker.getFiatAccount(), takerTradeProcessModel.taker.getFiatAccount(),
takerTradeProcessModel.taker.getAccountId(), takerTradeProcessModel.taker.getAccountId(),
@ -56,7 +56,7 @@ public class SendSignedTakerDepositTx extends TakerTradeTask {
@Override @Override
public void handleFault() { public void handleFault() {
appendToErrorMessage("Sending RequestOffererDepositPublicationMessage failed"); appendToErrorMessage("Sending RequestOffererPublishDepositTxMessage failed");
takerTrade.setErrorMessage(errorMessage); takerTrade.setErrorMessage(errorMessage);
takerTrade.setProcessState(TakerTrade.TakerProcessState.MESSAGE_SENDING_FAILED); takerTrade.setProcessState(TakerTrade.TakerProcessState.MESSAGE_SENDING_FAILED);

View file

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

View file

@ -3,7 +3,7 @@ Binary build instructions with Update FX:
Binary build: Binary build:
1. Set version numbers in UpdateProcess, BitsquareAppMain and pom files. Check in changes. 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. console.
3. Run create_app.sh 3. Run create_app.sh
4. Upload index to server 4. Upload index to server

View file

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

View file

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

View file

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

View file

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

View file

@ -5,10 +5,10 @@ cd ../../
set -e set -e
# Extract the version number. buildVersion is used for ever increasing integer at UpdateFX. fullVersion contains major and minor version + buildVersion # 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; # remove trailing;
buildVersion="${buildVersion:0:${#buildVersion}-1}" 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 "; # remove trailing ";
fullVersion="${fullVersion:0:${#fullVersion}-2}".$buildVersion 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 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 \ $JAVA_HOME/bin/javapackager \
-deploy \ -deploy \
@ -35,9 +35,9 @@ $JAVA_HOME/bin/javapackager \
-name Bitsquare \ -name Bitsquare \
-title Bitsquare \ -title Bitsquare \
-vendor Bitsquare \ -vendor Bitsquare \
-outdir gui/deploy \ -outdir core/deploy \
-srcfiles gui/updatefx/builds/processed/$buildVersion.jar \ -srcfiles core/updatefx/builds/processed/$buildVersion.jar \
-appclass io.bitsquare.app.gui.BitsquareAppMain \ -appclass io.bitsquare.app.core.BitsquareAppMain \
-outfile Bitsquare -outfile Bitsquare
cd package/mac cd package/mac

View file

@ -2,14 +2,14 @@
# setup dirs # setup dirs
cd ../../ cd ../../
mkdir gui/updatefx mkdir core/updatefx
mkdir gui/updatefx/builds mkdir core/updatefx/builds
mkdir gui/updatefx/builds/processed mkdir core/updatefx/builds/processed
mkdir gui/updatefx/site mkdir core/updatefx/site
mkdir gui/deploy mkdir core/deploy
# create key/wallet. Copy wallet key to UpdateProcess and use wallet for other OS builds # 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 cd package/mac

View file

@ -5,13 +5,13 @@ cd ../../
set -e set -e
# Extract the version number. buildVersion is used for ever increasing integer at UpdateFX. fullVersion contains major and minor version + buildVersion # 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; # remove trailing;
buildVersion="${buildVersion:0:${#buildVersion}-1}" buildVersion="${buildVersion:0:${#buildVersion}-1}"
echo buildVersion = $buildVersion echo buildVersion = $buildVersion
mvn clean package -DskipTests -Dmaven.javadoc.skip=true 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
cd package/mac cd package/mac

View file

@ -8,9 +8,9 @@ cd ..\..\
:: 64 bit build :: 64 bit build
:: Needs Inno Setup 5 or later (http://www.jrsoftware.org/isdl.php) :: 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 :: 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 :: 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 cd package\windows

View file

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

View file

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