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

@ -31,7 +31,7 @@ import java.util.Arrays;
*/
public class AddressEntry implements Serializable {
private static final long serialVersionUID = 5501603992599920416L;
private final String offerId;
private final AddressContext addressContext;
private transient DeterministicKey keyPair;

View File

@ -294,7 +294,7 @@ public class WalletService {
public AddressEntry getAddressEntry(String offerId) {
log.trace("getAddressEntry called with offerId " + offerId);
Optional<AddressEntry> addressEntry = getAddressEntryList().stream().filter(e -> offerId.equals(e.getOfferId())).findFirst();
if (addressEntry.isPresent())
return addressEntry.get();
else

View File

@ -18,6 +18,11 @@
package io.bitsquare.gui;
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.main.MainView;
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.locale.BSResources;
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.name.Names;

View File

@ -17,11 +17,11 @@
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.trade.BuyView;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.common.viewfx.view.View;
import io.bitsquare.common.viewfx.view.ViewPath;
import com.google.inject.Inject;

View File

@ -18,6 +18,11 @@
package io.bitsquare.gui.main;
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.gui.Navigation;
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.SellView;
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.Named;

View File

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

View File

@ -17,16 +17,16 @@
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.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.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;

View File

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

View File

@ -17,12 +17,12 @@
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.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.gui.main.account.arbitrator.registration.ArbitratorRegistrationView;
import javax.inject.Inject;

View File

@ -17,18 +17,18 @@
package io.bitsquare.gui.main.account.arbitrator.browser;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService;
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.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.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.List;

View File

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

View File

@ -21,6 +21,8 @@ import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService;
import io.bitsquare.arbitration.Reputation;
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.util.BSFormatter;
import io.bitsquare.locale.BSResources;
@ -29,8 +31,6 @@ import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.User;
import io.bitsquare.util.DSAKeyUtil;
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.ECKey;

View File

@ -17,11 +17,11 @@
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.InitializableView;
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;

View File

@ -17,9 +17,9 @@
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.PasswordValidator;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject;

View File

@ -17,7 +17,8 @@
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.FiatAccountType;
import io.bitsquare.locale.Country;
@ -25,9 +26,8 @@ import io.bitsquare.locale.CountryUtil;
import io.bitsquare.locale.CurrencyUtil;
import io.bitsquare.locale.Region;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.User;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import com.google.inject.Inject;

View File

@ -17,6 +17,9 @@
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.FiatAccountType;
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.Country;
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.Currency;

View File

@ -17,6 +17,8 @@
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.FiatAccountType;
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.Country;
import io.bitsquare.locale.Region;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject;

View File

@ -17,20 +17,20 @@
package io.bitsquare.gui.main.account.content.irc;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService;
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.FiatAccountType;
import io.bitsquare.locale.CountryUtil;
import io.bitsquare.locale.CurrencyUtil;
import io.bitsquare.locale.LanguageUtil;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.User;
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.ECKey;

View File

@ -17,15 +17,15 @@
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.gui.components.InputTextField;
import io.bitsquare.gui.components.Popups;
import io.bitsquare.gui.main.help.Help;
import io.bitsquare.gui.main.help.HelpId;
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;

View File

@ -17,12 +17,12 @@
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.gui.util.validation.BankAccountNumberValidator;
import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.locale.BSResources;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject;

View File

@ -17,11 +17,11 @@
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.InitializableView;
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;

View File

@ -17,9 +17,9 @@
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.PasswordValidator;
import io.bitsquare.common.viewfx.model.ViewModel;
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.WalletService;
import io.bitsquare.btc.listeners.BalanceListener;
import io.bitsquare.common.viewfx.model.DataModel;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.User;
import io.bitsquare.common.viewfx.model.DataModel;
import org.bitcoinj.core.Coin;
import org.bitcoinj.core.InsufficientMoneyException;

View File

@ -17,6 +17,9 @@
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.components.AddressTextField;
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.HelpId;
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.List;

View File

@ -18,10 +18,10 @@
package io.bitsquare.gui.main.account.content.registration;
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.WithDataModel;
import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.locale.BSResources;
import org.bitcoinj.core.Address;
import org.bitcoinj.core.Coin;

View File

@ -17,19 +17,19 @@
package io.bitsquare.gui.main.account.content.restrictions;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.arbitration.ArbitratorMessageService;
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.CountryUtil;
import io.bitsquare.locale.LanguageUtil;
import io.bitsquare.locale.Region;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.User;
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.ECKey;

View File

@ -18,18 +18,18 @@
package io.bitsquare.gui.main.account.content.restrictions;
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.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.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;

View File

@ -18,10 +18,10 @@
package io.bitsquare.gui.main.account.content.restrictions;
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.ViewModel;
import io.bitsquare.locale.Country;
import io.bitsquare.locale.Region;
import com.google.inject.Inject;

View File

@ -17,11 +17,11 @@
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.InitializableView;
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;

View File

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

View File

@ -18,6 +18,13 @@
package io.bitsquare.gui.main.account.settings;
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.main.MainView;
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.seedwords.SeedWordsView;
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;

View File

@ -17,6 +17,12 @@
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.main.MainView;
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.seedwords.SeedWordsView;
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;

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.ValidateOffer;
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.ProcessPayoutTxPublishedMessage;
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.SetupListenerForBlockChainConfirmation;
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.VerifyTakeOfferFeePayment;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakerAccount;

View File

@ -17,16 +17,16 @@
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.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.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;

View File

@ -18,11 +18,11 @@
package io.bitsquare.gui.main.funds.transactions;
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.util.BSFormatter;
import io.bitsquare.util.Utilities;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
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.WalletService;
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.util.BSFormatter;
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.Coin;

View File

@ -17,18 +17,18 @@
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.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.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;

View File

@ -17,13 +17,13 @@
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.Offer;
import io.bitsquare.trade.Trade;
import io.bitsquare.trade.TradeManager;
import io.bitsquare.user.User;
import io.bitsquare.common.viewfx.model.Activatable;
import io.bitsquare.common.viewfx.model.DataModel;
import com.google.inject.Inject;

View File

@ -17,9 +17,9 @@
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.FxmlView;
import io.bitsquare.gui.components.Popups;
import javax.inject.Inject;

View File

@ -17,9 +17,9 @@
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.ViewModel;
import io.bitsquare.gui.util.BSFormatter;
import com.google.inject.Inject;

View File

@ -17,11 +17,11 @@
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.offer.Offer;
import io.bitsquare.util.Utilities;
import io.bitsquare.common.viewfx.view.ActivatableViewAndModel;
import io.bitsquare.common.viewfx.view.FxmlView;
import javax.inject.Inject;

View File

@ -17,11 +17,11 @@
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.util.BSFormatter;
import io.bitsquare.offer.Offer;
import io.bitsquare.common.viewfx.model.ActivatableWithDataModel;
import io.bitsquare.common.viewfx.model.ViewModel;
import com.google.inject.Inject;

View File

@ -18,12 +18,12 @@
package io.bitsquare.gui.main.portfolio.pending;
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.validation.BtcAddressValidator;
import io.bitsquare.locale.BSResources;
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.utils.Fiat;

View File

@ -17,17 +17,17 @@
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.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.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;

View File

@ -17,9 +17,9 @@
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.DataModel;
import io.bitsquare.user.Preferences;
import com.google.inject.Inject;

View File

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

View File

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

View File

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

View File

@ -17,6 +17,9 @@
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.components.InputTextField;
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.offer.Direction;
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.utils.Fiat;

View File

@ -17,22 +17,22 @@
package io.bitsquare.gui.main.trade.createoffer;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.arbitration.Arbitrator;
import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.btc.AddressEntry;
import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.WalletService;
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.locale.Country;
import io.bitsquare.offer.Direction;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.user.Preferences;
import io.bitsquare.trade.TradeManager;
import io.bitsquare.user.AccountSettings;
import io.bitsquare.user.Preferences;
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.utils.ExchangeRate;

View File

@ -18,14 +18,14 @@
package io.bitsquare.gui.main.trade.createoffer;
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.validation.BtcValidator;
import io.bitsquare.gui.util.validation.FiatValidator;
import io.bitsquare.gui.util.validation.InputValidator;
import io.bitsquare.locale.BSResources;
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.Coin;

View File

@ -17,6 +17,10 @@
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.gui.util.BSFormatter;
import io.bitsquare.locale.Country;
@ -24,13 +28,9 @@ import io.bitsquare.locale.CurrencyUtil;
import io.bitsquare.offer.Direction;
import io.bitsquare.offer.Offer;
import io.bitsquare.offer.OfferBook;
import io.bitsquare.user.Preferences;
import io.bitsquare.trade.TradeManager;
import io.bitsquare.user.Preferences;
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.utils.ExchangeRate;

View File

@ -17,6 +17,8 @@
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.util.BSFormatter;
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.offer.Direction;
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.utils.Fiat;

View File

@ -150,7 +150,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel<TakeOfferDataModel> im
applyOfferState(offer.stateProperty().get());
}
private void applyOfferState(Offer.State state) {
private void applyOfferState(Offer.State state) {
log.debug("offer state = " + state);
switch (state) {

View File

@ -28,5 +28,5 @@ public interface ClientNode {
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;
/**
* Interface for the object handling incoming messages.
*/
public interface MessageBroker {
void handleMessage(Object message, Peer sender);
import io.bitsquare.network.listener.GetPeerAddressListener;
import java.security.PublicKey;
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/>.
*/
package io.bitsquare.trade.handlers;
import io.bitsquare.network.Message;
import io.bitsquare.network.Peer;
package io.bitsquare.network;
public interface MessageHandler {
void handleMessage(Message message, Peer sender);

View File

@ -17,15 +17,12 @@
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;
public interface TradeMessageService extends MessageBroker {
public interface MessageService extends MessageHandler {
void setExecutor(Executor executor);
@ -34,6 +31,4 @@ public interface TradeMessageService extends MessageBroker {
void addMessageHandler(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/>.
*/
package io.bitsquare.trade.listeners;
package io.bitsquare.network.listener;
import io.bitsquare.network.Peer;

View File

@ -15,7 +15,7 @@
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/
package io.bitsquare.trade.listeners;
package io.bitsquare.network.listener;
public interface SendMessageListener {
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;
import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.Peer;
import io.bitsquare.network.TradeMessageService;
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.CopyOnWriteArrayList;
import java.util.concurrent.Executor;
import net.tomp2p.dht.FutureGet;
import net.tomp2p.futures.BaseFuture;
import net.tomp2p.futures.BaseFutureAdapter;
import net.tomp2p.futures.BaseFutureListener;
import net.tomp2p.futures.FutureDirect;
import net.tomp2p.peers.Number160;
import net.tomp2p.utils.Utils;
import org.slf4j.Logger;
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).
* <p/>
*/
public class TomP2PMessageService implements TradeMessageService {
public class TomP2PMessageService implements MessageService {
private static final Logger log = LoggerFactory.getLogger(TomP2PMessageService.class);
private final TomP2PNode tomP2PNode;
@ -64,39 +57,17 @@ public class TomP2PMessageService implements TradeMessageService {
this.tomP2PNode = tomP2PNode;
}
@Override
public void setExecutor(Executor executor) {
this.executor = executor;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Find peer address by publicKey
///////////////////////////////////////////////////////////////////////////////////////////
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);
}
}
});
}
///////////////////////////////////////////////////////////////////////////////////////////
// Trade messages
// Messages
///////////////////////////////////////////////////////////////////////////////////////////
@Override
public void sendMessage(Peer peer, Message message, SendMessageListener listener) {
if (!(peer instanceof TomP2PPeer)) {
throw new IllegalArgumentException("peer must be of type TomP2PPeer");
@ -126,11 +97,13 @@ public class TomP2PMessageService implements TradeMessageService {
// Event Listeners
///////////////////////////////////////////////////////////////////////////////////////////
@Override
public void addMessageHandler(MessageHandler listener) {
if (!messageHandlers.add(listener))
throw new RuntimeException("Add listener did not change list. Probably listener has been already added.");
}
@Override
public void removeMessageHandler(MessageHandler listener) {
if (!messageHandlers.remove(listener))
throw new RuntimeException("Try to remove listener which was never added.");
@ -142,8 +115,8 @@ public class TomP2PMessageService implements TradeMessageService {
///////////////////////////////////////////////////////////////////////////////////////////
@Override
public void handleMessage(Object message, Peer sender) {
if (message instanceof Message && sender instanceof TomP2PPeer) {
public void handleMessage(Message message, Peer sender) {
if (sender instanceof TomP2PPeer) {
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.ClientNode;
import io.bitsquare.network.DHTService;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.NetworkModule;
import io.bitsquare.network.Node;
import io.bitsquare.network.TradeMessageService;
import com.google.inject.Injector;
import com.google.inject.Provider;
@ -51,7 +52,8 @@ public class TomP2PNetworkModule extends NetworkModule {
protected void doConfigure() {
bind(ClientNode.class).to(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(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();
}
}
class TomP2PTradeMessageServiceProvider implements Provider<TradeMessageService> {
private final TradeMessageService tradeMessageService;
class TomP2PMessageServiceProvider implements Provider<MessageService> {
private final MessageService messageService;
@Inject
public TomP2PTradeMessageServiceProvider(TomP2PNode tomP2PNode) {
tradeMessageService = new TomP2PMessageService(tomP2PNode);
tradeMessageService.setExecutor(Platform::runLater);
public TomP2PMessageServiceProvider(TomP2PNode tomP2PNode) {
messageService = new TomP2PMessageService(tomP2PNode);
messageService.setExecutor(Platform::runLater);
}
public TradeMessageService get() {
return tradeMessageService;
public MessageService get() {
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.ClientNode;
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.Node;
@ -104,7 +105,7 @@ public class TomP2PNode implements ClientNode {
// 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.");
this.keyPair = keyPair;
@ -125,7 +126,7 @@ public class TomP2PNode implements ClientNode {
TomP2PNode.this.peerDHT = peerDHT;
setupTimerForIPCheck();
setupTimerForStoreAddress();
setupReplyHandler(messageBroker);
setupReplyHandler(messageHandler);
try {
storeAddress();
} catch (NetworkException e) {
@ -186,7 +187,7 @@ public class TomP2PNode implements ClientNode {
public Node getBootstrapNodeAddress() {
return bootstrappedPeerBuilder.getBootstrapNode();
}
///////////////////////////////////////////////////////////////////////////////////////////
// Generic DHT methods
@ -333,14 +334,16 @@ public class TomP2PNode implements ClientNode {
// Private
///////////////////////////////////////////////////////////////////////////////////////////
private void setupReplyHandler(MessageBroker messageBroker) {
private void setupReplyHandler(MessageHandler messageHandler) {
peerDHT.peer().objectDataReply((sender, request) -> {
log.debug("handleMessage peerAddress " + sender);
log.debug("handleMessage message " + request);
if (!sender.equals(peerDHT.peer().peerAddress())) {
if (messageBroker != null)
messageBroker.handleMessage(request, new TomP2PPeer(sender));
if (request instanceof Message)
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 {
throw new RuntimeException("Received msg from myself. That must never happen.");

View File

@ -17,11 +17,11 @@
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.offer.Offer;
import io.bitsquare.offer.OfferBookService;
import io.bitsquare.common.handlers.FaultHandler;
import io.bitsquare.common.handlers.ResultHandler;
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.crypto.SignatureService;
import io.bitsquare.fiat.FiatAccount;
import io.bitsquare.network.DHTService;
import io.bitsquare.network.Message;
import io.bitsquare.network.MessageService;
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.Offer;
import io.bitsquare.offer.OfferBookService;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.trade.handlers.TradeResultHandler;
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.CheckOfferAvailabilityProtocol;
import io.bitsquare.trade.protocol.availability.messages.ReportOfferAvailabilityMessage;
@ -70,7 +71,8 @@ public class TradeManager {
private final User user;
private final AccountSettings accountSettings;
private final Persistence persistence;
private final TradeMessageService tradeMessageService;
private final MessageService messageService;
private final DHTService dhtService;
private final BlockChainService blockChainService;
private final WalletService walletService;
private final SignatureService signatureService;
@ -93,13 +95,14 @@ public class TradeManager {
@Inject
public TradeManager(User user, AccountSettings accountSettings, Persistence persistence,
TradeMessageService tradeMessageService, BlockChainService blockChainService,
MessageService messageService, DHTService dhtService, BlockChainService blockChainService,
WalletService walletService, SignatureService signatureService,
OfferBookService offerBookService) {
this.user = user;
this.accountSettings = accountSettings;
this.persistence = persistence;
this.tradeMessageService = tradeMessageService;
this.messageService = messageService;
this.dhtService = dhtService;
this.blockChainService = blockChainService;
this.walletService = walletService;
this.signatureService = signatureService;
@ -120,7 +123,7 @@ public class TradeManager {
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
@ -148,7 +151,8 @@ public class TradeManager {
if (!checkOfferAvailabilityProtocolMap.containsKey(offer.getId())) {
CheckOfferAvailabilityModel model = new CheckOfferAvailabilityModel(
offer,
tradeMessageService);
messageService,
dhtService);
CheckOfferAvailabilityProtocol protocol = new CheckOfferAvailabilityProtocol(model,
() -> disposeCheckOfferAvailabilityRequest(offer),
@ -211,7 +215,7 @@ public class TradeManager {
}
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,
() -> {
disposeCheckOfferAvailabilityRequest(offer);
@ -255,7 +259,7 @@ public class TradeManager {
SellerAsTakerModel model = new SellerAsTakerModel(
trade,
peer,
tradeMessageService,
messageService,
walletService,
blockChainService,
signatureService,
@ -323,7 +327,7 @@ public class TradeManager {
checkNotNull(offerId);
ReportOfferAvailabilityMessage reportOfferAvailabilityMessage = new ReportOfferAvailabilityMessage(offerId, isOfferOpen(offerId));
tradeMessageService.sendMessage(sender, reportOfferAvailabilityMessage, new SendMessageListener() {
messageService.sendMessage(sender, reportOfferAvailabilityMessage, new SendMessageListener() {
@Override
public void handleResult() {
// 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(
trade,
tradeMessageService,
messageService,
walletService,
blockChainService,
signatureService,
@ -418,7 +422,7 @@ public class TradeManager {
() -> log.debug("remove offer was successful"),
(message) -> log.error(message),
false);
// after we have published the deposit tx we add that trade to the pendingTrades
if (pendingTrades.containsKey(trade.getId()))
log.error("That must never happen: Trades contains already an trade with the ID " + trade.getId());

View File

@ -18,9 +18,10 @@
package io.bitsquare.trade.protocol.availability;
import io.bitsquare.common.taskrunner.SharedTaskModel;
import io.bitsquare.network.DHTService;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.Peer;
import io.bitsquare.offer.Offer;
import io.bitsquare.network.TradeMessageService;
import io.bitsquare.trade.protocol.trade.messages.OfferMessage;
import org.slf4j.Logger;
@ -30,14 +31,16 @@ public class CheckOfferAvailabilityModel extends SharedTaskModel {
private static final Logger log = LoggerFactory.getLogger(CheckOfferAvailabilityModel.class);
public final Offer offer;
public final TradeMessageService tradeMessageService;
public final MessageService messageService;
public final DHTService dhtService;
private Peer peer;
private OfferMessage message;
public CheckOfferAvailabilityModel(Offer offer, TradeMessageService tradeMessageService) {
public CheckOfferAvailabilityModel(Offer offer, MessageService messageService, DHTService dhtService) {
this.offer = offer;
this.tradeMessageService = tradeMessageService;
this.messageService = messageService;
this.dhtService = dhtService;
}
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.taskrunner.TaskRunner;
import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
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.tasks.GetPeerAddress;
import io.bitsquare.trade.protocol.availability.tasks.ProcessReportOfferAvailabilityMessage;
@ -55,7 +55,7 @@ public class CheckOfferAvailabilityProtocol {
}
public void cleanup() {
model.tradeMessageService.removeMessageHandler(messageHandler);
model.messageService.removeMessageHandler(messageHandler);
}
@ -64,7 +64,7 @@ public class CheckOfferAvailabilityProtocol {
///////////////////////////////////////////////////////////////////////////////////////////
public void checkOfferAvailability() {
model.tradeMessageService.addMessageHandler(messageHandler);
model.messageService.addMessageHandler(messageHandler);
taskRunner = new TaskRunner<>(model,
() -> {

View File

@ -21,7 +21,6 @@ import io.bitsquare.trade.protocol.trade.messages.OfferMessage;
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 {
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.TaskRunner;
import io.bitsquare.network.Peer;
import io.bitsquare.network.listener.GetPeerAddressListener;
import io.bitsquare.offer.Offer;
import io.bitsquare.trade.listeners.GetPeerAddressListener;
import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityModel;
import org.slf4j.Logger;
@ -39,7 +39,7 @@ public class GetPeerAddress extends Task<CheckOfferAvailabilityModel> {
@Override
protected void doRun() {
try {
model.tradeMessageService.findPeerAddress(model.offer.getMessagePublicKey(), new GetPeerAddressListener() {
model.dhtService.findPeerAddress(model.offer.getMessagePublicKey(), new GetPeerAddressListener() {
@Override
public void onResult(Peer 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.TaskRunner;
import io.bitsquare.network.listener.SendMessageListener;
import io.bitsquare.offer.Offer;
import io.bitsquare.trade.listeners.SendMessageListener;
import io.bitsquare.trade.protocol.availability.CheckOfferAvailabilityModel;
import io.bitsquare.trade.protocol.availability.messages.RequestIsOfferAvailableMessage;
@ -37,7 +37,7 @@ public class RequestIsOfferAvailable extends Task<CheckOfferAvailabilityModel> {
@Override
protected void doRun() {
try {
model.tradeMessageService.sendMessage(model.getPeer(), new RequestIsOfferAvailableMessage(model.offer.getId()),
model.messageService.sendMessage(model.getPeer(), new RequestIsOfferAvailableMessage(model.offer.getId()),
new SendMessageListener() {
@Override
public void handleResult() {

View File

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

View File

@ -18,14 +18,15 @@
package io.bitsquare.trade.protocol.trade.offerer;
import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.Peer;
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.RequestDepositTxInputsMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestOffererPublishDepositTxMessage;
import io.bitsquare.trade.protocol.trade.messages.TradeMessage;
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.ProcessPayoutTxPublishedMessage;
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.SetupListenerForBlockChainConfirmation;
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.VerifyTakeOfferFeePayment;
import io.bitsquare.trade.protocol.trade.offerer.tasks.VerifyTakerAccount;
@ -67,7 +67,7 @@ public class BuyerAsOffererProtocol {
this.model = model;
messageHandler = this::handleMessage;
model.tradeMessageService.addMessageHandler(messageHandler);
model.messageService.addMessageHandler(messageHandler);
}
@ -77,11 +77,11 @@ public class BuyerAsOffererProtocol {
public void cleanup() {
log.debug("cleanup " + this);
// tradeMessageService and transactionConfidence use CopyOnWriteArrayList as listeners, but be safe and delay remove a bit.
Platform.runLater(() -> {
model.tradeMessageService.removeMessageHandler(messageHandler);
model.messageService.removeMessageHandler(messageHandler);
if (transactionConfidence != null) {
if (!transactionConfidence.removeEventListener(transactionConfidenceListener))
throw new RuntimeException("Remove transactionConfidenceListener failed at BuyerAsOffererProtocol.");
@ -180,7 +180,7 @@ public class BuyerAsOffererProtocol {
BuyerAsOffererTaskRunner<BuyerAsOffererModel> taskRunner = new BuyerAsOffererTaskRunner<>(model,
() -> {
log.debug("sequence at handlePayoutTxPublishedMessage completed");
// we are done!
model.onComplete();
},

View File

@ -20,9 +20,9 @@ package io.bitsquare.trade.protocol.trade.offerer.models;
import io.bitsquare.btc.BlockChainService;
import io.bitsquare.btc.WalletService;
import io.bitsquare.crypto.SignatureService;
import io.bitsquare.network.MessageService;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.trade.Trade;
import io.bitsquare.network.TradeMessageService;
import io.bitsquare.trade.protocol.trade.SharedTradeModel;
import io.bitsquare.user.User;
@ -43,14 +43,14 @@ public class BuyerAsOffererModel extends SharedTradeModel implements Serializabl
private String takeOfferFeeTxId;
public BuyerAsOffererModel(Trade trade,
TradeMessageService tradeMessageService,
MessageService messageService,
WalletService walletService,
BlockChainService blockChainService,
SignatureService signatureService,
User user,
Persistence persistence) {
super(trade.getOffer(),
tradeMessageService,
messageService,
walletService,
blockChainService,
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.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.offerer.models.BuyerAsOffererModel;
@ -43,7 +43,7 @@ public class RequestDepositPayment extends Task<BuyerAsOffererModel> {
model.offerer.fiatAccount,
model.offerer.accountId);
model.tradeMessageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() {
model.messageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() {
@Override
public void handleResult() {
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.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.offerer.models.BuyerAsOffererModel;
@ -41,7 +41,7 @@ public class SendBankTransferStartedMessage extends Task<BuyerAsOffererModel> {
model.offerer.payoutAmount,
model.taker.payoutAmount,
model.offerer.addressEntry.getAddressString());
model.tradeMessageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() {
model.messageService.sendMessage(model.taker.peer, tradeMessage, new SendMessageListener() {
@Override
public void handleResult() {
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.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.offerer.models.BuyerAsOffererModel;
@ -37,7 +37,7 @@ public class SendDepositTxIdToTaker extends Task<BuyerAsOffererModel> {
protected void doRun() {
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
public void handleResult() {
log.trace("DepositTxPublishedMessage successfully arrived at peer");

View File

@ -18,9 +18,9 @@
package io.bitsquare.trade.protocol.trade.taker;
import io.bitsquare.network.Message;
import io.bitsquare.network.MessageHandler;
import io.bitsquare.network.Peer;
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.DepositTxPublishedMessage;
import io.bitsquare.trade.protocol.trade.messages.RequestDepositPaymentMessage;
@ -68,7 +68,7 @@ public class SellerAsTakerProtocol {
log.debug("New SellerAsTakerProtocol " + this);
this.model = model;
messageHandler = this::handleMessage;
model.tradeMessageService.addMessageHandler(messageHandler);
model.messageService.addMessageHandler(messageHandler);
}
@ -78,7 +78,7 @@ public class SellerAsTakerProtocol {
public void cleanup() {
log.debug("cleanup " + this);
model.tradeMessageService.removeMessageHandler(messageHandler);
model.messageService.removeMessageHandler(messageHandler);
}
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.WalletService;
import io.bitsquare.crypto.SignatureService;
import io.bitsquare.network.MessageService;
import io.bitsquare.network.Peer;
import io.bitsquare.persistence.Persistence;
import io.bitsquare.trade.Trade;
import io.bitsquare.network.TradeMessageService;
import io.bitsquare.trade.protocol.trade.SharedTradeModel;
import io.bitsquare.user.User;
@ -48,14 +48,14 @@ public class SellerAsTakerModel extends SharedTradeModel implements Serializable
public SellerAsTakerModel(Trade trade,
Peer offererPeer,
TradeMessageService tradeMessageService,
MessageService messageService,
WalletService walletService,
BlockChainService blockChainService,
SignatureService signatureService,
User user,
Persistence persistence) {
super(trade.getOffer(),
tradeMessageService,
messageService,
walletService,
blockChainService,
signatureService,

View File

@ -55,7 +55,7 @@ public class BroadcastTakeOfferFeeTx extends Task<SellerAsTakerModel> {
@Override
public void onFailure(@NotNull Throwable t) {
model.trade.setState(Trade.State.TAKE_OFFER_FEE_PUBLISH_FAILED);
failed(t);
}
});

View File

@ -44,7 +44,7 @@ public class ProcessDepositTxPublishedMessage extends Task<SellerAsTakerModel> {
DepositTxPublishedMessage message = (DepositTxPublishedMessage) model.getTradeMessage();
model.trade.setDepositTx(checkNotNull(message.depositTx));
model.trade.setState(Trade.State.DEPOSIT_PUBLISHED);
complete();
} catch (Throwable t) {
failed(t);

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.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.taker.models.SellerAsTakerModel;
@ -36,7 +36,7 @@ public class SendPayoutTxToOfferer extends Task<SellerAsTakerModel> {
@Override
protected void doRun() {
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
public void handleResult() {
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.TaskRunner;
import io.bitsquare.network.listener.SendMessageListener;
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.taker.models.SellerAsTakerModel;
@ -47,7 +47,7 @@ public class SendRequestDepositTxInputsMessage extends Task<SellerAsTakerModel>
model.taker.pubKey
);
model.tradeMessageService.sendMessage(model.offerer.peer, msg, new SendMessageListener() {
model.messageService.sendMessage(model.offerer.peer, msg, new SendMessageListener() {
@Override
public void handleResult() {
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.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.taker.models.SellerAsTakerModel;
@ -48,7 +48,7 @@ public class SendSignedTakerDepositTx extends Task<SellerAsTakerModel> {
model.taker.outputs
);
model.tradeMessageService.sendMessage(model.offerer.peer, tradeMessage, new SendMessageListener() {
model.messageService.sendMessage(model.offerer.peer, tradeMessage, new SendMessageListener() {
@Override
public void handleResult() {
complete();

View File

@ -62,7 +62,7 @@ public class TakerCreatesAndSignsDepositTx extends Task<SellerAsTakerModel> {
Trade.State state = Trade.State.FAULT;
state.setErrorMessage(errorMessage);
model.trade.setState(state);
failed(e);
}
}

View File

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