Add DHTService

This commit is contained in:
Manfred Karrer 2015-03-19 21:52:43 +01:00
parent 264f37a73f
commit a2654d20b9
86 changed files with 372 additions and 282 deletions

View file

@ -18,6 +18,11 @@
package io.bitsquare.gui; package io.bitsquare.gui;
import io.bitsquare.BitsquareModule; import io.bitsquare.BitsquareModule;
import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.ViewFactory;
import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.common.viewfx.view.fxml.FxmlViewLoader;
import io.bitsquare.common.viewfx.view.guice.InjectorViewFactory;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
import io.bitsquare.gui.main.MainView; import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
@ -29,11 +34,6 @@ import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.gui.util.validation.PasswordValidator; import io.bitsquare.gui.util.validation.PasswordValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.OfferBook; import io.bitsquare.offer.OfferBook;
import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.ViewFactory;
import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.common.viewfx.view.fxml.FxmlViewLoader;
import io.bitsquare.common.viewfx.view.guice.InjectorViewFactory;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import com.google.inject.name.Names; import com.google.inject.name.Names;

View file

@ -17,11 +17,11 @@
package io.bitsquare.gui; package io.bitsquare.gui;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewPath;
import io.bitsquare.gui.main.MainView; import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.trade.BuyView; import io.bitsquare.gui.main.trade.BuyView;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewPath;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -18,6 +18,11 @@
package io.bitsquare.gui.main; package io.bitsquare.gui.main;
import io.bitsquare.BitsquareException; import io.bitsquare.BitsquareException;
import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.InitializableView;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.gui.Navigation; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.OverlayManager;
@ -32,11 +37,6 @@ import io.bitsquare.gui.main.settings.SettingsView;
import io.bitsquare.gui.main.trade.BuyView; import io.bitsquare.gui.main.trade.BuyView;
import io.bitsquare.gui.main.trade.SellView; import io.bitsquare.gui.main.trade.SellView;
import io.bitsquare.gui.util.Transitions; import io.bitsquare.gui.util.Transitions;
import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.InitializableView;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;

View file

@ -17,27 +17,27 @@
package io.bitsquare.gui.main; package io.bitsquare.gui.main;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.app.UpdateProcess; import io.bitsquare.app.UpdateProcess;
import io.bitsquare.arbitration.Arbitrator; import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService; import io.bitsquare.arbitration.ArbitratorMessageService;
import io.bitsquare.arbitration.Reputation; import io.bitsquare.arbitration.Reputation;
import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.fiat.FiatAccountType;
import io.bitsquare.btc.BitcoinNetwork; import io.bitsquare.btc.BitcoinNetwork;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.fiat.FiatAccountType;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.CountryUtil; import io.bitsquare.locale.CountryUtil;
import io.bitsquare.locale.LanguageUtil; import io.bitsquare.locale.LanguageUtil;
import io.bitsquare.network.BootstrapState; import io.bitsquare.network.BootstrapState;
import io.bitsquare.network.ClientNode; import io.bitsquare.network.ClientNode;
import io.bitsquare.network.MessageService;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
import io.bitsquare.network.TradeMessageService; import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.util.DSAKeyUtil; import io.bitsquare.util.DSAKeyUtil;
import io.bitsquare.common.viewfx.model.ViewModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.core.ECKey; import org.bitcoinj.core.ECKey;
@ -102,7 +102,7 @@ class MainViewModel implements ViewModel {
private final User user; private final User user;
private final WalletService walletService; private final WalletService walletService;
private final ClientNode clientNode; private final ClientNode clientNode;
private TradeMessageService tradeMessageService; private MessageService messageService;
private ArbitratorMessageService arbitratorMessageService; private ArbitratorMessageService arbitratorMessageService;
private final TradeManager tradeManager; private final TradeManager tradeManager;
private UpdateProcess updateProcess; private UpdateProcess updateProcess;
@ -111,14 +111,14 @@ class MainViewModel implements ViewModel {
private AccountSettings accountSettings; private AccountSettings accountSettings;
@Inject @Inject
public MainViewModel(User user, WalletService walletService, ClientNode clientNode, TradeMessageService tradeMessageService, public MainViewModel(User user, WalletService walletService, ClientNode clientNode, MessageService messageService,
ArbitratorMessageService arbitratorMessageService, ArbitratorMessageService arbitratorMessageService,
TradeManager tradeManager, BitcoinNetwork bitcoinNetwork, UpdateProcess updateProcess, TradeManager tradeManager, BitcoinNetwork bitcoinNetwork, UpdateProcess updateProcess,
BSFormatter formatter, Persistence persistence, AccountSettings accountSettings) { BSFormatter formatter, Persistence persistence, AccountSettings accountSettings) {
this.user = user; this.user = user;
this.walletService = walletService; this.walletService = walletService;
this.clientNode = clientNode; this.clientNode = clientNode;
this.tradeMessageService = tradeMessageService; this.messageService = messageService;
this.arbitratorMessageService = arbitratorMessageService; this.arbitratorMessageService = arbitratorMessageService;
this.tradeManager = tradeManager; this.tradeManager = tradeManager;
this.updateProcess = updateProcess; this.updateProcess = updateProcess;
@ -157,7 +157,7 @@ class MainViewModel implements ViewModel {
error -> log.error(error.toString()), error -> log.error(error.toString()),
() -> Platform.runLater(() -> setBitcoinNetworkSyncProgress(1.0))); () -> Platform.runLater(() -> setBitcoinNetworkSyncProgress(1.0)));
Observable<BootstrapState> messageObservable = clientNode.bootstrap(user.getMessageKeyPair(), tradeMessageService); Observable<BootstrapState> messageObservable = clientNode.bootstrap(user.getMessageKeyPair(), messageService);
messageObservable.publish(); messageObservable.publish();
messageObservable.subscribe( messageObservable.subscribe(
state -> Platform.runLater(() -> setBootstrapState(state)), state -> Platform.runLater(() -> setBootstrapState(state)),

View file

@ -17,16 +17,16 @@
package io.bitsquare.gui.main.account; package io.bitsquare.gui.main.account;
import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.account.arbitrator.ArbitratorSettingsView;
import io.bitsquare.gui.main.account.settings.AccountSettingsView;
import io.bitsquare.gui.main.account.setup.AccountSetupWizard;
import io.bitsquare.common.viewfx.view.ActivatableView; import io.bitsquare.common.viewfx.view.ActivatableView;
import io.bitsquare.common.viewfx.view.CachingViewLoader; import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View; import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.account.arbitrator.ArbitratorSettingsView;
import io.bitsquare.gui.main.account.settings.AccountSettingsView;
import io.bitsquare.gui.main.account.setup.AccountSetupWizard;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,8 +17,8 @@
package io.bitsquare.gui.main.account; package io.bitsquare.gui.main.account;
import io.bitsquare.user.User;
import io.bitsquare.common.viewfx.model.ViewModel; import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.user.User;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -17,12 +17,12 @@
package io.bitsquare.gui.main.account.arbitrator; package io.bitsquare.gui.main.account.arbitrator;
import io.bitsquare.gui.main.account.arbitrator.registration.ArbitratorRegistrationView;
import io.bitsquare.common.viewfx.view.AbstractView; import io.bitsquare.common.viewfx.view.AbstractView;
import io.bitsquare.common.viewfx.view.CachingViewLoader; import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View; import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.main.account.arbitrator.registration.ArbitratorRegistrationView;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,18 +17,18 @@
package io.bitsquare.gui.main.account.arbitrator.browser; package io.bitsquare.gui.main.account.arbitrator.browser;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.arbitration.Arbitrator; import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService; import io.bitsquare.arbitration.ArbitratorMessageService;
import io.bitsquare.arbitration.listeners.ArbitratorListener; import io.bitsquare.arbitration.listeners.ArbitratorListener;
import io.bitsquare.gui.main.account.arbitrator.profile.ArbitratorProfileView;
import io.bitsquare.locale.LanguageUtil;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.common.viewfx.view.ActivatableView; import io.bitsquare.common.viewfx.view.ActivatableView;
import io.bitsquare.common.viewfx.view.CachingViewLoader; import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View; import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.main.account.arbitrator.profile.ArbitratorProfileView;
import io.bitsquare.locale.LanguageUtil;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.AccountSettings;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -18,9 +18,9 @@
package io.bitsquare.gui.main.account.arbitrator.profile; package io.bitsquare.gui.main.account.arbitrator.profile;
import io.bitsquare.arbitration.Arbitrator; import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.common.viewfx.view.AbstractView; import io.bitsquare.common.viewfx.view.AbstractView;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.gui.util.BSFormatter;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -21,6 +21,8 @@ import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService; import io.bitsquare.arbitration.ArbitratorMessageService;
import io.bitsquare.arbitration.Reputation; import io.bitsquare.arbitration.Reputation;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.common.viewfx.view.ActivatableView;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.gui.components.confidence.ConfidenceProgressIndicator; import io.bitsquare.gui.components.confidence.ConfidenceProgressIndicator;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
@ -29,8 +31,6 @@ import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.util.DSAKeyUtil; import io.bitsquare.util.DSAKeyUtil;
import io.bitsquare.util.Utilities; import io.bitsquare.util.Utilities;
import io.bitsquare.common.viewfx.view.ActivatableView;
import io.bitsquare.common.viewfx.view.FxmlView;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.core.ECKey; import org.bitcoinj.core.ECKey;

View file

@ -17,11 +17,11 @@
package io.bitsquare.gui.main.account.content.changepassword; package io.bitsquare.gui.main.account.content.changepassword;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.InitializableView; import io.bitsquare.common.viewfx.view.InitializableView;
import io.bitsquare.common.viewfx.view.Wizard; import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,9 +17,9 @@
package io.bitsquare.gui.main.account.content.changepassword; package io.bitsquare.gui.main.account.content.changepassword;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.gui.util.validation.InputValidator; import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.gui.util.validation.PasswordValidator; import io.bitsquare.gui.util.validation.PasswordValidator;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -17,7 +17,8 @@
package io.bitsquare.gui.main.account.content.fiat; package io.bitsquare.gui.main.account.content.fiat;
import io.bitsquare.user.AccountSettings; import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.fiat.FiatAccountType; import io.bitsquare.fiat.FiatAccountType;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
@ -25,9 +26,8 @@ import io.bitsquare.locale.CountryUtil;
import io.bitsquare.locale.CurrencyUtil; import io.bitsquare.locale.CurrencyUtil;
import io.bitsquare.locale.Region; import io.bitsquare.locale.Region;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -17,6 +17,9 @@
package io.bitsquare.gui.main.account.content.fiat; package io.bitsquare.gui.main.account.content.fiat;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.fiat.FiatAccountType; import io.bitsquare.fiat.FiatAccountType;
import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.OverlayManager;
@ -28,9 +31,6 @@ import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
import io.bitsquare.locale.Region; import io.bitsquare.locale.Region;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.Wizard;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Currency; import java.util.Currency;

View file

@ -17,6 +17,8 @@
package io.bitsquare.gui.main.account.content.fiat; package io.bitsquare.gui.main.account.content.fiat;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.fiat.FiatAccountType; import io.bitsquare.fiat.FiatAccountType;
import io.bitsquare.gui.util.validation.BankAccountNumberValidator; import io.bitsquare.gui.util.validation.BankAccountNumberValidator;
@ -24,8 +26,6 @@ import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
import io.bitsquare.locale.Region; import io.bitsquare.locale.Region;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -17,20 +17,20 @@
package io.bitsquare.gui.main.account.content.irc; package io.bitsquare.gui.main.account.content.irc;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.arbitration.Arbitrator; import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService; import io.bitsquare.arbitration.ArbitratorMessageService;
import io.bitsquare.arbitration.Reputation; import io.bitsquare.arbitration.Reputation;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.fiat.FiatAccountType; import io.bitsquare.fiat.FiatAccountType;
import io.bitsquare.locale.CountryUtil; import io.bitsquare.locale.CountryUtil;
import io.bitsquare.locale.CurrencyUtil; import io.bitsquare.locale.CurrencyUtil;
import io.bitsquare.locale.LanguageUtil; import io.bitsquare.locale.LanguageUtil;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.util.DSAKeyUtil; import io.bitsquare.util.DSAKeyUtil;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.core.ECKey; import org.bitcoinj.core.ECKey;

View file

@ -17,15 +17,15 @@
package io.bitsquare.gui.main.account.content.irc; package io.bitsquare.gui.main.account.content.irc;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.fiat.FiatAccountType; import io.bitsquare.fiat.FiatAccountType;
import io.bitsquare.gui.components.InputTextField; import io.bitsquare.gui.components.InputTextField;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
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.util.Utilities; import io.bitsquare.util.Utilities;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.Wizard;
import java.util.Currency; import java.util.Currency;

View file

@ -17,12 +17,12 @@
package io.bitsquare.gui.main.account.content.irc; package io.bitsquare.gui.main.account.content.irc;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.fiat.FiatAccountType; import io.bitsquare.fiat.FiatAccountType;
import io.bitsquare.gui.util.validation.BankAccountNumberValidator; import io.bitsquare.gui.util.validation.BankAccountNumberValidator;
import io.bitsquare.gui.util.validation.InputValidator; import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -17,11 +17,11 @@
package io.bitsquare.gui.main.account.content.password; package io.bitsquare.gui.main.account.content.password;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.InitializableView; import io.bitsquare.common.viewfx.view.InitializableView;
import io.bitsquare.common.viewfx.view.Wizard; import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,9 +17,9 @@
package io.bitsquare.gui.main.account.content.password; package io.bitsquare.gui.main.account.content.password;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.gui.util.validation.InputValidator; import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.gui.util.validation.PasswordValidator; import io.bitsquare.gui.util.validation.PasswordValidator;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -21,9 +21,9 @@ import io.bitsquare.btc.AddressEntry;
import io.bitsquare.btc.FeePolicy; import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.btc.listeners.BalanceListener; import io.bitsquare.btc.listeners.BalanceListener;
import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.common.viewfx.model.DataModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.core.InsufficientMoneyException; import org.bitcoinj.core.InsufficientMoneyException;

View file

@ -17,6 +17,9 @@
package io.bitsquare.gui.main.account.content.registration; package io.bitsquare.gui.main.account.content.registration;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.InitializableView;
import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.OverlayManager;
import io.bitsquare.gui.components.AddressTextField; import io.bitsquare.gui.components.AddressTextField;
import io.bitsquare.gui.components.BalanceTextField; import io.bitsquare.gui.components.BalanceTextField;
@ -24,9 +27,6 @@ import io.bitsquare.gui.components.Popups;
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.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.InitializableView;
import io.bitsquare.common.viewfx.view.Wizard;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -18,10 +18,10 @@
package io.bitsquare.gui.main.account.content.registration; package io.bitsquare.gui.main.account.content.registration;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.BSResources;
import io.bitsquare.common.viewfx.model.ViewModel; import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.common.viewfx.model.WithDataModel; import io.bitsquare.common.viewfx.model.WithDataModel;
import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.BSResources;
import org.bitcoinj.core.Address; import org.bitcoinj.core.Address;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;

View file

@ -17,19 +17,19 @@
package io.bitsquare.gui.main.account.content.restrictions; package io.bitsquare.gui.main.account.content.restrictions;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.arbitration.Arbitrator; import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService; import io.bitsquare.arbitration.ArbitratorMessageService;
import io.bitsquare.arbitration.Reputation; import io.bitsquare.arbitration.Reputation;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
import io.bitsquare.locale.CountryUtil; import io.bitsquare.locale.CountryUtil;
import io.bitsquare.locale.LanguageUtil; import io.bitsquare.locale.LanguageUtil;
import io.bitsquare.locale.Region; import io.bitsquare.locale.Region;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.util.DSAKeyUtil; import io.bitsquare.util.DSAKeyUtil;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.core.ECKey; import org.bitcoinj.core.ECKey;

View file

@ -18,18 +18,18 @@
package io.bitsquare.gui.main.account.content.restrictions; package io.bitsquare.gui.main.account.content.restrictions;
import io.bitsquare.arbitration.Arbitrator; import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.gui.main.account.arbitrator.browser.ArbitratorBrowserView;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import io.bitsquare.gui.util.ImageUtil;
import io.bitsquare.locale.Country;
import io.bitsquare.locale.Region;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel; import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.CachingViewLoader; import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View; import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.common.viewfx.view.Wizard; import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.gui.main.account.arbitrator.browser.ArbitratorBrowserView;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import io.bitsquare.gui.util.ImageUtil;
import io.bitsquare.locale.Country;
import io.bitsquare.locale.Region;
import java.util.Locale; import java.util.Locale;

View file

@ -18,10 +18,10 @@
package io.bitsquare.gui.main.account.content.restrictions; package io.bitsquare.gui.main.account.content.restrictions;
import io.bitsquare.arbitration.Arbitrator; import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.locale.Country;
import io.bitsquare.locale.Region;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel; import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel; import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.locale.Country;
import io.bitsquare.locale.Region;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -17,11 +17,11 @@
package io.bitsquare.gui.main.account.content.seedwords; package io.bitsquare.gui.main.account.content.seedwords;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.InitializableView; import io.bitsquare.common.viewfx.view.InitializableView;
import io.bitsquare.common.viewfx.view.Wizard; import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -18,8 +18,8 @@
package io.bitsquare.gui.main.account.content.seedwords; package io.bitsquare.gui.main.account.content.seedwords;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.common.viewfx.model.ViewModel; import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.gui.util.BSFormatter;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -18,6 +18,13 @@
package io.bitsquare.gui.main.account.settings; package io.bitsquare.gui.main.account.settings;
import io.bitsquare.BitsquareException; import io.bitsquare.BitsquareException;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.common.viewfx.view.ViewPath;
import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.gui.Navigation; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView; import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.account.AccountView; import io.bitsquare.gui.main.account.AccountView;
@ -27,13 +34,6 @@ import io.bitsquare.gui.main.account.content.registration.RegistrationView;
import io.bitsquare.gui.main.account.content.restrictions.RestrictionsView; import io.bitsquare.gui.main.account.content.restrictions.RestrictionsView;
import io.bitsquare.gui.main.account.content.seedwords.SeedWordsView; import io.bitsquare.gui.main.account.content.seedwords.SeedWordsView;
import io.bitsquare.gui.util.Colors; import io.bitsquare.gui.util.Colors;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.common.viewfx.view.ViewPath;
import io.bitsquare.common.viewfx.view.Wizard;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,6 +17,12 @@
package io.bitsquare.gui.main.account.setup; package io.bitsquare.gui.main.account.setup;
import io.bitsquare.common.viewfx.view.ActivatableView;
import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.common.viewfx.view.Wizard;
import io.bitsquare.gui.Navigation; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView; import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.account.content.irc.IrcAccountView; import io.bitsquare.gui.main.account.content.irc.IrcAccountView;
@ -25,12 +31,6 @@ import io.bitsquare.gui.main.account.content.registration.RegistrationView;
import io.bitsquare.gui.main.account.content.restrictions.RestrictionsView; import io.bitsquare.gui.main.account.content.restrictions.RestrictionsView;
import io.bitsquare.gui.main.account.content.seedwords.SeedWordsView; import io.bitsquare.gui.main.account.content.seedwords.SeedWordsView;
import io.bitsquare.gui.main.trade.BuyView; import io.bitsquare.gui.main.trade.BuyView;
import io.bitsquare.common.viewfx.view.ActivatableView;
import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.common.viewfx.view.Wizard;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -29,6 +29,7 @@ import io.bitsquare.trade.protocol.placeoffer.tasks.BroadcastCreateOfferFeeTx;
import io.bitsquare.trade.protocol.placeoffer.tasks.CreateOfferFeeTx; import io.bitsquare.trade.protocol.placeoffer.tasks.CreateOfferFeeTx;
import io.bitsquare.trade.protocol.placeoffer.tasks.ValidateOffer; import io.bitsquare.trade.protocol.placeoffer.tasks.ValidateOffer;
import io.bitsquare.trade.protocol.trade.offerer.BuyerAsOffererProtocol; import io.bitsquare.trade.protocol.trade.offerer.BuyerAsOffererProtocol;
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;
@ -38,7 +39,6 @@ import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMe
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxIdToTaker; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxIdToTaker;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation; import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation;
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.CreateAndSignPayoutTx;
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;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakerAccount; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakerAccount;

View file

@ -17,16 +17,16 @@
package io.bitsquare.gui.main.funds; package io.bitsquare.gui.main.funds;
import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.funds.transactions.TransactionsView;
import io.bitsquare.gui.main.funds.withdrawal.WithdrawalView;
import io.bitsquare.common.viewfx.model.Activatable; import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel; import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.CachingViewLoader; import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View; import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.funds.transactions.TransactionsView;
import io.bitsquare.gui.main.funds.withdrawal.WithdrawalView;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -18,11 +18,11 @@
package io.bitsquare.gui.main.funds.transactions; package io.bitsquare.gui.main.funds.transactions;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.util.Utilities; import io.bitsquare.util.Utilities;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import org.bitcoinj.core.Transaction; import org.bitcoinj.core.Transaction;

View file

@ -22,11 +22,11 @@ import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.Restrictions; import io.bitsquare.btc.Restrictions;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.btc.listeners.BalanceListener; import io.bitsquare.btc.listeners.BalanceListener;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.util.Utilities; import io.bitsquare.util.Utilities;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import org.bitcoinj.core.AddressFormatException; import org.bitcoinj.core.AddressFormatException;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;

View file

@ -17,18 +17,18 @@
package io.bitsquare.gui.main.portfolio; package io.bitsquare.gui.main.portfolio;
import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.portfolio.closed.ClosedTradesView;
import io.bitsquare.gui.main.portfolio.offer.OffersView;
import io.bitsquare.gui.main.portfolio.pending.PendingTradesView;
import io.bitsquare.trade.TradeManager;
import io.bitsquare.common.viewfx.model.Activatable; import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel; import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.CachingViewLoader; import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View; import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.portfolio.closed.ClosedTradesView;
import io.bitsquare.gui.main.portfolio.offer.OffersView;
import io.bitsquare.gui.main.portfolio.pending.PendingTradesView;
import io.bitsquare.trade.TradeManager;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,13 +17,13 @@
package io.bitsquare.gui.main.portfolio.closed; package io.bitsquare.gui.main.portfolio.closed;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -17,9 +17,9 @@
package io.bitsquare.gui.main.portfolio.closed; package io.bitsquare.gui.main.portfolio.closed;
import io.bitsquare.gui.components.Popups;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel; import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.gui.components.Popups;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,9 +17,9 @@
package io.bitsquare.gui.main.portfolio.closed; package io.bitsquare.gui.main.portfolio.closed;
import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel; import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel; import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.gui.util.BSFormatter;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -17,11 +17,11 @@
package io.bitsquare.gui.main.portfolio.offer; package io.bitsquare.gui.main.portfolio.offer;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.util.Utilities; import io.bitsquare.util.Utilities;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,11 +17,11 @@
package io.bitsquare.gui.main.portfolio.offer; package io.bitsquare.gui.main.portfolio.offer;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -18,12 +18,12 @@
package io.bitsquare.gui.main.portfolio.pending; package io.bitsquare.gui.main.portfolio.pending;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.gui.util.validation.BtcAddressValidator; import io.bitsquare.gui.util.validation.BtcAddressValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.utils.Fiat; import org.bitcoinj.utils.Fiat;

View file

@ -17,17 +17,17 @@
package io.bitsquare.gui.main.settings; package io.bitsquare.gui.main.settings;
import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.settings.application.PreferencesView;
import io.bitsquare.gui.main.settings.network.NetworkSettingsView;
import io.bitsquare.user.Preferences;
import io.bitsquare.common.viewfx.model.Activatable; import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel; import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.CachingViewLoader; import io.bitsquare.common.viewfx.view.CachingViewLoader;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.View; import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.settings.application.PreferencesView;
import io.bitsquare.gui.main.settings.network.NetworkSettingsView;
import io.bitsquare.user.Preferences;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,9 +17,9 @@
package io.bitsquare.gui.main.settings.application; package io.bitsquare.gui.main.settings.application;
import io.bitsquare.user.Preferences;
import io.bitsquare.common.viewfx.model.Activatable; import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel; import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.user.Preferences;
import com.google.inject.Inject; import com.google.inject.Inject;

View file

@ -18,9 +18,9 @@
package io.bitsquare.gui.main.settings.network; package io.bitsquare.gui.main.settings.network;
import io.bitsquare.btc.BitcoinNetwork; import io.bitsquare.btc.BitcoinNetwork;
import io.bitsquare.network.ClientNode;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.InitializableView; import io.bitsquare.common.viewfx.view.InitializableView;
import io.bitsquare.network.ClientNode;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,9 +17,9 @@
package io.bitsquare.gui.main.trade; package io.bitsquare.gui.main.trade;
import io.bitsquare.gui.Navigation;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.Navigation;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,9 +17,9 @@
package io.bitsquare.gui.main.trade; package io.bitsquare.gui.main.trade;
import io.bitsquare.gui.Navigation;
import io.bitsquare.common.viewfx.view.FxmlView; import io.bitsquare.common.viewfx.view.FxmlView;
import io.bitsquare.common.viewfx.view.ViewLoader; import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.Navigation;
import javax.inject.Inject; import javax.inject.Inject;

View file

@ -17,6 +17,9 @@
package io.bitsquare.gui.main.trade; package io.bitsquare.gui.main.trade;
import io.bitsquare.common.viewfx.view.ActivatableView;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader;
import io.bitsquare.gui.Navigation; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.components.InputTextField; import io.bitsquare.gui.components.InputTextField;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
@ -26,9 +29,6 @@ import io.bitsquare.gui.main.trade.offerbook.OfferBookView;
import io.bitsquare.gui.main.trade.takeoffer.TakeOfferView; import io.bitsquare.gui.main.trade.takeoffer.TakeOfferView;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.common.viewfx.view.ActivatableView;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewLoader;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.utils.Fiat; import org.bitcoinj.utils.Fiat;

View file

@ -17,22 +17,22 @@
package io.bitsquare.gui.main.trade.createoffer; package io.bitsquare.gui.main.trade.createoffer;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.arbitration.Arbitrator; import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.btc.AddressEntry; import io.bitsquare.btc.AddressEntry;
import io.bitsquare.btc.FeePolicy; import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.btc.listeners.BalanceListener; import io.bitsquare.btc.listeners.BalanceListener;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Direction;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.Preferences;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.Preferences;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.utils.ExchangeRate; import org.bitcoinj.utils.ExchangeRate;

View file

@ -18,14 +18,14 @@
package io.bitsquare.gui.main.trade.createoffer; package io.bitsquare.gui.main.trade.createoffer;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.gui.util.validation.BtcValidator; import io.bitsquare.gui.util.validation.BtcValidator;
import io.bitsquare.gui.util.validation.FiatValidator; import io.bitsquare.gui.util.validation.FiatValidator;
import io.bitsquare.gui.util.validation.InputValidator; import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Direction;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import org.bitcoinj.core.Address; import org.bitcoinj.core.Address;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;

View file

@ -17,6 +17,10 @@
package io.bitsquare.gui.main.trade.offerbook; package io.bitsquare.gui.main.trade.offerbook;
import io.bitsquare.common.handlers.ErrorMessageHandler;
import io.bitsquare.common.handlers.ResultHandler;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.Country; import io.bitsquare.locale.Country;
@ -24,13 +28,9 @@ import io.bitsquare.locale.CurrencyUtil;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.offer.OfferBook; import io.bitsquare.offer.OfferBook;
import io.bitsquare.user.Preferences;
import io.bitsquare.trade.TradeManager; import io.bitsquare.trade.TradeManager;
import io.bitsquare.user.Preferences;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.common.handlers.ErrorMessageHandler;
import io.bitsquare.common.handlers.ResultHandler;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.utils.ExchangeRate; import org.bitcoinj.utils.ExchangeRate;

View file

@ -17,6 +17,8 @@
package io.bitsquare.gui.main.trade.offerbook; package io.bitsquare.gui.main.trade.offerbook;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.gui.util.validation.InputValidator; import io.bitsquare.gui.util.validation.InputValidator;
@ -25,8 +27,6 @@ import io.bitsquare.gui.util.validation.OptionalFiatValidator;
import io.bitsquare.locale.BSResources; import io.bitsquare.locale.BSResources;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import org.bitcoinj.utils.Fiat; import org.bitcoinj.utils.Fiat;

View file

@ -28,5 +28,5 @@ public interface ClientNode {
Node getBootstrapNodeAddress(); Node getBootstrapNodeAddress();
public Observable<BootstrapState> bootstrap(KeyPair keyPair, MessageBroker messageBroker); public Observable<BootstrapState> bootstrap(KeyPair keyPair, MessageHandler messageHandler);
} }

View file

@ -17,9 +17,15 @@
package io.bitsquare.network; package io.bitsquare.network;
/**
* Interface for the object handling incoming messages. import io.bitsquare.network.listener.GetPeerAddressListener;
*/
public interface MessageBroker { import java.security.PublicKey;
void handleMessage(Object message, Peer sender);
import java.util.concurrent.Executor;
public interface DHTService {
void setExecutor(Executor executor);
void findPeerAddress(PublicKey messagePublicKey, GetPeerAddressListener getPeerAddressListener);
} }

View file

@ -15,10 +15,7 @@
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>. * along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/ */
package io.bitsquare.trade.handlers; package io.bitsquare.network;
import io.bitsquare.network.Message;
import io.bitsquare.network.Peer;
public interface MessageHandler { public interface MessageHandler {
void handleMessage(Message message, Peer sender); void handleMessage(Message message, Peer sender);

View file

@ -17,15 +17,12 @@
package io.bitsquare.network; package io.bitsquare.network;
import io.bitsquare.trade.handlers.MessageHandler;
import io.bitsquare.trade.listeners.GetPeerAddressListener;
import io.bitsquare.trade.listeners.SendMessageListener;
import java.security.PublicKey; import io.bitsquare.network.listener.SendMessageListener;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
public interface TradeMessageService extends MessageBroker { public interface MessageService extends MessageHandler {
void setExecutor(Executor executor); void setExecutor(Executor executor);
@ -34,6 +31,4 @@ public interface TradeMessageService extends MessageBroker {
void addMessageHandler(MessageHandler listener); void addMessageHandler(MessageHandler listener);
void removeMessageHandler(MessageHandler listener); void removeMessageHandler(MessageHandler listener);
void findPeerAddress(PublicKey messagePublicKey, GetPeerAddressListener getPeerAddressListener);
} }

View file

@ -15,7 +15,7 @@
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>. * along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/ */
package io.bitsquare.trade.listeners; package io.bitsquare.network.listener;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;

View file

@ -15,7 +15,7 @@
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>. * along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/ */
package io.bitsquare.trade.listeners; package io.bitsquare.network.listener;
public interface SendMessageListener { public interface SendMessageListener {
void handleFault(); void handleFault();

View file

@ -0,0 +1,93 @@
/*
* 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.network.tomp2p;
import io.bitsquare.network.DHTService;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.Peer;
import io.bitsquare.network.listener.GetPeerAddressListener;
import java.security.PublicKey;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Executor;
import net.tomp2p.dht.FutureGet;
import net.tomp2p.futures.BaseFuture;
import net.tomp2p.futures.BaseFutureAdapter;
import net.tomp2p.peers.Number160;
import net.tomp2p.utils.Utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* That service delivers direct messaging and DHT functionality from the TomP2P library
* It is the translating domain specific functionality to the messaging layer.
* The TomP2P library codebase shall not be used outside that service.
* That way we limit the dependency of the TomP2P library only to that class (and it's sub components).
* <p/>
*/
public class TomP2PDHTService implements DHTService {
private static final Logger log = LoggerFactory.getLogger(TomP2PDHTService.class);
private final TomP2PNode tomP2PNode;
private final CopyOnWriteArrayList<MessageHandler> messageHandlers = new CopyOnWriteArrayList<>();
private Executor executor;
///////////////////////////////////////////////////////////////////////////////////////////
// Constructor
///////////////////////////////////////////////////////////////////////////////////////////
public TomP2PDHTService(TomP2PNode tomP2PNode) {
this.tomP2PNode = tomP2PNode;
}
public void setExecutor(Executor executor) {
this.executor = executor;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Find peer address by publicKey
///////////////////////////////////////////////////////////////////////////////////////////
@Override
public void findPeerAddress(PublicKey publicKey, GetPeerAddressListener listener) {
final Number160 locationKey = Utils.makeSHAHash(publicKey.getEncoded());
FutureGet futureGet = tomP2PNode.getDomainProtectedData(locationKey, publicKey);
log.trace("findPeerAddress called");
futureGet.addListener(new BaseFutureAdapter<BaseFuture>() {
@Override
public void operationComplete(BaseFuture baseFuture) throws Exception {
if (baseFuture.isSuccess() && futureGet.data() != null) {
final Peer peer = (Peer) futureGet.data().object();
log.trace("Peer found in DHT. Peer = " + peer);
executor.execute(() -> listener.onResult(peer));
}
else {
log.error("getPeerAddress failed. failedReason = " + baseFuture.failedReason());
executor.execute(listener::onFailed);
}
}
});
}
}

View file

@ -18,24 +18,17 @@
package io.bitsquare.network.tomp2p; package io.bitsquare.network.tomp2p;
import io.bitsquare.network.Message; import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;
import io.bitsquare.network.TradeMessageService; import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.trade.handlers.MessageHandler;
import io.bitsquare.trade.listeners.GetPeerAddressListener;
import io.bitsquare.trade.listeners.SendMessageListener;
import java.security.PublicKey;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import net.tomp2p.dht.FutureGet;
import net.tomp2p.futures.BaseFuture; import net.tomp2p.futures.BaseFuture;
import net.tomp2p.futures.BaseFutureAdapter;
import net.tomp2p.futures.BaseFutureListener; import net.tomp2p.futures.BaseFutureListener;
import net.tomp2p.futures.FutureDirect; import net.tomp2p.futures.FutureDirect;
import net.tomp2p.peers.Number160;
import net.tomp2p.utils.Utils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -48,7 +41,7 @@ import org.slf4j.LoggerFactory;
* That way we limit the dependency of the TomP2P library only to that class (and it's sub components). * That way we limit the dependency of the TomP2P library only to that class (and it's sub components).
* <p/> * <p/>
*/ */
public class TomP2PMessageService implements TradeMessageService { public class TomP2PMessageService implements MessageService {
private static final Logger log = LoggerFactory.getLogger(TomP2PMessageService.class); private static final Logger log = LoggerFactory.getLogger(TomP2PMessageService.class);
private final TomP2PNode tomP2PNode; private final TomP2PNode tomP2PNode;
@ -64,39 +57,17 @@ public class TomP2PMessageService implements TradeMessageService {
this.tomP2PNode = tomP2PNode; this.tomP2PNode = tomP2PNode;
} }
@Override
public void setExecutor(Executor executor) { public void setExecutor(Executor executor) {
this.executor = executor; this.executor = executor;
} }
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// Find peer address by publicKey // Messages
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
public void findPeerAddress(PublicKey publicKey, GetPeerAddressListener listener) {
final Number160 locationKey = Utils.makeSHAHash(publicKey.getEncoded());
FutureGet futureGet = tomP2PNode.getDomainProtectedData(locationKey, publicKey);
log.trace("findPeerAddress called");
futureGet.addListener(new BaseFutureAdapter<BaseFuture>() {
@Override @Override
public void operationComplete(BaseFuture baseFuture) throws Exception {
if (baseFuture.isSuccess() && futureGet.data() != null) {
final Peer peer = (Peer) futureGet.data().object();
log.trace("Peer found in DHT. Peer = " + peer);
executor.execute(() -> listener.onResult(peer));
}
else {
log.error("getPeerAddress failed. failedReason = " + baseFuture.failedReason());
executor.execute(listener::onFailed);
}
}
});
}
///////////////////////////////////////////////////////////////////////////////////////////
// Trade messages
///////////////////////////////////////////////////////////////////////////////////////////
public void sendMessage(Peer peer, Message message, SendMessageListener listener) { public void sendMessage(Peer peer, Message message, SendMessageListener listener) {
if (!(peer instanceof TomP2PPeer)) { if (!(peer instanceof TomP2PPeer)) {
throw new IllegalArgumentException("peer must be of type TomP2PPeer"); throw new IllegalArgumentException("peer must be of type TomP2PPeer");
@ -126,11 +97,13 @@ public class TomP2PMessageService implements TradeMessageService {
// Event Listeners // Event Listeners
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override
public void addMessageHandler(MessageHandler listener) { public void addMessageHandler(MessageHandler listener) {
if (!messageHandlers.add(listener)) if (!messageHandlers.add(listener))
throw new RuntimeException("Add listener did not change list. Probably listener has been already added."); throw new RuntimeException("Add listener did not change list. Probably listener has been already added.");
} }
@Override
public void removeMessageHandler(MessageHandler listener) { public void removeMessageHandler(MessageHandler listener) {
if (!messageHandlers.remove(listener)) if (!messageHandlers.remove(listener))
throw new RuntimeException("Try to remove listener which was never added."); throw new RuntimeException("Try to remove listener which was never added.");
@ -142,8 +115,8 @@ public class TomP2PMessageService implements TradeMessageService {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
public void handleMessage(Object message, Peer sender) { public void handleMessage(Message message, Peer sender) {
if (message instanceof Message && sender instanceof TomP2PPeer) { if (sender instanceof TomP2PPeer) {
executor.execute(() -> messageHandlers.stream().forEach(e -> e.handleMessage((Message) message, sender))); executor.execute(() -> messageHandlers.stream().forEach(e -> e.handleMessage((Message) message, sender)));
} }
} }

View file

@ -19,9 +19,10 @@ package io.bitsquare.network.tomp2p;
import io.bitsquare.network.BootstrapNodes; import io.bitsquare.network.BootstrapNodes;
import io.bitsquare.network.ClientNode; import io.bitsquare.network.ClientNode;
import io.bitsquare.network.DHTService;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.NetworkModule; import io.bitsquare.network.NetworkModule;
import io.bitsquare.network.Node; import io.bitsquare.network.Node;
import io.bitsquare.network.TradeMessageService;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.google.inject.Provider; import com.google.inject.Provider;
@ -51,7 +52,8 @@ public class TomP2PNetworkModule extends NetworkModule {
protected void doConfigure() { protected void doConfigure() {
bind(ClientNode.class).to(TomP2PNode.class).in(Singleton.class); bind(ClientNode.class).to(TomP2PNode.class).in(Singleton.class);
bind(TomP2PNode.class).in(Singleton.class); bind(TomP2PNode.class).in(Singleton.class);
bind(TradeMessageService.class).toProvider(TomP2PTradeMessageServiceProvider.class).in(Singleton.class); bind(MessageService.class).toProvider(TomP2PMessageServiceProvider.class).in(Singleton.class);
bind(DHTService.class).toProvider(TomP2PDHTServiceProvider.class).in(Singleton.class);
bind(int.class).annotatedWith(Names.named(Node.PORT_KEY)).toInstance(env.getProperty(Node.PORT_KEY, int.class, Node.DEFAULT_PORT)); bind(int.class).annotatedWith(Names.named(Node.PORT_KEY)).toInstance(env.getProperty(Node.PORT_KEY, int.class, Node.DEFAULT_PORT));
bind(boolean.class).annotatedWith(Names.named(USE_MANUAL_PORT_FORWARDING_KEY)).toInstance( bind(boolean.class).annotatedWith(Names.named(USE_MANUAL_PORT_FORWARDING_KEY)).toInstance(
@ -76,16 +78,31 @@ public class TomP2PNetworkModule extends NetworkModule {
injector.getInstance(BootstrappedPeerBuilder.class).shutDown(); injector.getInstance(BootstrappedPeerBuilder.class).shutDown();
} }
} }
class TomP2PTradeMessageServiceProvider implements Provider<TradeMessageService> {
private final TradeMessageService tradeMessageService; class TomP2PMessageServiceProvider implements Provider<MessageService> {
private final MessageService messageService;
@Inject @Inject
public TomP2PTradeMessageServiceProvider(TomP2PNode tomP2PNode) { public TomP2PMessageServiceProvider(TomP2PNode tomP2PNode) {
tradeMessageService = new TomP2PMessageService(tomP2PNode); messageService = new TomP2PMessageService(tomP2PNode);
tradeMessageService.setExecutor(Platform::runLater); messageService.setExecutor(Platform::runLater);
} }
public TradeMessageService get() { public MessageService get() {
return tradeMessageService; return messageService;
}
}
class TomP2PDHTServiceProvider implements Provider<DHTService> {
private final DHTService dhtService;
@Inject
public TomP2PDHTServiceProvider(TomP2PNode tomP2PNode) {
dhtService = new TomP2PDHTService(tomP2PNode);
dhtService.setExecutor(Platform::runLater);
}
public DHTService get() {
return dhtService;
} }
} }

View file

@ -21,7 +21,8 @@ import io.bitsquare.BitsquareException;
import io.bitsquare.network.BootstrapState; import io.bitsquare.network.BootstrapState;
import io.bitsquare.network.ClientNode; import io.bitsquare.network.ClientNode;
import io.bitsquare.network.ConnectionType; import io.bitsquare.network.ConnectionType;
import io.bitsquare.network.MessageBroker; import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.NetworkException; import io.bitsquare.network.NetworkException;
import io.bitsquare.network.Node; import io.bitsquare.network.Node;
@ -104,7 +105,7 @@ public class TomP2PNode implements ClientNode {
// Public methods // Public methods
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
public Observable<BootstrapState> bootstrap(KeyPair keyPair, MessageBroker messageBroker) { public Observable<BootstrapState> bootstrap(KeyPair keyPair, MessageHandler messageHandler) {
checkNotNull(keyPair, "keyPair must not be null."); checkNotNull(keyPair, "keyPair must not be null.");
this.keyPair = keyPair; this.keyPair = keyPair;
@ -125,7 +126,7 @@ public class TomP2PNode implements ClientNode {
TomP2PNode.this.peerDHT = peerDHT; TomP2PNode.this.peerDHT = peerDHT;
setupTimerForIPCheck(); setupTimerForIPCheck();
setupTimerForStoreAddress(); setupTimerForStoreAddress();
setupReplyHandler(messageBroker); setupReplyHandler(messageHandler);
try { try {
storeAddress(); storeAddress();
} catch (NetworkException e) { } catch (NetworkException e) {
@ -333,14 +334,16 @@ public class TomP2PNode implements ClientNode {
// Private // Private
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
private void setupReplyHandler(MessageBroker messageBroker) { private void setupReplyHandler(MessageHandler messageHandler) {
peerDHT.peer().objectDataReply((sender, request) -> { peerDHT.peer().objectDataReply((sender, request) -> {
log.debug("handleMessage peerAddress " + sender); log.debug("handleMessage peerAddress " + sender);
log.debug("handleMessage message " + request); log.debug("handleMessage message " + request);
if (!sender.equals(peerDHT.peer().peerAddress())) { if (!sender.equals(peerDHT.peer().peerAddress())) {
if (messageBroker != null) if (request instanceof Message)
messageBroker.handleMessage(request, new TomP2PPeer(sender)); messageHandler.handleMessage((Message) request, new TomP2PPeer(sender));
else
throw new RuntimeException("We got an object which is not type of Message. That must never happen. Request object = " + request);
} }
else { else {
throw new RuntimeException("Received msg from myself. That must never happen."); throw new RuntimeException("Received msg from myself. That must never happen.");

View file

@ -17,11 +17,11 @@
package io.bitsquare.offer.tomp2p; package io.bitsquare.offer.tomp2p;
import io.bitsquare.common.handlers.FaultHandler;
import io.bitsquare.common.handlers.ResultHandler;
import io.bitsquare.network.tomp2p.TomP2PNode; import io.bitsquare.network.tomp2p.TomP2PNode;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.offer.OfferBookService; import io.bitsquare.offer.OfferBookService;
import io.bitsquare.common.handlers.FaultHandler;
import io.bitsquare.common.handlers.ResultHandler;
import java.io.IOException; import java.io.IOException;

View file

@ -23,16 +23,17 @@ import io.bitsquare.common.handlers.ErrorMessageHandler;
import io.bitsquare.common.handlers.ResultHandler; import io.bitsquare.common.handlers.ResultHandler;
import io.bitsquare.crypto.SignatureService; import io.bitsquare.crypto.SignatureService;
import io.bitsquare.fiat.FiatAccount; import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.network.DHTService;
import io.bitsquare.network.Message; import io.bitsquare.network.Message;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;
import io.bitsquare.network.TradeMessageService; import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.offer.Direction; import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.offer.OfferBookService; import io.bitsquare.offer.OfferBookService;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.trade.handlers.TradeResultHandler; import io.bitsquare.trade.handlers.TradeResultHandler;
import io.bitsquare.trade.handlers.TransactionResultHandler; import io.bitsquare.trade.handlers.TransactionResultHandler;
import io.bitsquare.trade.listeners.SendMessageListener;
import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityModel; import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityModel;
import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityProtocol; import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityProtocol;
import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage; import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage;
@ -70,7 +71,8 @@ public class TradeManager {
private final User user; private final User user;
private final AccountSettings accountSettings; private final AccountSettings accountSettings;
private final Persistence persistence; private final Persistence persistence;
private final TradeMessageService tradeMessageService; private final MessageService messageService;
private final DHTService dhtService;
private final BlockChainService blockChainService; private final BlockChainService blockChainService;
private final WalletService walletService; private final WalletService walletService;
private final SignatureService signatureService; private final SignatureService signatureService;
@ -93,13 +95,14 @@ public class TradeManager {
@Inject @Inject
public TradeManager(User user, AccountSettings accountSettings, Persistence persistence, public TradeManager(User user, AccountSettings accountSettings, Persistence persistence,
TradeMessageService tradeMessageService, BlockChainService blockChainService, MessageService messageService, DHTService dhtService, BlockChainService blockChainService,
WalletService walletService, SignatureService signatureService, WalletService walletService, SignatureService signatureService,
OfferBookService offerBookService) { OfferBookService offerBookService) {
this.user = user; this.user = user;
this.accountSettings = accountSettings; this.accountSettings = accountSettings;
this.persistence = persistence; this.persistence = persistence;
this.tradeMessageService = tradeMessageService; this.messageService = messageService;
this.dhtService = dhtService;
this.blockChainService = blockChainService; this.blockChainService = blockChainService;
this.walletService = walletService; this.walletService = walletService;
this.signatureService = signatureService; this.signatureService = signatureService;
@ -120,7 +123,7 @@ public class TradeManager {
closedTrades.putAll((Map<String, Trade>) closedTradesObject); closedTrades.putAll((Map<String, Trade>) closedTradesObject);
} }
tradeMessageService.addMessageHandler(this::handleMessage); messageService.addMessageHandler(this::handleMessage);
} }
// When all services are initialized we create the protocols for our open offers and persisted not completed pendingTrades // When all services are initialized we create the protocols for our open offers and persisted not completed pendingTrades
@ -148,7 +151,8 @@ public class TradeManager {
if (!checkOfferAvailabilityProtocolMap.containsKey(offer.getId())) { if (!checkOfferAvailabilityProtocolMap.containsKey(offer.getId())) {
CheckOfferAvailabilityModel model = new CheckOfferAvailabilityModel( CheckOfferAvailabilityModel model = new CheckOfferAvailabilityModel(
offer, offer,
tradeMessageService); messageService,
dhtService);
CheckOfferAvailabilityProtocol protocol = new CheckOfferAvailabilityProtocol(model, CheckOfferAvailabilityProtocol protocol = new CheckOfferAvailabilityProtocol(model,
() -> disposeCheckOfferAvailabilityRequest(offer), () -> disposeCheckOfferAvailabilityRequest(offer),
@ -211,7 +215,7 @@ public class TradeManager {
} }
public void requestTakeOffer(Coin amount, Offer offer, TradeResultHandler tradeResultHandler) { public void requestTakeOffer(Coin amount, Offer offer, TradeResultHandler tradeResultHandler) {
CheckOfferAvailabilityModel model = new CheckOfferAvailabilityModel(offer, tradeMessageService); CheckOfferAvailabilityModel model = new CheckOfferAvailabilityModel(offer, messageService, dhtService);
CheckOfferAvailabilityProtocol protocol = new CheckOfferAvailabilityProtocol(model, CheckOfferAvailabilityProtocol protocol = new CheckOfferAvailabilityProtocol(model,
() -> { () -> {
disposeCheckOfferAvailabilityRequest(offer); disposeCheckOfferAvailabilityRequest(offer);
@ -255,7 +259,7 @@ public class TradeManager {
SellerAsTakerModel model = new SellerAsTakerModel( SellerAsTakerModel model = new SellerAsTakerModel(
trade, trade,
peer, peer,
tradeMessageService, messageService,
walletService, walletService,
blockChainService, blockChainService,
signatureService, signatureService,
@ -323,7 +327,7 @@ public class TradeManager {
checkNotNull(offerId); checkNotNull(offerId);
ReportOfferAvailabilityMessage reportOfferAvailabilityMessage = new ReportOfferAvailabilityMessage(offerId, isOfferOpen(offerId)); ReportOfferAvailabilityMessage reportOfferAvailabilityMessage = new ReportOfferAvailabilityMessage(offerId, isOfferOpen(offerId));
tradeMessageService.sendMessage(sender, reportOfferAvailabilityMessage, new SendMessageListener() { messageService.sendMessage(sender, reportOfferAvailabilityMessage, new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {
// Offerer does not do anything at that moment. Peer might only watch the offer and does nto start a trade. // Offerer does not do anything at that moment. Peer might only watch the offer and does nto start a trade.
@ -396,7 +400,7 @@ public class TradeManager {
BuyerAsOffererModel model = new BuyerAsOffererModel( BuyerAsOffererModel model = new BuyerAsOffererModel(
trade, trade,
tradeMessageService, messageService,
walletService, walletService,
blockChainService, blockChainService,
signatureService, signatureService,

View file

@ -18,9 +18,10 @@
package io.bitsquare.trade.protocol.availability; package io.bitsquare.trade.protocol.availability;
import io.bitsquare.common.taskrunner.SharedTaskModel; import io.bitsquare.common.taskrunner.SharedTaskModel;
import io.bitsquare.network.DHTService;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.network.TradeMessageService;
import io.bitsquare.trade.protocol.trade.messages.OfferMessage; import io.bitsquare.trade.protocol.trade.messages.OfferMessage;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -30,14 +31,16 @@ public class CheckOfferAvailabilityModel extends SharedTaskModel {
private static final Logger log = LoggerFactory.getLogger(CheckOfferAvailabilityModel.class); private static final Logger log = LoggerFactory.getLogger(CheckOfferAvailabilityModel.class);
public final Offer offer; public final Offer offer;
public final TradeMessageService tradeMessageService; public final MessageService messageService;
public final DHTService dhtService;
private Peer peer; private Peer peer;
private OfferMessage message; private OfferMessage message;
public CheckOfferAvailabilityModel(Offer offer, TradeMessageService tradeMessageService) { public CheckOfferAvailabilityModel(Offer offer, MessageService messageService, DHTService dhtService) {
this.offer = offer; this.offer = offer;
this.tradeMessageService = tradeMessageService; this.messageService = messageService;
this.dhtService = dhtService;
} }
public Peer getPeer() { public Peer getPeer() {

View file

@ -21,8 +21,8 @@ import io.bitsquare.common.handlers.ErrorMessageHandler;
import io.bitsquare.common.handlers.ResultHandler; import io.bitsquare.common.handlers.ResultHandler;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.network.Message; import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;
import io.bitsquare.trade.handlers.MessageHandler;
import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage; import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage;
import io.bitsquare.trade.protocol.availability.tasks.GetPeerAddress; import io.bitsquare.trade.protocol.availability.tasks.GetPeerAddress;
import io.bitsquare.trade.protocol.availability.tasks.ProcessReportOfferAvailabilityMessage; import io.bitsquare.trade.protocol.availability.tasks.ProcessReportOfferAvailabilityMessage;
@ -55,7 +55,7 @@ public class CheckOfferAvailabilityProtocol {
} }
public void cleanup() { public void cleanup() {
model.tradeMessageService.removeMessageHandler(messageHandler); model.messageService.removeMessageHandler(messageHandler);
} }
@ -64,7 +64,7 @@ public class CheckOfferAvailabilityProtocol {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
public void checkOfferAvailability() { public void checkOfferAvailability() {
model.tradeMessageService.addMessageHandler(messageHandler); model.messageService.addMessageHandler(messageHandler);
taskRunner = new TaskRunner<>(model, taskRunner = new TaskRunner<>(model,
() -> { () -> {

View file

@ -21,7 +21,6 @@ import io.bitsquare.trade.protocol.trade.messages.OfferMessage;
import java.io.Serializable; import java.io.Serializable;
// That msg is used to ping the offerer if he is online and if the offer is still available
public class RequestIsOfferAvailableMessage extends OfferMessage implements Serializable { public class RequestIsOfferAvailableMessage extends OfferMessage implements Serializable {
private static final long serialVersionUID = 4630151440192191798L; private static final long serialVersionUID = 4630151440192191798L;

View file

@ -20,8 +20,8 @@ package io.bitsquare.trade.protocol.availability.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;
import io.bitsquare.network.listener.GetPeerAddressListener;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.trade.listeners.GetPeerAddressListener;
import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityModel; import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityModel;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -39,7 +39,7 @@ public class GetPeerAddress extends Task<CheckOfferAvailabilityModel> {
@Override @Override
protected void doRun() { protected void doRun() {
try { try {
model.tradeMessageService.findPeerAddress(model.offer.getMessagePublicKey(), new GetPeerAddressListener() { model.dhtService.findPeerAddress(model.offer.getMessagePublicKey(), new GetPeerAddressListener() {
@Override @Override
public void onResult(Peer peer) { public void onResult(Peer peer) {
model.setPeer(peer); model.setPeer(peer);

View file

@ -19,8 +19,8 @@ package io.bitsquare.trade.protocol.availability.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.trade.listeners.SendMessageListener;
import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityModel; import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityModel;
import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailableMessage; import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailableMessage;
@ -37,7 +37,7 @@ public class RequestIsOfferAvailable extends Task<CheckOfferAvailabilityModel> {
@Override @Override
protected void doRun() { protected void doRun() {
try { try {
model.tradeMessageService.sendMessage(model.getPeer(), new RequestIsOfferAvailableMessage(model.offer.getId()), model.messageService.sendMessage(model.getPeer(), new RequestIsOfferAvailableMessage(model.offer.getId()),
new SendMessageListener() { new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {

View file

@ -22,9 +22,9 @@ import io.bitsquare.btc.TradeWalletService;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.common.taskrunner.SharedTaskModel; import io.bitsquare.common.taskrunner.SharedTaskModel;
import io.bitsquare.crypto.SignatureService; import io.bitsquare.crypto.SignatureService;
import io.bitsquare.network.MessageService;
import io.bitsquare.offer.Offer; import io.bitsquare.offer.Offer;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.network.TradeMessageService;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage; import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
import java.io.Serializable; import java.io.Serializable;
@ -38,7 +38,7 @@ public class SharedTradeModel extends SharedTaskModel implements Serializable {
// provided // provided
transient public final Offer offer; transient public final Offer offer;
transient public final TradeMessageService tradeMessageService; transient public final MessageService messageService;
transient public final WalletService walletService; transient public final WalletService walletService;
transient public final BlockChainService blockChainService; transient public final BlockChainService blockChainService;
transient public final SignatureService signatureService; transient public final SignatureService signatureService;
@ -53,13 +53,13 @@ public class SharedTradeModel extends SharedTaskModel implements Serializable {
transient private TradeMessage tradeMessage; transient private TradeMessage tradeMessage;
protected SharedTradeModel(Offer offer, protected SharedTradeModel(Offer offer,
TradeMessageService tradeMessageService, MessageService messageService,
WalletService walletService, WalletService walletService,
BlockChainService blockChainService, BlockChainService blockChainService,
SignatureService signatureService, SignatureService signatureService,
Persistence persistence) { Persistence persistence) {
this.offer = offer; this.offer = offer;
this.tradeMessageService = tradeMessageService; this.messageService = messageService;
this.walletService = walletService; this.walletService = walletService;
this.blockChainService = blockChainService; this.blockChainService = blockChainService;
this.signatureService = signatureService; this.signatureService = signatureService;

View file

@ -18,14 +18,15 @@
package io.bitsquare.trade.protocol.trade.offerer; package io.bitsquare.trade.protocol.trade.offerer;
import io.bitsquare.network.Message; import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.handlers.MessageHandler;
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.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage; import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel;
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;
@ -35,7 +36,6 @@ import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMe
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxIdToTaker; import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxIdToTaker;
import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation; import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation;
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.CreateAndSignPayoutTx;
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;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakerAccount; import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakerAccount;
@ -67,7 +67,7 @@ public class BuyerAsOffererProtocol {
this.model = model; this.model = model;
messageHandler = this::handleMessage; messageHandler = this::handleMessage;
model.tradeMessageService.addMessageHandler(messageHandler); model.messageService.addMessageHandler(messageHandler);
} }
@ -80,7 +80,7 @@ public class BuyerAsOffererProtocol {
// tradeMessageService and transactionConfidence use CopyOnWriteArrayList as listeners, but be safe and delay remove a bit. // tradeMessageService and transactionConfidence use CopyOnWriteArrayList as listeners, but be safe and delay remove a bit.
Platform.runLater(() -> { Platform.runLater(() -> {
model.tradeMessageService.removeMessageHandler(messageHandler); model.messageService.removeMessageHandler(messageHandler);
if (transactionConfidence != null) { if (transactionConfidence != null) {
if (!transactionConfidence.removeEventListener(transactionConfidenceListener)) if (!transactionConfidence.removeEventListener(transactionConfidenceListener))

View file

@ -20,9 +20,9 @@ package io.bitsquare.trade.protocol.trade.offerer.models;
import io.bitsquare.btc.BlockChainService; import io.bitsquare.btc.BlockChainService;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.crypto.SignatureService; import io.bitsquare.crypto.SignatureService;
import io.bitsquare.network.MessageService;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.network.TradeMessageService;
import io.bitsquare.trade.protocol.trade.SharedTradeModel; import io.bitsquare.trade.protocol.trade.SharedTradeModel;
import io.bitsquare.user.User; import io.bitsquare.user.User;
@ -43,14 +43,14 @@ public class BuyerAsOffererModel extends SharedTradeModel implements Serializabl
private String takeOfferFeeTxId; private String takeOfferFeeTxId;
public BuyerAsOffererModel(Trade trade, public BuyerAsOffererModel(Trade trade,
TradeMessageService tradeMessageService, MessageService messageService,
WalletService walletService, WalletService walletService,
BlockChainService blockChainService, BlockChainService blockChainService,
SignatureService signatureService, SignatureService signatureService,
User user, User user,
Persistence persistence) { Persistence persistence) {
super(trade.getOffer(), super(trade.getOffer(),
tradeMessageService, messageService,
walletService, walletService,
blockChainService, blockChainService,
signatureService, signatureService,

View file

@ -19,7 +19,7 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.listeners.SendMessageListener; import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositPaymentMessage; import io.bitsquare.trade.protocol.trade.messages.RequestDepositPaymentMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel;
@ -43,7 +43,7 @@ public class RequestDepositPayment extends Task<BuyerAsOffererModel> {
model.offerer.fiatAccount, model.offerer.fiatAccount,
model.offerer.accountId); model.offerer.accountId);
model.tradeMessageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() { model.messageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {
log.trace("RequestTakerDepositPaymentMessage successfully arrived at peer"); log.trace("RequestTakerDepositPaymentMessage successfully arrived at peer");

View file

@ -19,7 +19,7 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.listeners.SendMessageListener; import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.BankTransferStartedMessage; import io.bitsquare.trade.protocol.trade.messages.BankTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel;
@ -41,7 +41,7 @@ public class SendBankTransferStartedMessage extends Task<BuyerAsOffererModel> {
model.offerer.payoutAmount, model.offerer.payoutAmount,
model.taker.payoutAmount, model.taker.payoutAmount,
model.offerer.addressEntry.getAddressString()); model.offerer.addressEntry.getAddressString());
model.tradeMessageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() { model.messageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {
log.trace("Sending BankTransferInitedMessage succeeded."); log.trace("Sending BankTransferInitedMessage succeeded.");

View file

@ -19,7 +19,7 @@ package io.bitsquare.trade.protocol.trade.offerer.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.listeners.SendMessageListener; import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage; import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel; import io.bitsquare.trade.protocol.trade.offerer.models.BuyerAsOffererModel;
@ -37,7 +37,7 @@ public class SendDepositTxIdToTaker extends Task<BuyerAsOffererModel> {
protected void doRun() { protected void doRun() {
DepositTxPublishedMessage tradeMessage = new DepositTxPublishedMessage(model.id, model.trade.getDepositTx()); DepositTxPublishedMessage tradeMessage = new DepositTxPublishedMessage(model.id, model.trade.getDepositTx());
model.tradeMessageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() { model.messageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {
log.trace("DepositTxPublishedMessage successfully arrived at peer"); log.trace("DepositTxPublishedMessage successfully arrived at peer");

View file

@ -18,9 +18,9 @@
package io.bitsquare.trade.protocol.trade.taker; package io.bitsquare.trade.protocol.trade.taker;
import io.bitsquare.network.Message; import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.handlers.MessageHandler;
import io.bitsquare.trade.protocol.trade.messages.BankTransferStartedMessage; import io.bitsquare.trade.protocol.trade.messages.BankTransferStartedMessage;
import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage; import io.bitsquare.trade.protocol.trade.messages.DepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositPaymentMessage; import io.bitsquare.trade.protocol.trade.messages.RequestDepositPaymentMessage;
@ -68,7 +68,7 @@ public class SellerAsTakerProtocol {
log.debug("New SellerAsTakerProtocol " + this); log.debug("New SellerAsTakerProtocol " + this);
this.model = model; this.model = model;
messageHandler = this::handleMessage; messageHandler = this::handleMessage;
model.tradeMessageService.addMessageHandler(messageHandler); model.messageService.addMessageHandler(messageHandler);
} }
@ -78,7 +78,7 @@ public class SellerAsTakerProtocol {
public void cleanup() { public void cleanup() {
log.debug("cleanup " + this); log.debug("cleanup " + this);
model.tradeMessageService.removeMessageHandler(messageHandler); model.messageService.removeMessageHandler(messageHandler);
} }
public void takeAvailableOffer() { public void takeAvailableOffer() {

View file

@ -20,10 +20,10 @@ package io.bitsquare.trade.protocol.trade.taker.models;
import io.bitsquare.btc.BlockChainService; import io.bitsquare.btc.BlockChainService;
import io.bitsquare.btc.WalletService; import io.bitsquare.btc.WalletService;
import io.bitsquare.crypto.SignatureService; import io.bitsquare.crypto.SignatureService;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.Peer; import io.bitsquare.network.Peer;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.network.TradeMessageService;
import io.bitsquare.trade.protocol.trade.SharedTradeModel; import io.bitsquare.trade.protocol.trade.SharedTradeModel;
import io.bitsquare.user.User; import io.bitsquare.user.User;
@ -48,14 +48,14 @@ public class SellerAsTakerModel extends SharedTradeModel implements Serializable
public SellerAsTakerModel(Trade trade, public SellerAsTakerModel(Trade trade,
Peer offererPeer, Peer offererPeer,
TradeMessageService tradeMessageService, MessageService messageService,
WalletService walletService, WalletService walletService,
BlockChainService blockChainService, BlockChainService blockChainService,
SignatureService signatureService, SignatureService signatureService,
User user, User user,
Persistence persistence) { Persistence persistence) {
super(trade.getOffer(), super(trade.getOffer(),
tradeMessageService, messageService,
walletService, walletService,
blockChainService, blockChainService,
signatureService, signatureService,

View file

@ -19,7 +19,7 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.listeners.SendMessageListener; import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage; import io.bitsquare.trade.protocol.trade.messages.PayoutTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel;
@ -36,7 +36,7 @@ public class SendPayoutTxToOfferer extends Task<SellerAsTakerModel> {
@Override @Override
protected void doRun() { protected void doRun() {
PayoutTxPublishedMessage tradeMessage = new PayoutTxPublishedMessage(model.id, model.getPayoutTx()); PayoutTxPublishedMessage tradeMessage = new PayoutTxPublishedMessage(model.id, model.getPayoutTx());
model.tradeMessageService.sendMessage(model.offerer.peer, tradeMessage, new SendMessageListener() { model.messageService.sendMessage(model.offerer.peer, tradeMessage, new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {
log.trace("PayoutTxPublishedMessage successfully arrived at peer"); log.trace("PayoutTxPublishedMessage successfully arrived at peer");

View file

@ -19,8 +19,8 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.trade.Trade; import io.bitsquare.trade.Trade;
import io.bitsquare.trade.listeners.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage; import io.bitsquare.trade.protocol.trade.messages.RequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel;
@ -47,7 +47,7 @@ public class SendRequestDepositTxInputsMessage extends Task<SellerAsTakerModel>
model.taker.pubKey model.taker.pubKey
); );
model.tradeMessageService.sendMessage(model.offerer.peer, msg, new SendMessageListener() { model.messageService.sendMessage(model.offerer.peer, msg, new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {
log.trace("Sending TakeOfferFeePayedMessage succeeded."); log.trace("Sending TakeOfferFeePayedMessage succeeded.");

View file

@ -19,7 +19,7 @@ package io.bitsquare.trade.protocol.trade.taker.tasks;
import io.bitsquare.common.taskrunner.Task; import io.bitsquare.common.taskrunner.Task;
import io.bitsquare.common.taskrunner.TaskRunner; import io.bitsquare.common.taskrunner.TaskRunner;
import io.bitsquare.trade.listeners.SendMessageListener; import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage; import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel; import io.bitsquare.trade.protocol.trade.taker.models.SellerAsTakerModel;
@ -48,7 +48,7 @@ public class SendSignedTakerDepositTx extends Task<SellerAsTakerModel> {
model.taker.outputs model.taker.outputs
); );
model.tradeMessageService.sendMessage(model.offerer.peer, tradeMessage, new SendMessageListener() { model.messageService.sendMessage(model.offerer.peer, tradeMessage, new SendMessageListener() {
@Override @Override
public void handleResult() { public void handleResult() {
complete(); complete();

View file

@ -34,7 +34,7 @@ import io.bitsquare.offer.Offer;
import io.bitsquare.offer.OfferBookService; import io.bitsquare.offer.OfferBookService;
import io.bitsquare.offer.tomp2p.TomP2POfferBookService; import io.bitsquare.offer.tomp2p.TomP2POfferBookService;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.network.TradeMessageService; import io.bitsquare.network.MessageService;
import io.bitsquare.network.tomp2p.TomP2PMessageService; import io.bitsquare.network.tomp2p.TomP2PMessageService;
import io.bitsquare.user.User; import io.bitsquare.user.User;
import io.bitsquare.util.DSAKeyUtil; import io.bitsquare.util.DSAKeyUtil;
@ -74,7 +74,7 @@ public class PlaceOfferProtocolTest {
private static final Logger log = LoggerFactory.getLogger(PlaceOfferProtocolTest.class); private static final Logger log = LoggerFactory.getLogger(PlaceOfferProtocolTest.class);
private WalletService walletService; private WalletService walletService;
private TradeMessageService tradeMessageService; private MessageService messageService;
private OfferBookService offerBookService; private OfferBookService offerBookService;
private final File dir = new File("./temp"); private final File dir = new File("./temp");
private final static String OFFER_ID = "offerID"; private final static String OFFER_ID = "offerID";
@ -96,9 +96,9 @@ public class PlaceOfferProtocolTest {
user.applyPersistedUser(null); user.applyPersistedUser(null);
bootstrappedPeerBuilder = new BootstrappedPeerBuilder(Node.DEFAULT_PORT, false, bootstrapNode, "<unspecified>"); bootstrappedPeerBuilder = new BootstrappedPeerBuilder(Node.DEFAULT_PORT, false, bootstrapNode, "<unspecified>");
tomP2PNode = new TomP2PNode(bootstrappedPeerBuilder); tomP2PNode = new TomP2PNode(bootstrappedPeerBuilder);
tradeMessageService = new TomP2PMessageService(tomP2PNode); messageService = new TomP2PMessageService(tomP2PNode);
Observable<BootstrapState> messageObservable = tomP2PNode.bootstrap(user.getMessageKeyPair(), tradeMessageService); Observable<BootstrapState> messageObservable = tomP2PNode.bootstrap(user.getMessageKeyPair(), messageService);
messageObservable.publish(); messageObservable.publish();
messageObservable.subscribe( messageObservable.subscribe(
state -> log.trace("state changed: " + state), state -> log.trace("state changed: " + state),