mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-06-20 12:54:37 -04:00
Version 0.1.3 interrupted trade process working fine
This commit is contained in:
parent
0008202037
commit
aa1e141900
39 changed files with 209 additions and 148 deletions
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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;
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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,9 +292,9 @@ 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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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,7 +45,7 @@ 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,
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.");
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
2
pom.xml
2
pom.xml
|
@ -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>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue