diff --git a/common/pom.xml b/common/pom.xml index cce4bbca73..85c67bf6b9 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -22,10 +22,5 @@ spring-core ${spring.version} - - com.google.protobuf - protobuf-java - 3.2.0 - \ No newline at end of file diff --git a/common/src/main/java/io/bisq/app/DevEnv.java b/common/src/main/java/io/bisq/app/DevEnv.java index ae9c3c395c..43e489397e 100644 --- a/common/src/main/java/io/bisq/app/DevEnv.java +++ b/common/src/main/java/io/bisq/app/DevEnv.java @@ -8,7 +8,7 @@ public class DevEnv { // The UI got set the private dev key so the developer does not need to do anything and can test those features. // Features: Arbitration registration (alt+R at account), Alert/Update (alt+m), private message to a // peer (click user icon and alt+r), filter/block offers by various data like offer ID (cmd + f). - // The user can set a program argument to ignore all of those privileged messages. They are intended for + // The user can set a program argument to ignore all of those privileged network_messages. They are intended for // emergency cases only (beside update message and arbitrator registration). public static final boolean USE_DEV_PRIVILEGE_KEYS = true; public static final String DEV_PRIVILEGE_PUB_KEY = "027a381b5333a56e1cc3d90d3a7d07f26509adf7029ed06fc997c656621f8da1ee"; diff --git a/network/src/main/java/io/bisq/messages/locale/BankUtil.java b/common/src/main/java/io/bisq/locale/BankUtil.java similarity index 99% rename from network/src/main/java/io/bisq/messages/locale/BankUtil.java rename to common/src/main/java/io/bisq/locale/BankUtil.java index 83a1073e09..06461d7745 100644 --- a/network/src/main/java/io/bisq/messages/locale/BankUtil.java +++ b/common/src/main/java/io/bisq/locale/BankUtil.java @@ -15,9 +15,8 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; -import io.bisq.locale.Res; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/locale/Country.java b/common/src/main/java/io/bisq/locale/Country.java similarity index 98% rename from network/src/main/java/io/bisq/messages/locale/Country.java rename to common/src/main/java/io/bisq/locale/Country.java index 3b362ab7c8..299cdb1942 100644 --- a/network/src/main/java/io/bisq/messages/locale/Country.java +++ b/common/src/main/java/io/bisq/locale/Country.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; diff --git a/network/src/main/java/io/bisq/messages/locale/Region.java b/common/src/main/java/io/bisq/locale/Region.java similarity index 98% rename from network/src/main/java/io/bisq/messages/locale/Region.java rename to common/src/main/java/io/bisq/locale/Region.java index 67d90c17dc..c633ab260b 100644 --- a/network/src/main/java/io/bisq/messages/locale/Region.java +++ b/common/src/main/java/io/bisq/locale/Region.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; diff --git a/common/src/main/resources/i18n/displayStrings.properties b/common/src/main/resources/i18n/displayStrings.properties index a09b774ea4..55d0c07b08 100644 --- a/common/src/main/resources/i18n/displayStrings.properties +++ b/common/src/main/resources/i18n/displayStrings.properties @@ -290,7 +290,7 @@ offerbook.nrOffers=No. of offers: {0} offerbook.volume={0} (min - max) # e.g: Create new offer to buy BTC - {0} buy or sell, {1} BTC or other currency like ETH offerbook.createOfferTo=Create new offer to {0} {1} -# postfix to previous. e.g.: Create new offer to buy BTC with ETH or Create new offer to sell BTC for ETH +# postfix to previous. e.g.: Create new offer to buy BTC with ETH or Create new offer to sell BTC for ETH offerbook.buyWithOtherCurrency=with {0} offerbook.sellForOtherCurrency=for {0} offerbook.wantTo=I want to: diff --git a/common/src/main/resources/i18n/displayStrings_de.properties b/common/src/main/resources/i18n/displayStrings_de.properties index f620bc11ec..04de3791d7 100644 --- a/common/src/main/resources/i18n/displayStrings_de.properties +++ b/common/src/main/resources/i18n/displayStrings_de.properties @@ -290,7 +290,7 @@ offerbook.nrOffers=No. of offers: {0} offerbook.volume={0} (min - max) # e.g: Create new offer to buy BTC - {0} buy or sell, {1} BTC or other currency like ETH offerbook.createOfferTo=Create new offer to {0} {1} -# postfix to previous. e.g.: Create new offer to buy BTC with ETH or Create new offer to sell BTC for ETH +# postfix to previous. e.g.: Create new offer to buy BTC with ETH or Create new offer to sell BTC for ETH offerbook.buyWithOtherCurrency=with {0} offerbook.sellForOtherCurrency=for {0} offerbook.wantTo=I want to: diff --git a/core/src/main/java/io/bisq/alert/AlertManager.java b/core/src/main/java/io/bisq/alert/AlertManager.java index f90bfa1e25..c551389bbe 100644 --- a/core/src/main/java/io/bisq/alert/AlertManager.java +++ b/core/src/main/java/io/bisq/alert/AlertManager.java @@ -21,11 +21,11 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.bisq.app.AppOptionKeys; import io.bisq.app.DevEnv; -import io.bisq.common.crypto.KeyRing; -import io.bisq.messages.alert.Alert; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.alert.Alert; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.storage.HashMapChangedListener; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import io.bisq.user.User; import javafx.beans.property.ObjectProperty; import javafx.beans.property.ReadOnlyObjectProperty; diff --git a/core/src/main/java/io/bisq/alert/PrivateNotificationManager.java b/core/src/main/java/io/bisq/alert/PrivateNotificationManager.java index aa8b2e2abb..b871c50476 100644 --- a/core/src/main/java/io/bisq/alert/PrivateNotificationManager.java +++ b/core/src/main/java/io/bisq/alert/PrivateNotificationManager.java @@ -21,15 +21,15 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.bisq.app.AppOptionKeys; import io.bisq.app.DevEnv; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.PubKeyRing; -import io.bisq.crypto.DecryptedMsgWithPubKey; -import io.bisq.messages.Message; -import io.bisq.messages.alert.PrivateNotification; -import io.bisq.messages.alert.PrivateNotificationMessage; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; -import io.bisq.p2p.messaging.SendMailboxMessageListener; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.alert.PrivateNotification; +import io.bisq.network_messages.alert.PrivateNotificationMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.storage.P2PService; +import io.bisq.network_messages.p2p.messaging.SendMailboxMessageListener; import javafx.beans.property.ObjectProperty; import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; diff --git a/core/src/main/java/io/bisq/app/BisqExecutable.java b/core/src/main/java/io/bisq/app/BisqExecutable.java index b601329f82..db46c5c8e2 100644 --- a/core/src/main/java/io/bisq/app/BisqExecutable.java +++ b/core/src/main/java/io/bisq/app/BisqExecutable.java @@ -20,11 +20,11 @@ package io.bisq.app; import io.bisq.BisqException; import io.bisq.btc.RegTestHost; import io.bisq.common.CommonOptionKeys; -import io.bisq.messages.btc.BitcoinNetwork; -import io.bisq.messages.btc.BtcOptionKeys; -import io.bisq.messages.dao.blockchain.RpcOptionKeys; +import io.bisq.network_messages.btc.BitcoinNetwork; +import io.bisq.network_messages.btc.BtcOptionKeys; +import io.bisq.network_messages.dao.blockchain.RpcOptionKeys; import io.bisq.network.NetworkOptionKeys; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.storage.P2PService; import io.bisq.util.joptsimple.EnumValueConverter; import joptsimple.OptionException; import joptsimple.OptionParser; @@ -122,7 +122,7 @@ public abstract class BisqExecutable { description("Application data directory", BisqEnvironment.DEFAULT_APP_DATA_DIR)) .withRequiredArg(); parser.accepts(AppOptionKeys.IGNORE_DEV_MSG_KEY, - description("If set to true all signed messages from bisq developers are ignored " + + description("If set to true all signed network_messages from bisq developers are ignored " + "(Global alert, Version update alert, Filters for offers, nodes or trading account data)", false)) .withRequiredArg() .ofType(boolean.class); diff --git a/core/src/main/java/io/bisq/arbitration/ArbitratorManager.java b/core/src/main/java/io/bisq/arbitration/ArbitratorManager.java index e025015a71..2f4eb20c36 100644 --- a/core/src/main/java/io/bisq/arbitration/ArbitratorManager.java +++ b/core/src/main/java/io/bisq/arbitration/ArbitratorManager.java @@ -21,16 +21,16 @@ import com.google.inject.Inject; import io.bisq.app.DevEnv; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.common.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.user.Preferences; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.user.Preferences; import io.bisq.p2p.BootstrapListener; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.storage.HashMapChangedListener; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import io.bisq.user.User; import javafx.collections.FXCollections; import javafx.collections.ObservableMap; diff --git a/core/src/main/java/io/bisq/arbitration/ArbitratorService.java b/core/src/main/java/io/bisq/arbitration/ArbitratorService.java index 61e4932610..1254146fab 100644 --- a/core/src/main/java/io/bisq/arbitration/ArbitratorService.java +++ b/core/src/main/java/io/bisq/arbitration/ArbitratorService.java @@ -19,9 +19,9 @@ package io.bisq.arbitration; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.storage.HashMapChangedListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/io/bisq/arbitration/DisputeManager.java b/core/src/main/java/io/bisq/arbitration/DisputeManager.java index dd66720b6d..31fab069f5 100644 --- a/core/src/main/java/io/bisq/arbitration/DisputeManager.java +++ b/core/src/main/java/io/bisq/arbitration/DisputeManager.java @@ -27,20 +27,20 @@ import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.TradeWalletService; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.PubKeyRing; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; import io.bisq.common.handlers.FaultHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.crypto.DecryptedMsgWithPubKey; +import io.bisq.network_messages.DecryptedMsgWithPubKey; import io.bisq.locale.Res; -import io.bisq.messages.Message; -import io.bisq.messages.arbitration.*; -import io.bisq.messages.arbitration.payload.Attachment; -import io.bisq.messages.trade.payload.Contract; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.arbitration.*; +import io.bisq.network_messages.arbitration.payload.Attachment; +import io.bisq.network_messages.trade.payload.Contract; import io.bisq.p2p.BootstrapListener; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; -import io.bisq.p2p.messaging.SendMailboxMessageListener; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.storage.P2PService; +import io.bisq.network_messages.p2p.messaging.SendMailboxMessageListener; import io.bisq.storage.Storage; import io.bisq.trade.Tradable; import io.bisq.trade.Trade; @@ -632,7 +632,7 @@ public class DisputeManager { else { Optional openOfferOptional = openOfferManager.getOpenOfferById(dispute.getTradeId()); if (openOfferOptional.isPresent()) - openOfferManager.closeOpenOffer(openOfferOptional.get().getOffer()); + openOfferManager.closeOpenOffer(openOfferOptional.get().getOffer().getOfferPayload()); } } diff --git a/core/src/main/java/io/bisq/btc/BitcoinModule.java b/core/src/main/java/io/bisq/btc/BitcoinModule.java index 456db48a3c..ea19cac0b1 100644 --- a/core/src/main/java/io/bisq/btc/BitcoinModule.java +++ b/core/src/main/java/io/bisq/btc/BitcoinModule.java @@ -26,10 +26,10 @@ import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.TradeWalletService; import io.bisq.btc.wallet.WalletsSetup; import io.bisq.http.HttpClient; -import io.bisq.messages.btc.BtcOptionKeys; -import io.bisq.messages.btc.UserAgent; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.provider.price.PriceFeedService; +import io.bisq.network_messages.btc.BtcOptionKeys; +import io.bisq.network_messages.btc.UserAgent; +import io.bisq.provider.fee.FeeService; +import io.bisq.provider.price.PriceFeedService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.env.Environment; diff --git a/core/src/main/java/io/bisq/btc/blockchain/providers/BlockchainTxProvider.java b/core/src/main/java/io/bisq/btc/blockchain/providers/BlockchainTxProvider.java index 5e86adaf41..16e007de5a 100644 --- a/core/src/main/java/io/bisq/btc/blockchain/providers/BlockchainTxProvider.java +++ b/core/src/main/java/io/bisq/btc/blockchain/providers/BlockchainTxProvider.java @@ -2,7 +2,7 @@ package io.bisq.btc.blockchain.providers; import io.bisq.http.HttpClient; import io.bisq.http.HttpException; -import io.bisq.messages.btc.provider.HttpClientProvider; +import io.bisq.provider.HttpClientProvider; import org.bitcoinj.core.Coin; import java.io.IOException; diff --git a/core/src/main/java/io/bisq/btc/data/InputsAndChangeOutput.java b/core/src/main/java/io/bisq/btc/data/InputsAndChangeOutput.java index c348876a28..85f05e762c 100644 --- a/core/src/main/java/io/bisq/btc/data/InputsAndChangeOutput.java +++ b/core/src/main/java/io/bisq/btc/data/InputsAndChangeOutput.java @@ -17,7 +17,7 @@ package io.bisq.btc.data; -import io.bisq.messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.btc.data.RawTransactionInput; import javax.annotation.Nullable; import java.util.ArrayList; diff --git a/core/src/main/java/io/bisq/btc/data/PreparedDepositTxAndOffererInputs.java b/core/src/main/java/io/bisq/btc/data/PreparedDepositTxAndOffererInputs.java index d097bea4fd..43e9c722e0 100644 --- a/core/src/main/java/io/bisq/btc/data/PreparedDepositTxAndOffererInputs.java +++ b/core/src/main/java/io/bisq/btc/data/PreparedDepositTxAndOffererInputs.java @@ -17,7 +17,7 @@ package io.bisq.btc.data; -import io.bisq.messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.btc.data.RawTransactionInput; import java.util.ArrayList; diff --git a/core/src/main/java/io/bisq/btc/provider/squ/BsqUtxoFeedProvider.java b/core/src/main/java/io/bisq/btc/provider/squ/BsqUtxoFeedProvider.java index a40f317afe..8aedb22ad4 100644 --- a/core/src/main/java/io/bisq/btc/provider/squ/BsqUtxoFeedProvider.java +++ b/core/src/main/java/io/bisq/btc/provider/squ/BsqUtxoFeedProvider.java @@ -3,7 +3,7 @@ package io.bisq.btc.provider.squ; import io.bisq.common.util.Tuple2; import io.bisq.http.HttpClient; import io.bisq.http.HttpException; -import io.bisq.messages.btc.provider.HttpClientProvider; +import io.bisq.provider.HttpClientProvider; import org.bitcoinj.core.Coin; import org.bitcoinj.core.Sha256Hash; import org.bitcoinj.core.UTXO; diff --git a/core/src/main/java/io/bisq/btc/provider/squ/BsqUtxoFeedService.java b/core/src/main/java/io/bisq/btc/provider/squ/BsqUtxoFeedService.java index 7e595117a5..91d4ff6811 100644 --- a/core/src/main/java/io/bisq/btc/provider/squ/BsqUtxoFeedService.java +++ b/core/src/main/java/io/bisq/btc/provider/squ/BsqUtxoFeedService.java @@ -26,7 +26,7 @@ import io.bisq.common.UserThread; import io.bisq.common.handlers.FaultHandler; import io.bisq.common.util.Tuple2; import io.bisq.http.HttpClient; -import io.bisq.messages.btc.provider.ProvidersRepository; +import io.bisq.provider.ProvidersRepository; import org.bitcoinj.core.UTXO; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/btc/wallet/BsqWalletService.java b/core/src/main/java/io/bisq/btc/wallet/BsqWalletService.java index 3fe7f3cfc6..9e25808cbd 100644 --- a/core/src/main/java/io/bisq/btc/wallet/BsqWalletService.java +++ b/core/src/main/java/io/bisq/btc/wallet/BsqWalletService.java @@ -25,9 +25,9 @@ import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; import io.bisq.dao.blockchain.BsqBlockchainManager; import io.bisq.dao.blockchain.BsqUTXO; -import io.bisq.messages.btc.Restrictions; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.user.Preferences; +import io.bisq.network_messages.btc.Restrictions; +import io.bisq.provider.fee.FeeService; +import io.bisq.user.Preferences; import org.bitcoinj.core.*; import org.bitcoinj.script.Script; import org.bitcoinj.wallet.CoinSelection; diff --git a/core/src/main/java/io/bisq/btc/wallet/BtcWalletService.java b/core/src/main/java/io/bisq/btc/wallet/BtcWalletService.java index ef46009865..d07bc71722 100644 --- a/core/src/main/java/io/bisq/btc/wallet/BtcWalletService.java +++ b/core/src/main/java/io/bisq/btc/wallet/BtcWalletService.java @@ -27,9 +27,9 @@ import io.bisq.btc.InsufficientFundsException; import io.bisq.btc.exceptions.TransactionVerificationException; import io.bisq.btc.exceptions.WalletException; import io.bisq.common.handlers.ErrorMessageHandler; -import io.bisq.messages.btc.Restrictions; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.user.Preferences; +import io.bisq.network_messages.btc.Restrictions; +import io.bisq.provider.fee.FeeService; +import io.bisq.user.Preferences; import org.bitcoinj.core.*; import org.bitcoinj.crypto.DeterministicKey; import org.bitcoinj.crypto.KeyCrypterScrypt; diff --git a/core/src/main/java/io/bisq/btc/wallet/TradeWalletService.java b/core/src/main/java/io/bisq/btc/wallet/TradeWalletService.java index a073ef866b..a5fc257496 100644 --- a/core/src/main/java/io/bisq/btc/wallet/TradeWalletService.java +++ b/core/src/main/java/io/bisq/btc/wallet/TradeWalletService.java @@ -30,8 +30,8 @@ import io.bisq.btc.exceptions.SigningException; import io.bisq.btc.exceptions.TransactionVerificationException; import io.bisq.btc.exceptions.WalletException; import io.bisq.common.util.Utilities; -import io.bisq.messages.btc.data.RawTransactionInput; -import io.bisq.messages.user.Preferences; +import io.bisq.network_messages.btc.data.RawTransactionInput; +import io.bisq.user.Preferences; import org.bitcoinj.core.*; import org.bitcoinj.crypto.DeterministicKey; import org.bitcoinj.crypto.TransactionSignature; @@ -240,7 +240,7 @@ public class TradeWalletService { // Find the needed inputs to pay the output, optionally add 1 change output. // Normally only 1 input and no change output is used, but we support multiple inputs and 1 change output. - // Our spending transaction output is from the create offer fee payment. + // Our spending transaction output is from the create offer fee payment. addAvailableInputsAndChangeOutputs(dummyTX, takersAddress, takersChangeAddress, txFee); // The completeTx() call signs the input, but we don't want to pass over signed tx inputs so we remove the signature diff --git a/core/src/main/java/io/bisq/btc/wallet/WalletService.java b/core/src/main/java/io/bisq/btc/wallet/WalletService.java index 72a4bc22c8..52c4d97856 100644 --- a/core/src/main/java/io/bisq/btc/wallet/WalletService.java +++ b/core/src/main/java/io/bisq/btc/wallet/WalletService.java @@ -27,8 +27,8 @@ import io.bisq.btc.listeners.TxConfidenceListener; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; import io.bisq.common.util.Utilities; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.user.Preferences; +import io.bisq.provider.fee.FeeService; +import io.bisq.user.Preferences; import org.bitcoinj.core.*; import org.bitcoinj.crypto.DeterministicKey; import org.bitcoinj.crypto.KeyCrypter; diff --git a/core/src/main/java/io/bisq/btc/wallet/WalletsSetup.java b/core/src/main/java/io/bisq/btc/wallet/WalletsSetup.java index 337b2fcc14..cc47356c8b 100644 --- a/core/src/main/java/io/bisq/btc/wallet/WalletsSetup.java +++ b/core/src/main/java/io/bisq/btc/wallet/WalletsSetup.java @@ -30,9 +30,9 @@ import io.bisq.common.Timer; import io.bisq.common.UserThread; import io.bisq.common.handlers.ExceptionHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.btc.BtcOptionKeys; -import io.bisq.messages.btc.UserAgent; -import io.bisq.messages.user.Preferences; +import io.bisq.network_messages.btc.BtcOptionKeys; +import io.bisq.network_messages.btc.UserAgent; +import io.bisq.user.Preferences; import io.bisq.network.DnsLookupTor; import io.bisq.network.NetworkOptionKeys; import io.bisq.network.Socks5MultiDiscovery; diff --git a/core/src/main/java/io/bisq/dao/DaoModule.java b/core/src/main/java/io/bisq/dao/DaoModule.java index 45b30591b2..dcc7f1d232 100644 --- a/core/src/main/java/io/bisq/dao/DaoModule.java +++ b/core/src/main/java/io/bisq/dao/DaoModule.java @@ -26,7 +26,7 @@ import io.bisq.dao.compensation.CompensationRequestManager; import io.bisq.dao.vote.VotingDefaultValues; import io.bisq.dao.vote.VotingManager; import io.bisq.dao.vote.VotingService; -import io.bisq.messages.dao.blockchain.RpcOptionKeys; +import io.bisq.network_messages.dao.blockchain.RpcOptionKeys; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.env.Environment; diff --git a/core/src/main/java/io/bisq/dao/blockchain/BsqBlockchainRpcService.java b/core/src/main/java/io/bisq/dao/blockchain/BsqBlockchainRpcService.java index 22626550dd..6e509a5122 100644 --- a/core/src/main/java/io/bisq/dao/blockchain/BsqBlockchainRpcService.java +++ b/core/src/main/java/io/bisq/dao/blockchain/BsqBlockchainRpcService.java @@ -33,7 +33,7 @@ import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; import io.bisq.common.util.Tuple2; import io.bisq.common.util.Utilities; -import io.bisq.messages.dao.blockchain.RpcOptionKeys; +import io.bisq.network_messages.dao.blockchain.RpcOptionKeys; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; diff --git a/core/src/main/java/io/bisq/dao/compensation/CompensationRequest.java b/core/src/main/java/io/bisq/dao/compensation/CompensationRequest.java index ac9612d22f..2c4af8b32a 100644 --- a/core/src/main/java/io/bisq/dao/compensation/CompensationRequest.java +++ b/core/src/main/java/io/bisq/dao/compensation/CompensationRequest.java @@ -19,7 +19,7 @@ package io.bisq.dao.compensation; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; -import io.bisq.messages.dao.compensation.payload.CompensationRequestPayload; +import io.bisq.network_messages.dao.compensation.payload.CompensationRequestPayload; import org.bitcoinj.core.Coin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/io/bisq/dao/compensation/CompensationRequestManager.java b/core/src/main/java/io/bisq/dao/compensation/CompensationRequestManager.java index f9ceca9b44..e9bb0f865d 100644 --- a/core/src/main/java/io/bisq/dao/compensation/CompensationRequestManager.java +++ b/core/src/main/java/io/bisq/dao/compensation/CompensationRequestManager.java @@ -23,11 +23,11 @@ import io.bisq.btc.wallet.BsqWalletService; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.dao.DaoPeriodService; import io.bisq.dao.vote.VotingDefaultValues; -import io.bisq.messages.dao.compensation.payload.CompensationRequestPayload; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.dao.compensation.payload.CompensationRequestPayload; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.storage.HashMapChangedListener; -import io.bisq.p2p.storage.payload.StoragePayload; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.payload.StoragePayload; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import io.bisq.storage.Storage; import javafx.collections.FXCollections; import javafx.collections.ObservableList; diff --git a/core/src/main/java/io/bisq/dao/vote/VotingManager.java b/core/src/main/java/io/bisq/dao/vote/VotingManager.java index 61370917c9..dff5ce1759 100644 --- a/core/src/main/java/io/bisq/dao/vote/VotingManager.java +++ b/core/src/main/java/io/bisq/dao/vote/VotingManager.java @@ -26,8 +26,8 @@ import io.bisq.common.util.Utilities; import io.bisq.dao.DaoPeriodService; import io.bisq.dao.compensation.CompensationRequest; import io.bisq.dao.compensation.CompensationRequestManager; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.dao.compensation.payload.CompensationRequestPayload; +import io.bisq.provider.fee.FeeService; +import io.bisq.network_messages.dao.compensation.payload.CompensationRequestPayload; import io.bisq.storage.Storage; import org.apache.commons.lang3.StringUtils; import org.bitcoinj.core.Utils; diff --git a/core/src/main/java/io/bisq/filter/FilterManager.java b/core/src/main/java/io/bisq/filter/FilterManager.java index bba3e30ce9..9e9fc0b61e 100644 --- a/core/src/main/java/io/bisq/filter/FilterManager.java +++ b/core/src/main/java/io/bisq/filter/FilterManager.java @@ -21,13 +21,13 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.bisq.app.AppOptionKeys; import io.bisq.app.DevEnv; -import io.bisq.common.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.filter.payload.Filter; -import io.bisq.messages.filter.payload.PaymentAccountFilter; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.filter.payload.Filter; +import io.bisq.network_messages.filter.payload.PaymentAccountFilter; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.storage.HashMapChangedListener; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import io.bisq.user.User; import javafx.beans.property.ObjectProperty; import javafx.beans.property.ReadOnlyObjectProperty; diff --git a/core/src/main/java/io/bisq/payment/AliPayAccount.java b/core/src/main/java/io/bisq/payment/AliPayAccount.java index d3c8de5f36..dfbe862960 100644 --- a/core/src/main/java/io/bisq/payment/AliPayAccount.java +++ b/core/src/main/java/io/bisq/payment/AliPayAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.AliPayAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.AliPayAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.user.Preferences; public final class AliPayAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -29,7 +30,7 @@ public final class AliPayAccount extends PaymentAccount { public AliPayAccount() { super(PaymentMethod.ALI_PAY); - setSingleTradeCurrency(new FiatCurrency("CNY")); + setSingleTradeCurrency(new FiatCurrency("CNY", Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/CashDepositAccount.java b/core/src/main/java/io/bisq/payment/CashDepositAccount.java index 8dcbdc6fbe..e75509f907 100644 --- a/core/src/main/java/io/bisq/payment/CashDepositAccount.java +++ b/core/src/main/java/io/bisq/payment/CashDepositAccount.java @@ -18,9 +18,9 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.CashDepositAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.CashDepositAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import javax.annotation.Nullable; diff --git a/core/src/main/java/io/bisq/payment/ChaseQuickPayAccount.java b/core/src/main/java/io/bisq/payment/ChaseQuickPayAccount.java index eef3fa2124..b836615de5 100644 --- a/core/src/main/java/io/bisq/payment/ChaseQuickPayAccount.java +++ b/core/src/main/java/io/bisq/payment/ChaseQuickPayAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.ChaseQuickPayAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.ChaseQuickPayAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.user.Preferences; public final class ChaseQuickPayAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -29,7 +30,7 @@ public final class ChaseQuickPayAccount extends PaymentAccount { public ChaseQuickPayAccount() { super(PaymentMethod.CHASE_QUICK_PAY); - setSingleTradeCurrency(new FiatCurrency("USD")); + setSingleTradeCurrency(new FiatCurrency("USD", Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/ClearXchangeAccount.java b/core/src/main/java/io/bisq/payment/ClearXchangeAccount.java index c4434268cb..9232218540 100644 --- a/core/src/main/java/io/bisq/payment/ClearXchangeAccount.java +++ b/core/src/main/java/io/bisq/payment/ClearXchangeAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.ClearXchangeAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.ClearXchangeAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.user.Preferences; public final class ClearXchangeAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -29,7 +30,7 @@ public final class ClearXchangeAccount extends PaymentAccount { public ClearXchangeAccount() { super(PaymentMethod.CLEAR_X_CHANGE); - setSingleTradeCurrency(new FiatCurrency("USD")); + setSingleTradeCurrency(new FiatCurrency("USD", Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/CountryBasedPaymentAccount.java b/core/src/main/java/io/bisq/payment/CountryBasedPaymentAccount.java index 761088c8ae..5c668ba962 100644 --- a/core/src/main/java/io/bisq/payment/CountryBasedPaymentAccount.java +++ b/core/src/main/java/io/bisq/payment/CountryBasedPaymentAccount.java @@ -18,9 +18,9 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.Country; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.CountryBasedPaymentAccountContractData; +import io.bisq.locale.Country; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.CountryBasedPaymentAccountContractData; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/io/bisq/payment/CryptoCurrencyAccount.java b/core/src/main/java/io/bisq/payment/CryptoCurrencyAccount.java index 1f35c2ae0b..8962594457 100644 --- a/core/src/main/java/io/bisq/payment/CryptoCurrencyAccount.java +++ b/core/src/main/java/io/bisq/payment/CryptoCurrencyAccount.java @@ -18,9 +18,9 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.CryptoCurrencyAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.CryptoCurrencyAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; public final class CryptoCurrencyAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. diff --git a/core/src/main/java/io/bisq/payment/FasterPaymentsAccount.java b/core/src/main/java/io/bisq/payment/FasterPaymentsAccount.java index b4b451297f..0779808978 100644 --- a/core/src/main/java/io/bisq/payment/FasterPaymentsAccount.java +++ b/core/src/main/java/io/bisq/payment/FasterPaymentsAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.FasterPaymentsAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.FasterPaymentsAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.user.Preferences; public final class FasterPaymentsAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -29,7 +30,7 @@ public final class FasterPaymentsAccount extends PaymentAccount { public FasterPaymentsAccount() { super(PaymentMethod.FASTER_PAYMENTS); - setSingleTradeCurrency(new FiatCurrency("GBP")); + setSingleTradeCurrency(new FiatCurrency("GBP", Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/InteracETransferAccount.java b/core/src/main/java/io/bisq/payment/InteracETransferAccount.java index b693f06a14..7f03c2ee15 100644 --- a/core/src/main/java/io/bisq/payment/InteracETransferAccount.java +++ b/core/src/main/java/io/bisq/payment/InteracETransferAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.InteracETransferAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.InteracETransferAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.user.Preferences; public final class InteracETransferAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -29,7 +30,7 @@ public final class InteracETransferAccount extends PaymentAccount { public InteracETransferAccount() { super(PaymentMethod.INTERAC_E_TRANSFER); - setSingleTradeCurrency(new FiatCurrency("CAD")); + setSingleTradeCurrency(new FiatCurrency("CAD", Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/NationalBankAccount.java b/core/src/main/java/io/bisq/payment/NationalBankAccount.java index ad0bf18ca5..d2eaf97e46 100644 --- a/core/src/main/java/io/bisq/payment/NationalBankAccount.java +++ b/core/src/main/java/io/bisq/payment/NationalBankAccount.java @@ -18,10 +18,10 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.BankAccountContractData; -import io.bisq.messages.payment.payload.NationalBankAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.BankAccountContractData; +import io.bisq.network_messages.payment.payload.NationalBankAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; public final class NationalBankAccount extends CountryBasedPaymentAccount implements SameCountryRestrictedBankAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. diff --git a/core/src/main/java/io/bisq/payment/OKPayAccount.java b/core/src/main/java/io/bisq/payment/OKPayAccount.java index 185d5f6e0c..ffc2e49821 100644 --- a/core/src/main/java/io/bisq/payment/OKPayAccount.java +++ b/core/src/main/java/io/bisq/payment/OKPayAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.OKPayAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.OKPayAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.user.Preferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,7 +35,7 @@ public final class OKPayAccount extends PaymentAccount { public OKPayAccount() { super(PaymentMethod.OK_PAY); - tradeCurrencies.addAll(CurrencyUtil.getAllOKPayCurrencies()); + tradeCurrencies.addAll(CurrencyUtil.getAllOKPayCurrencies(Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/PaymentAccount.java b/core/src/main/java/io/bisq/payment/PaymentAccount.java index 78796dbd83..3d3c713f1a 100644 --- a/core/src/main/java/io/bisq/payment/PaymentAccount.java +++ b/core/src/main/java/io/bisq/payment/PaymentAccount.java @@ -19,9 +19,9 @@ package io.bisq.payment; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/io/bisq/payment/PaymentAccountFactory.java b/core/src/main/java/io/bisq/payment/PaymentAccountFactory.java index fe1bdf64f8..46bcb5b8f5 100644 --- a/core/src/main/java/io/bisq/payment/PaymentAccountFactory.java +++ b/core/src/main/java/io/bisq/payment/PaymentAccountFactory.java @@ -17,7 +17,7 @@ package io.bisq.payment; -import io.bisq.messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.PaymentMethod; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/io/bisq/payment/PaymentAccountUtil.java b/core/src/main/java/io/bisq/payment/PaymentAccountUtil.java index d6052804f6..00d533e717 100644 --- a/core/src/main/java/io/bisq/payment/PaymentAccountUtil.java +++ b/core/src/main/java/io/bisq/payment/PaymentAccountUtil.java @@ -1,8 +1,8 @@ package io.bisq.payment; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.p2p.protocol.availability.Offer; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/payment/PerfectMoneyAccount.java b/core/src/main/java/io/bisq/payment/PerfectMoneyAccount.java index 98c6cdeee6..e952dc5289 100644 --- a/core/src/main/java/io/bisq/payment/PerfectMoneyAccount.java +++ b/core/src/main/java/io/bisq/payment/PerfectMoneyAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.PerfectMoneyAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.PerfectMoneyAccountContractData; +import io.bisq.user.Preferences; public final class PerfectMoneyAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -29,7 +30,7 @@ public final class PerfectMoneyAccount extends PaymentAccount { public PerfectMoneyAccount() { super(PaymentMethod.PERFECT_MONEY); - setSingleTradeCurrency(new FiatCurrency("USD")); + setSingleTradeCurrency(new FiatCurrency("USD", Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/SameBankAccount.java b/core/src/main/java/io/bisq/payment/SameBankAccount.java index 19f6321663..21593e6483 100644 --- a/core/src/main/java/io/bisq/payment/SameBankAccount.java +++ b/core/src/main/java/io/bisq/payment/SameBankAccount.java @@ -18,10 +18,10 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.BankAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.SameBankAccountContractData; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.BankAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.SameBankAccountContractData; public final class SameBankAccount extends CountryBasedPaymentAccount implements BankNameRestrictedBankAccount, SameCountryRestrictedBankAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. diff --git a/core/src/main/java/io/bisq/payment/SepaAccount.java b/core/src/main/java/io/bisq/payment/SepaAccount.java index 2fbb3d5533..abc697c69b 100644 --- a/core/src/main/java/io/bisq/payment/SepaAccount.java +++ b/core/src/main/java/io/bisq/payment/SepaAccount.java @@ -18,9 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.SepaAccountContractData; +import io.bisq.locale.CountryUtil; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.SepaAccountContractData; +import io.bisq.user.Preferences; import java.util.List; @@ -34,7 +36,8 @@ public final class SepaAccount extends CountryBasedPaymentAccount implements Ban @Override protected PaymentAccountContractData setContractData() { - return new SepaAccountContractData(paymentMethod.getId(), id, paymentMethod.getMaxTradePeriod()); + return new SepaAccountContractData(paymentMethod.getId(), id, paymentMethod.getMaxTradePeriod(), + CountryUtil.getAllSepaCountries(Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/SpecificBanksAccount.java b/core/src/main/java/io/bisq/payment/SpecificBanksAccount.java index 2d07ca232e..063bc34b11 100644 --- a/core/src/main/java/io/bisq/payment/SpecificBanksAccount.java +++ b/core/src/main/java/io/bisq/payment/SpecificBanksAccount.java @@ -18,9 +18,9 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.SpecificBanksAccountContractData; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.SpecificBanksAccountContractData; import java.util.ArrayList; diff --git a/core/src/main/java/io/bisq/payment/SwishAccount.java b/core/src/main/java/io/bisq/payment/SwishAccount.java index 4b67fbc127..469f948d9b 100644 --- a/core/src/main/java/io/bisq/payment/SwishAccount.java +++ b/core/src/main/java/io/bisq/payment/SwishAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.SwishAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.SwishAccountContractData; +import io.bisq.user.Preferences; public final class SwishAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -29,7 +30,7 @@ public final class SwishAccount extends PaymentAccount { public SwishAccount() { super(PaymentMethod.SWISH); - setSingleTradeCurrency(new FiatCurrency("SEK")); + setSingleTradeCurrency(new FiatCurrency("SEK", Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/payment/USPostalMoneyOrderAccount.java b/core/src/main/java/io/bisq/payment/USPostalMoneyOrderAccount.java index a2a4f20dd2..97caab7ec3 100644 --- a/core/src/main/java/io/bisq/payment/USPostalMoneyOrderAccount.java +++ b/core/src/main/java/io/bisq/payment/USPostalMoneyOrderAccount.java @@ -18,10 +18,11 @@ package io.bisq.payment; import io.bisq.app.Version; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.USPostalMoneyOrderAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.USPostalMoneyOrderAccountContractData; +import io.bisq.user.Preferences; public final class USPostalMoneyOrderAccount extends PaymentAccount { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -29,7 +30,7 @@ public final class USPostalMoneyOrderAccount extends PaymentAccount { public USPostalMoneyOrderAccount() { super(PaymentMethod.US_POSTAL_MONEY_ORDER); - setSingleTradeCurrency(new FiatCurrency("USD")); + setSingleTradeCurrency(new FiatCurrency("USD", Preferences.getDefaultLocale())); } @Override diff --git a/core/src/main/java/io/bisq/trade/BuyerAsOffererTrade.java b/core/src/main/java/io/bisq/trade/BuyerAsOffererTrade.java index 066edde637..99b7c10fb2 100644 --- a/core/src/main/java/io/bisq/trade/BuyerAsOffererTrade.java +++ b/core/src/main/java/io/bisq/trade/BuyerAsOffererTrade.java @@ -18,9 +18,9 @@ package io.bisq.trade; import io.bisq.app.Version; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.storage.Storage; import io.bisq.trade.protocol.trade.BuyerAsOffererProtocol; import io.bisq.trade.protocol.trade.OffererProtocol; diff --git a/core/src/main/java/io/bisq/trade/BuyerAsTakerTrade.java b/core/src/main/java/io/bisq/trade/BuyerAsTakerTrade.java index c29a264b51..961795a81f 100644 --- a/core/src/main/java/io/bisq/trade/BuyerAsTakerTrade.java +++ b/core/src/main/java/io/bisq/trade/BuyerAsTakerTrade.java @@ -18,8 +18,8 @@ package io.bisq.trade; import io.bisq.app.Version; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.storage.Storage; import io.bisq.trade.protocol.trade.BuyerAsTakerProtocol; import io.bisq.trade.protocol.trade.TakerProtocol; diff --git a/core/src/main/java/io/bisq/trade/BuyerTrade.java b/core/src/main/java/io/bisq/trade/BuyerTrade.java index 65e45fec97..1d9c115e18 100644 --- a/core/src/main/java/io/bisq/trade/BuyerTrade.java +++ b/core/src/main/java/io/bisq/trade/BuyerTrade.java @@ -20,8 +20,8 @@ package io.bisq.trade; import io.bisq.app.Version; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.storage.Storage; import io.bisq.trade.protocol.trade.BuyerProtocol; import org.bitcoinj.core.Coin; diff --git a/core/src/main/java/io/bisq/trade/OffererTrade.java b/core/src/main/java/io/bisq/trade/OffererTrade.java index 31eedb48ef..e2d0fe5ee6 100644 --- a/core/src/main/java/io/bisq/trade/OffererTrade.java +++ b/core/src/main/java/io/bisq/trade/OffererTrade.java @@ -18,8 +18,8 @@ package io.bisq.trade; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.NodeAddress; public interface OffererTrade { void handleTakeOfferRequest(TradeMessage message, NodeAddress peerNodeAddress); diff --git a/core/src/main/java/io/bisq/trade/SellerAsOffererTrade.java b/core/src/main/java/io/bisq/trade/SellerAsOffererTrade.java index 86247bd6ea..61e48c323d 100644 --- a/core/src/main/java/io/bisq/trade/SellerAsOffererTrade.java +++ b/core/src/main/java/io/bisq/trade/SellerAsOffererTrade.java @@ -18,9 +18,9 @@ package io.bisq.trade; import io.bisq.app.Version; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.storage.Storage; import io.bisq.trade.protocol.trade.OffererProtocol; import io.bisq.trade.protocol.trade.SellerAsOffererProtocol; diff --git a/core/src/main/java/io/bisq/trade/SellerAsTakerTrade.java b/core/src/main/java/io/bisq/trade/SellerAsTakerTrade.java index 497db0fb48..584ffae5aa 100644 --- a/core/src/main/java/io/bisq/trade/SellerAsTakerTrade.java +++ b/core/src/main/java/io/bisq/trade/SellerAsTakerTrade.java @@ -18,8 +18,8 @@ package io.bisq.trade; import io.bisq.app.Version; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.storage.Storage; import io.bisq.trade.protocol.trade.SellerAsTakerProtocol; import io.bisq.trade.protocol.trade.TakerProtocol; diff --git a/core/src/main/java/io/bisq/trade/SellerTrade.java b/core/src/main/java/io/bisq/trade/SellerTrade.java index 682008ab1b..3dddd03da0 100644 --- a/core/src/main/java/io/bisq/trade/SellerTrade.java +++ b/core/src/main/java/io/bisq/trade/SellerTrade.java @@ -20,8 +20,8 @@ package io.bisq.trade; import io.bisq.app.Version; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.storage.Storage; import io.bisq.trade.protocol.trade.SellerProtocol; import org.bitcoinj.core.Coin; diff --git a/core/src/main/java/io/bisq/trade/Tradable.java b/core/src/main/java/io/bisq/trade/Tradable.java index bfa20a06d9..673e80d615 100644 --- a/core/src/main/java/io/bisq/trade/Tradable.java +++ b/core/src/main/java/io/bisq/trade/Tradable.java @@ -18,7 +18,7 @@ package io.bisq.trade; import io.bisq.common.persistance.Persistable; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.p2p.protocol.availability.Offer; import java.util.Date; diff --git a/core/src/main/java/io/bisq/trade/Trade.java b/core/src/main/java/io/bisq/trade/Trade.java index 81a2fcec0b..3b3ffd7af6 100644 --- a/core/src/main/java/io/bisq/trade/Trade.java +++ b/core/src/main/java/io/bisq/trade/Trade.java @@ -26,15 +26,15 @@ import io.bisq.app.Version; import io.bisq.arbitration.ArbitratorManager; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.TradeWalletService; -import io.bisq.common.crypto.KeyRing; import io.bisq.common.taskrunner.Model; -import io.bisq.crypto.DecryptedMsgWithPubKey; import io.bisq.filter.FilterManager; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.trade.payload.Contract; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.p2p.storage.P2PService; import io.bisq.storage.Storage; import io.bisq.trade.offer.OpenOfferManager; import io.bisq.trade.protocol.trade.ProcessModel; diff --git a/core/src/main/java/io/bisq/trade/TradeManager.java b/core/src/main/java/io/bisq/trade/TradeManager.java index 931ec642d6..aa05eb6d71 100644 --- a/core/src/main/java/io/bisq/trade/TradeManager.java +++ b/core/src/main/java/io/bisq/trade/TradeManager.java @@ -25,24 +25,25 @@ import io.bisq.btc.AddressEntryException; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.TradeWalletService; import io.bisq.common.UserThread; -import io.bisq.common.crypto.KeyRing; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.FaultHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.crypto.DecryptedMsgWithPubKey; import io.bisq.filter.FilterManager; -import io.bisq.messages.Message; -import io.bisq.messages.protocol.availability.OfferAvailabilityModel; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.trade.protocol.trade.messages.PayDepositRequest; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; +import io.bisq.network_messages.DecryptedDirectMessageListener; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.p2p.messaging.DecryptedMailboxListener; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.trade.protocol.trade.messages.PayDepositRequest; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; import io.bisq.p2p.BootstrapListener; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; -import io.bisq.p2p.messaging.DecryptedDirectMessageListener; -import io.bisq.p2p.messaging.DecryptedMailboxListener; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.p2p.protocol.availability.OfferAvailabilityModel; +import io.bisq.p2p.storage.P2PService; +import io.bisq.provider.price.PriceFeedService; import io.bisq.storage.Storage; import io.bisq.trade.closed.ClosedTradableManager; import io.bisq.trade.failed.FailedTradesManager; @@ -74,7 +75,7 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Stream; import static com.google.common.base.Preconditions.checkArgument; -import static io.bisq.messages.util.Validator.nonEmptyStringOf; +import static io.bisq.network_messages.util.Validator.nonEmptyStringOf; public class TradeManager { private static final Logger log = LoggerFactory.getLogger(TradeManager.class); @@ -137,7 +138,7 @@ public class TradeManager { public void onDirectMessage(DecryptedMsgWithPubKey decryptedMsgWithPubKey, NodeAddress peerNodeAddress) { Message message = decryptedMsgWithPubKey.message; - // Handler for incoming initial messages from taker + // Handler for incoming initial network_messages from taker if (message instanceof PayDepositRequest) { log.trace("Received PayDepositRequest: " + message); handleInitialTakeOfferRequest((PayDepositRequest) message, peerNodeAddress); @@ -234,7 +235,7 @@ public class TradeManager { private void publishTradeStatistics(List trades) { for (int i = 0; i < trades.size(); i++) { Trade trade = trades.get(i); - TradeStatistics tradeStatistics = new TradeStatistics(trade.getOffer(), + TradeStatistics tradeStatistics = new TradeStatistics(trade.getOffer().getOfferPayload(), trade.getTradePrice(), trade.getTradeAmount(), trade.getDate(), @@ -275,7 +276,7 @@ public class TradeManager { checkArgument(message instanceof PayDepositRequest, "message must be PayDepositRequest"); PayDepositRequest payDepositRequest = (PayDepositRequest) message; Trade trade; - if (offer.getDirection() == Offer.Direction.BUY) + if (offer.getDirection() == OfferPayload.Direction.BUY) trade = new BuyerAsOffererTrade(offer, payDepositRequest.txFee, payDepositRequest.takeOfferFee, tradableListStorage); else trade = new SellerAsOffererTrade(offer, payDepositRequest.txFee, payDepositRequest.takeOfferFee, tradableListStorage); @@ -344,7 +345,7 @@ public class TradeManager { final OfferAvailabilityModel model = getOfferAvailabilityModel(offer); offer.checkOfferAvailability(model, () -> { - if (offer.getState() == Offer.State.AVAILABLE) + if (offer.getState() == OfferPayload.State.AVAILABLE) createTrade(amount, txFee, takeOfferFee, tradePrice, fundsNeededForTrade, offer, paymentAccountId, useSavingsWallet, model, tradeResultHandler); }, errorMessageHandler::handleErrorMessage); @@ -361,7 +362,7 @@ public class TradeManager { OfferAvailabilityModel model, TradeResultHandler tradeResultHandler) { Trade trade; - if (offer.getDirection() == Offer.Direction.BUY) + if (offer.getDirection() == OfferPayload.Direction.BUY) trade = new SellerAsTakerTrade(offer, amount, txFee, takeOfferFee, tradePrice, model.getPeerNodeAddress(), tradableListStorage); else trade = new BuyerAsTakerTrade(offer, amount, txFee, takeOfferFee, tradePrice, model.getPeerNodeAddress(), tradableListStorage); @@ -474,9 +475,9 @@ public class TradeManager { public boolean isBuyer(Offer offer) { // If I am the offerer, we use the offer direction, otherwise the mirrored direction if (isMyOffer(offer)) - return offer.getDirection() == Offer.Direction.BUY; + return offer.getDirection() == OfferPayload.Direction.BUY; else - return offer.getDirection() == Offer.Direction.SELL; + return offer.getDirection() == OfferPayload.Direction.SELL; } public Optional getTradeById(String tradeId) { diff --git a/core/src/main/java/io/bisq/trade/closed/ClosedTradableManager.java b/core/src/main/java/io/bisq/trade/closed/ClosedTradableManager.java index 79badd995b..0f9b75afc2 100644 --- a/core/src/main/java/io/bisq/trade/closed/ClosedTradableManager.java +++ b/core/src/main/java/io/bisq/trade/closed/ClosedTradableManager.java @@ -18,9 +18,9 @@ package io.bisq.trade.closed; import com.google.inject.Inject; -import io.bisq.common.crypto.KeyRing; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.provider.price.PriceFeedService; import io.bisq.storage.Storage; import io.bisq.trade.Tradable; import io.bisq.trade.TradableList; diff --git a/core/src/main/java/io/bisq/trade/failed/FailedTradesManager.java b/core/src/main/java/io/bisq/trade/failed/FailedTradesManager.java index d22a7511b4..cefa7da738 100644 --- a/core/src/main/java/io/bisq/trade/failed/FailedTradesManager.java +++ b/core/src/main/java/io/bisq/trade/failed/FailedTradesManager.java @@ -18,9 +18,9 @@ package io.bisq.trade.failed; import com.google.inject.Inject; -import io.bisq.common.crypto.KeyRing; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.provider.price.PriceFeedService; import io.bisq.storage.Storage; import io.bisq.trade.TradableList; import io.bisq.trade.Trade; diff --git a/core/src/main/java/io/bisq/trade/offer/OfferBookService.java b/core/src/main/java/io/bisq/trade/offer/OfferBookService.java index 48e3edd48b..121570ec34 100644 --- a/core/src/main/java/io/bisq/trade/offer/OfferBookService.java +++ b/core/src/main/java/io/bisq/trade/offer/OfferBookService.java @@ -23,12 +23,13 @@ import io.bisq.common.UserThread; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; import io.bisq.common.util.Utilities; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; import io.bisq.p2p.BootstrapListener; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.p2p.storage.HashMapChangedListener; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.p2p.storage.P2PService; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.provider.price.PriceFeedService; import io.bisq.storage.PlainTextWrapper; import io.bisq.storage.Storage; import org.slf4j.Logger; @@ -76,8 +77,8 @@ public class OfferBookService { @Override public void onAdded(ProtectedStorageEntry data) { offerBookChangedListeners.stream().forEach(listener -> { - if (data.getStoragePayload() instanceof Offer) { - Offer offer = (Offer) data.getStoragePayload(); + if (data.getStoragePayload() instanceof OfferPayload) { + Offer offer = new Offer((OfferPayload) data.getStoragePayload()); offer.setPriceFeedService(priceFeedService); listener.onAdded(offer); } @@ -87,8 +88,11 @@ public class OfferBookService { @Override public void onRemoved(ProtectedStorageEntry data) { offerBookChangedListeners.stream().forEach(listener -> { - if (data.getStoragePayload() instanceof Offer) - listener.onRemoved((Offer) data.getStoragePayload()); + if (data.getStoragePayload() instanceof OfferPayload) { + Offer offer = new Offer((OfferPayload) data.getStoragePayload()); + offer.setPriceFeedService(priceFeedService); + listener.onRemoved(offer); + } }); } }); @@ -122,28 +126,28 @@ public class OfferBookService { /////////////////////////////////////////////////////////////////////////////////////////// public void addOffer(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) { - boolean result = p2PService.addData(offer, true); + boolean result = p2PService.addData(offer.getOfferPayload(), true); if (result) { - log.trace("Add offer to network was successful. Offer ID = " + offer.getId()); + log.trace("Add offer to network was successful. OfferPayload ID = " + offer.getId()); resultHandler.handleResult(); } else { errorMessageHandler.handleErrorMessage("Add offer failed"); } } - public void refreshTTL(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) { + public void refreshTTL(OfferPayload offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) { boolean result = p2PService.refreshTTL(offer, true); if (result) { - log.trace("Refresh TTL was successful. Offer ID = " + offer.getId()); + log.trace("Refresh TTL was successful. OfferPayload ID = " + offer.getId()); resultHandler.handleResult(); } else { errorMessageHandler.handleErrorMessage("Refresh TTL failed."); } } - public void removeOffer(Offer offer, @Nullable ResultHandler resultHandler, @Nullable ErrorMessageHandler errorMessageHandler) { + public void removeOffer(OfferPayload offer, @Nullable ResultHandler resultHandler, @Nullable ErrorMessageHandler errorMessageHandler) { if (p2PService.removeData(offer, true)) { - log.trace("Remove offer from network was successful. Offer ID = " + offer.getId()); + log.trace("Remove offer from network was successful. OfferPayload ID = " + offer.getId()); if (resultHandler != null) resultHandler.handleResult(); } else { @@ -154,16 +158,16 @@ public class OfferBookService { public List getOffers() { return p2PService.getDataMap().values().stream() - .filter(data -> data.getStoragePayload() instanceof Offer) + .filter(data -> data.getStoragePayload() instanceof OfferPayload) .map(data -> { - Offer offer = (Offer) data.getStoragePayload(); + Offer offer = new Offer((OfferPayload) data.getStoragePayload()); offer.setPriceFeedService(priceFeedService); return offer; }) .collect(Collectors.toList()); } - public void removeOfferAtShutDown(Offer offer) { + public void removeOfferAtShutDown(OfferPayload offer) { log.debug("removeOfferAtShutDown " + offer); removeOffer(offer, null, null); } @@ -185,7 +189,7 @@ public class OfferBookService { // We filter the case that it is a MarketBasedPrice but the price is not available // That should only be possible if the price feed provider is not available final List offerForJsonList = getOffers().stream() - .filter(offer -> !offer.getUseMarketBasedPrice() || priceFeedService.getMarketPrice(offer.getCurrencyCode()) != null) + .filter(offer -> !offer.isUseMarketBasedPrice() || priceFeedService.getMarketPrice(offer.getCurrencyCode()) != null) .map(offer -> { try { return new OfferForJson(offer.getDirection(), @@ -195,7 +199,7 @@ public class OfferBookService { offer.getPrice(), offer.getDate(), offer.getId(), - offer.getUseMarketBasedPrice(), + offer.isUseMarketBasedPrice(), offer.getMarketPriceMargin(), offer.getPaymentMethod(), offer.getOfferFeePaymentTxID() diff --git a/core/src/main/java/io/bisq/trade/offer/OfferForJson.java b/core/src/main/java/io/bisq/trade/offer/OfferForJson.java index 3581ce4bce..5e3ee13237 100644 --- a/core/src/main/java/io/bisq/trade/offer/OfferForJson.java +++ b/core/src/main/java/io/bisq/trade/offer/OfferForJson.java @@ -1,9 +1,9 @@ package io.bisq.trade.offer; import io.bisq.common.util.MathUtils; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; import org.bitcoinj.core.Coin; import org.bitcoinj.utils.ExchangeRate; import org.bitcoinj.utils.Fiat; @@ -18,7 +18,7 @@ import java.util.Date; public class OfferForJson { private static final Logger log = LoggerFactory.getLogger(OfferForJson.class); - public final Offer.Direction direction; + public final OfferPayload.Direction direction; public final String currencyCode; public final long minAmount; public final long amount; @@ -32,7 +32,7 @@ public class OfferForJson { // primaryMarket fields are based on industry standard where primaryMarket is always in the focus (in the app BTC is always in the focus - will be changed in a larger refactoring once) public String currencyPair; - public Offer.Direction primaryMarketDirection; + public OfferPayload.Direction primaryMarketDirection; public String priceDisplayString; public String primaryMarketAmountDisplayString; @@ -47,7 +47,7 @@ public class OfferForJson { public long primaryMarketMinVolume; - public OfferForJson(Offer.Direction direction, + public OfferForJson(OfferPayload.Direction direction, String currencyCode, Coin minAmount, Coin amount, @@ -89,7 +89,7 @@ public class OfferForJson { MonetaryFormat coinFormat = MonetaryFormat.BTC.minDecimals(2).repeatOptionalDecimals(1, 6); final Fiat priceAsFiat = getPriceAsFiat(); if (CurrencyUtil.isCryptoCurrency(currencyCode)) { - primaryMarketDirection = direction == Offer.Direction.BUY ? Offer.Direction.SELL : Offer.Direction.BUY; + primaryMarketDirection = direction == OfferPayload.Direction.BUY ? OfferPayload.Direction.SELL : OfferPayload.Direction.BUY; currencyPair = currencyCode + "/" + "BTC"; DecimalFormat decimalFormat = new DecimalFormat("#.#"); diff --git a/core/src/main/java/io/bisq/trade/offer/OpenOffer.java b/core/src/main/java/io/bisq/trade/offer/OpenOffer.java index b99b436314..9a98a75c22 100644 --- a/core/src/main/java/io/bisq/trade/offer/OpenOffer.java +++ b/core/src/main/java/io/bisq/trade/offer/OpenOffer.java @@ -20,7 +20,7 @@ package io.bisq.trade.offer; import io.bisq.app.Version; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.storage.Storage; import io.bisq.trade.Tradable; import io.bisq.trade.TradableList; @@ -36,7 +36,7 @@ public final class OpenOffer implements Tradable { private static final Logger log = LoggerFactory.getLogger(OpenOffer.class); - // Timeout for offer reservation during takeoffer process. If deposit tx is not completed in that time we reset the offer to AVAILABLE state. + // Timeout for offer reservation during takeoffer process. If deposit tx is not completed in that time we reset the offer to AVAILABLE state. private static final long TIMEOUT_SEC = 30; transient private Timer timeoutTimer; diff --git a/core/src/main/java/io/bisq/trade/offer/OpenOfferManager.java b/core/src/main/java/io/bisq/trade/offer/OpenOfferManager.java index eae4fc5520..cfa2ffef53 100644 --- a/core/src/main/java/io/bisq/trade/offer/OpenOfferManager.java +++ b/core/src/main/java/io/bisq/trade/offer/OpenOfferManager.java @@ -25,24 +25,25 @@ import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.TradeWalletService; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.common.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.crypto.DecryptedMsgWithPubKey; -import io.bisq.messages.Message; -import io.bisq.messages.availability.AvailabilityResult; -import io.bisq.messages.availability.OfferAvailabilityRequest; -import io.bisq.messages.availability.OfferAvailabilityResponse; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.exceptions.MarketPriceNotAvailableException; -import io.bisq.messages.trade.exceptions.TradePriceOutOfToleranceException; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.availability.AvailabilityResult; +import io.bisq.network_messages.availability.OfferAvailabilityRequest; +import io.bisq.network_messages.availability.OfferAvailabilityResponse; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.provider.price.PriceFeedService; +import io.bisq.network_messages.trade.exceptions.MarketPriceNotAvailableException; +import io.bisq.network_messages.trade.exceptions.TradePriceOutOfToleranceException; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.user.Preferences; import io.bisq.p2p.BootstrapListener; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; -import io.bisq.p2p.messaging.DecryptedDirectMessageListener; -import io.bisq.p2p.messaging.SendDirectMessageListener; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.storage.P2PService; +import io.bisq.network_messages.DecryptedDirectMessageListener; +import io.bisq.network_messages.p2p.messaging.SendDirectMessageListener; import io.bisq.p2p.peers.PeerManager; import io.bisq.storage.Storage; import io.bisq.trade.TradableList; @@ -65,7 +66,7 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; import static com.google.inject.internal.util.$Preconditions.checkNotNull; -import static io.bisq.messages.util.Validator.nonEmptyStringOf; +import static io.bisq.network_messages.util.Validator.nonEmptyStringOf; public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMessageListener { @@ -159,7 +160,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe final int size = openOffers.size(); if (offerBookService.isBootstrapped()) { - openOffers.forEach(openOffer -> offerBookService.removeOfferAtShutDown(openOffer.getOffer())); + openOffers.forEach(openOffer -> offerBookService.removeOfferAtShutDown(openOffer.getOffer().getOfferPayload())); if (completeHandler != null) UserThread.runAfter(completeHandler::run, size * 200 + 500, TimeUnit.MILLISECONDS); } else { @@ -214,7 +215,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe // We republish after a bit as it might be that our connected node still has the offer in the data map // but other peers have it already removed because of expired TTL. - // Those other not directly connected peers would not get the broadcast of the new offer, as the first + // Those other not directly connected peers would not get the broadcast of the new offer, as the first // connected peer (seed node) does nto broadcast if it has the data in the map. // To update quickly to the whole network we repeat the republishOffers call after a few seconds when we // are better connected to the network. There is no guarantee that all peers will receive it but we have @@ -288,11 +289,11 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe if (openOfferOptional.isPresent()) { removeOpenOffer(openOfferOptional.get(), resultHandler, errorMessageHandler); } else { - log.warn("Offer was not found in our list of open offers. We still try to remove it from the offerbook."); - errorMessageHandler.handleErrorMessage("Offer was not found in our list of open offers. " + + log.warn("OfferPayload was not found in our list of open offers. We still try to remove it from the offerbook."); + errorMessageHandler.handleErrorMessage("OfferPayload was not found in our list of open offers. " + "We still try to remove it from the offerbook."); - offerBookService.removeOffer(offer, - () -> offer.setState(Offer.State.REMOVED), + offerBookService.removeOffer(offer.getOfferPayload(), + () -> offer.setState(OfferPayload.State.REMOVED), null); } } @@ -300,9 +301,9 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe // Remove from my offers public void removeOpenOffer(OpenOffer openOffer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) { Offer offer = openOffer.getOffer(); - offerBookService.removeOffer(offer, + offerBookService.removeOffer(offer.getOfferPayload(), () -> { - offer.setState(Offer.State.REMOVED); + offer.setState(OfferPayload.State.REMOVED); openOffer.setState(OpenOffer.State.CANCELED); openOffers.remove(openOffer); closedTradableManager.add(openOffer); @@ -314,11 +315,11 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe } // Close openOffer after deposit published - public void closeOpenOffer(Offer offer) { + public void closeOpenOffer(OfferPayload offer) { findOpenOffer(offer.getId()).ifPresent(openOffer -> { openOffers.remove(openOffer); openOffer.setState(OpenOffer.State.CLOSED); - offerBookService.removeOffer(openOffer.getOffer(), + offerBookService.removeOffer(openOffer.getOffer().getOfferPayload(), () -> log.trace("Successful removed offer"), log::error); }); @@ -351,7 +352,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe /////////////////////////////////////////////////////////////////////////////////////////// - // Offer Availability + // OfferPayload Availability /////////////////////////////////////////////////////////////////////////////////////////// private void handleOfferAvailabilityRequest(OfferAvailabilityRequest message, NodeAddress sender) { @@ -454,7 +455,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe // The openOffer.getId().contains("_") check is because there was once a version // where we encoded the version nr in the offer id with a "_" as separator. // That caused several issues and was reverted. So if there are still old offers out with that - // special offer ID format those must not be published as they cause failed taker attempts + // special offer ID format those must not be published as they cause failed taker attempts // with lost taker fee. String id = openOffer.getId(); if (id != null && !id.contains("_")) @@ -550,7 +551,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe } private void refreshOffer(OpenOffer openOffer) { - offerBookService.refreshTTL(openOffer.getOffer(), + offerBookService.refreshTTL(openOffer.getOffer().getOfferPayload(), () -> log.debug("Successful refreshed TTL for offer"), log::warn); } diff --git a/core/src/main/java/io/bisq/trade/protocol/placeoffer/PlaceOfferModel.java b/core/src/main/java/io/bisq/trade/protocol/placeoffer/PlaceOfferModel.java index 122d8cfdc7..8f49f07beb 100644 --- a/core/src/main/java/io/bisq/trade/protocol/placeoffer/PlaceOfferModel.java +++ b/core/src/main/java/io/bisq/trade/protocol/placeoffer/PlaceOfferModel.java @@ -20,7 +20,7 @@ package io.bisq.trade.protocol.placeoffer; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.TradeWalletService; import io.bisq.common.taskrunner.Model; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.trade.offer.OfferBookService; import io.bisq.user.User; import org.bitcoinj.core.Coin; diff --git a/core/src/main/java/io/bisq/trade/protocol/placeoffer/PlaceOfferProtocol.java b/core/src/main/java/io/bisq/trade/protocol/placeoffer/PlaceOfferProtocol.java index 9b9d66d509..2317441334 100644 --- a/core/src/main/java/io/bisq/trade/protocol/placeoffer/PlaceOfferProtocol.java +++ b/core/src/main/java/io/bisq/trade/protocol/placeoffer/PlaceOfferProtocol.java @@ -59,10 +59,10 @@ public class PlaceOfferProtocol { log.error(errorMessage); if (model.offerAddedToOfferBook) { - model.offerBookService.removeOffer(model.offer, + model.offerBookService.removeOffer(model.offer.getOfferPayload(), () -> { model.offerAddedToOfferBook = false; - log.debug("Offer removed from offer book."); + log.debug("OfferPayload removed from offer book."); }, log::error); } diff --git a/core/src/main/java/io/bisq/trade/protocol/placeoffer/tasks/BroadcastCreateOfferFeeTx.java b/core/src/main/java/io/bisq/trade/protocol/placeoffer/tasks/BroadcastCreateOfferFeeTx.java index c1ab3ff67f..2db72754da 100644 --- a/core/src/main/java/io/bisq/trade/protocol/placeoffer/tasks/BroadcastCreateOfferFeeTx.java +++ b/core/src/main/java/io/bisq/trade/protocol/placeoffer/tasks/BroadcastCreateOfferFeeTx.java @@ -20,7 +20,7 @@ package io.bisq.trade.protocol.placeoffer.tasks; import com.google.common.util.concurrent.FutureCallback; import io.bisq.common.taskrunner.Task; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; import io.bisq.trade.protocol.placeoffer.PlaceOfferModel; import org.bitcoinj.core.Transaction; import org.jetbrains.annotations.NotNull; @@ -48,7 +48,7 @@ public class BroadcastCreateOfferFeeTx extends Task { log.debug("Broadcast of offer fee payment succeeded: transaction = " + transaction.toString()); if (model.getTransaction().getHashAsString().equals(transaction.getHashAsString())) { - model.offer.setState(Offer.State.OFFER_FEE_PAID); + model.offer.setState(OfferPayload.State.OFFER_FEE_PAID); // No tx malleability happened after broadcast (still not in blockchain) complete(); } else { @@ -56,7 +56,7 @@ public class BroadcastCreateOfferFeeTx extends Task { // Tx malleability happened after broadcast. We first remove the malleable offer. // Then we publish the changed offer to the P2P network again after setting the new TxId. // Normally we use a delay for broadcasting to the peers, but at shut down we want to get it fast out - model.offerBookService.removeOffer(model.offer, + model.offerBookService.removeOffer(model.offer.getOfferPayload(), () -> { log.debug("We store now the changed txID to the offer and add that again."); // We store now the changed txID to the offer and add that again. @@ -106,8 +106,8 @@ public class BroadcastCreateOfferFeeTx extends Task { private void updateStateOnFault() { if (!removeOfferFailed && !addOfferFailed) { // If broadcast fails we need to remove offer from offerbook - model.offerBookService.removeOffer(model.offer, - () -> log.debug("Offer removed from offerbook because broadcast failed."), + model.offerBookService.removeOffer(model.offer.getOfferPayload(), + () -> log.debug("OfferPayload removed from offerbook because broadcast failed."), errorMessage -> log.error("removeOffer failed. " + errorMessage)); } } diff --git a/core/src/main/java/io/bisq/trade/protocol/placeoffer/tasks/CreateOfferFeeTx.java b/core/src/main/java/io/bisq/trade/protocol/placeoffer/tasks/CreateOfferFeeTx.java index d1bbf477e2..561ebf3d5b 100644 --- a/core/src/main/java/io/bisq/trade/protocol/placeoffer/tasks/CreateOfferFeeTx.java +++ b/core/src/main/java/io/bisq/trade/protocol/placeoffer/tasks/CreateOfferFeeTx.java @@ -21,9 +21,9 @@ import io.bisq.btc.AddressEntry; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.taskrunner.Task; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.trade.protocol.placeoffer.PlaceOfferModel; import io.bisq.trade.protocol.trade.ArbitrationSelectionRule; import org.bitcoinj.core.Address; @@ -47,7 +47,7 @@ public class CreateOfferFeeTx extends Task { try { runInterceptHook(); - NodeAddress selectedArbitratorNodeAddress = ArbitrationSelectionRule.select(model.user.getAcceptedArbitratorAddresses(), model.offer); + NodeAddress selectedArbitratorNodeAddress = ArbitrationSelectionRule.select(model.user.getAcceptedArbitratorAddresses(), model.offer.getOfferPayload()); log.debug("selectedArbitratorAddress " + selectedArbitratorNodeAddress); Arbitrator selectedArbitrator = model.user.getAcceptedArbitratorByAddress(selectedArbitratorNodeAddress); checkNotNull(selectedArbitrator, "selectedArbitrator must not be null at CreateOfferFeeTx"); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/ArbitrationSelectionRule.java b/core/src/main/java/io/bisq/trade/protocol/trade/ArbitrationSelectionRule.java index f800e049a7..60c798dfa1 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/ArbitrationSelectionRule.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/ArbitrationSelectionRule.java @@ -17,8 +17,8 @@ package io.bisq.trade.protocol.trade; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.NodeAddress; import org.bitcoinj.core.Sha256Hash; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,7 +33,7 @@ import static com.google.common.base.Preconditions.checkArgument; public class ArbitrationSelectionRule { private static final Logger log = LoggerFactory.getLogger(ArbitrationSelectionRule.class); - public static NodeAddress select(List acceptedArbitratorNodeAddresses, Offer offer) { + public static NodeAddress select(List acceptedArbitratorNodeAddresses, OfferPayload offer) { List candidates = new ArrayList<>(); for (NodeAddress offerArbitratorNodeAddress : offer.getArbitratorNodeAddresses()) { candidates.addAll(acceptedArbitratorNodeAddresses.stream().filter(offerArbitratorNodeAddress::equals).collect(Collectors.toList())); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/BuyerAsOffererProtocol.java b/core/src/main/java/io/bisq/trade/protocol/trade/BuyerAsOffererProtocol.java index 825727ea4f..79103be6f3 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/BuyerAsOffererProtocol.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/BuyerAsOffererProtocol.java @@ -19,13 +19,13 @@ package io.bisq.trade.protocol.trade; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.Message; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.messages.trade.protocol.trade.messages.DepositTxPublishedMessage; -import io.bisq.messages.trade.protocol.trade.messages.FinalizePayoutTxRequest; -import io.bisq.messages.trade.protocol.trade.messages.PayDepositRequest; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.DepositTxPublishedMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.FinalizePayoutTxRequest; +import io.bisq.network_messages.trade.protocol.trade.messages.PayDepositRequest; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; import io.bisq.trade.BuyerAsOffererTrade; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.buyer.*; @@ -35,7 +35,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkArgument; -import static io.bisq.messages.util.Validator.checkTradeId; +import static io.bisq.network_messages.util.Validator.checkTradeId; public class BuyerAsOffererProtocol extends TradeProtocol implements BuyerProtocol, OffererProtocol { private static final Logger log = LoggerFactory.getLogger(BuyerAsOffererProtocol.class); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/BuyerAsTakerProtocol.java b/core/src/main/java/io/bisq/trade/protocol/trade/BuyerAsTakerProtocol.java index f516dac44e..806a91180b 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/BuyerAsTakerProtocol.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/BuyerAsTakerProtocol.java @@ -20,12 +20,12 @@ package io.bisq.trade.protocol.trade; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.Message; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.messages.trade.protocol.trade.messages.FinalizePayoutTxRequest; -import io.bisq.messages.trade.protocol.trade.messages.PublishDepositTxRequest; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.FinalizePayoutTxRequest; +import io.bisq.network_messages.trade.protocol.trade.messages.PublishDepositTxRequest; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; import io.bisq.trade.BuyerAsTakerTrade; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.buyer.*; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/OffererProtocol.java b/core/src/main/java/io/bisq/trade/protocol/trade/OffererProtocol.java index fac101a047..28fd36f58c 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/OffererProtocol.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/OffererProtocol.java @@ -18,8 +18,8 @@ package io.bisq.trade.protocol.trade; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.NodeAddress; public interface OffererProtocol { void handleTakeOfferRequest(TradeMessage message, NodeAddress taker); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/ProcessModel.java b/core/src/main/java/io/bisq/trade/protocol/trade/ProcessModel.java index afc0c7f336..0597ebd019 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/ProcessModel.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/ProcessModel.java @@ -21,17 +21,17 @@ import io.bisq.app.Version; import io.bisq.arbitration.ArbitratorManager; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.TradeWalletService; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.PubKeyRing; import io.bisq.common.taskrunner.Model; import io.bisq.filter.FilterManager; -import io.bisq.messages.btc.data.RawTransactionInput; -import io.bisq.messages.filter.payload.PaymentAccountFilter; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.filter.payload.PaymentAccountFilter; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.p2p.storage.P2PService; import io.bisq.payment.PaymentAccount; import io.bisq.trade.OffererTrade; import io.bisq.trade.Trade; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/SellerAsOffererProtocol.java b/core/src/main/java/io/bisq/trade/protocol/trade/SellerAsOffererProtocol.java index 3f209578a7..2f12650958 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/SellerAsOffererProtocol.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/SellerAsOffererProtocol.java @@ -20,14 +20,14 @@ package io.bisq.trade.protocol.trade; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.Message; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.messages.trade.protocol.trade.messages.DepositTxPublishedMessage; -import io.bisq.messages.trade.protocol.trade.messages.FiatTransferStartedMessage; -import io.bisq.messages.trade.protocol.trade.messages.PayDepositRequest; -import io.bisq.messages.trade.protocol.trade.messages.PayoutTxFinalizedMessage; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.DepositTxPublishedMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.FiatTransferStartedMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.PayDepositRequest; +import io.bisq.network_messages.trade.protocol.trade.messages.PayoutTxFinalizedMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; import io.bisq.trade.SellerAsOffererTrade; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.offerer.*; @@ -37,7 +37,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkArgument; -import static io.bisq.messages.util.Validator.checkTradeId; +import static io.bisq.network_messages.util.Validator.checkTradeId; public class SellerAsOffererProtocol extends TradeProtocol implements SellerProtocol, OffererProtocol { private static final Logger log = LoggerFactory.getLogger(SellerAsOffererProtocol.class); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/SellerAsTakerProtocol.java b/core/src/main/java/io/bisq/trade/protocol/trade/SellerAsTakerProtocol.java index ef86bc2dc8..589f9ef8a7 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/SellerAsTakerProtocol.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/SellerAsTakerProtocol.java @@ -20,13 +20,13 @@ package io.bisq.trade.protocol.trade; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; -import io.bisq.messages.Message; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.messages.trade.protocol.trade.messages.FiatTransferStartedMessage; -import io.bisq.messages.trade.protocol.trade.messages.PayoutTxFinalizedMessage; -import io.bisq.messages.trade.protocol.trade.messages.PublishDepositTxRequest; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.FiatTransferStartedMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.PayoutTxFinalizedMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.PublishDepositTxRequest; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; import io.bisq.trade.SellerAsTakerTrade; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.seller.*; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/TradeProtocol.java b/core/src/main/java/io/bisq/trade/protocol/trade/TradeProtocol.java index f9f65a3c04..48ed82cfb4 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/TradeProtocol.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/TradeProtocol.java @@ -19,12 +19,12 @@ package io.bisq.trade.protocol.trade; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.common.crypto.PubKeyRing; -import io.bisq.crypto.DecryptedMsgWithPubKey; -import io.bisq.messages.Message; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.DecryptedDirectMessageListener; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.DecryptedDirectMessageListener; import io.bisq.trade.OffererTrade; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; @@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory; import java.security.PublicKey; -import static io.bisq.messages.util.Validator.nonEmptyStringOf; +import static io.bisq.network_messages.util.Validator.nonEmptyStringOf; public abstract class TradeProtocol { private static final Logger log = LoggerFactory.getLogger(TradeProtocol.class); @@ -139,7 +139,7 @@ public abstract class TradeProtocol { log.debug("cleanupTradable tradeState=" + tradeState); boolean isOffererTrade = trade instanceof OffererTrade; if (isOffererTrade && (tradeState == Trade.State.OFFERER_SENT_PUBLISH_DEPOSIT_TX_REQUEST || tradeState == Trade.State.DEPOSIT_SEEN_IN_NETWORK)) - processModel.getOpenOfferManager().closeOpenOffer(trade.getOffer()); + processModel.getOpenOfferManager().closeOpenOffer(trade.getOffer().getOfferPayload()); //boolean isTakerTrade = trade instanceof TakerTrade; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/TradingPeer.java b/core/src/main/java/io/bisq/trade/protocol/trade/TradingPeer.java index 1ad00a6ee9..982152fcd5 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/TradingPeer.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/TradingPeer.java @@ -18,10 +18,10 @@ package io.bisq.trade.protocol.trade; import io.bisq.app.Version; -import io.bisq.common.crypto.PubKeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; import io.bisq.common.persistance.Persistable; -import io.bisq.messages.btc.data.RawTransactionInput; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/TradeTask.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/TradeTask.java index d194c69868..2413c07883 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/TradeTask.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/TradeTask.java @@ -19,8 +19,8 @@ package io.bisq.trade.protocol.trade.tasks; import io.bisq.common.taskrunner.Task; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.crypto.DecryptedMsgWithPubKey; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.ProcessModel; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/OffererCreatesAndSignsDepositTxAsBuyer.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/OffererCreatesAndSignsDepositTxAsBuyer.java index 9bbdd29209..86014a1da1 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/OffererCreatesAndSignsDepositTxAsBuyer.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/OffererCreatesAndSignsDepositTxAsBuyer.java @@ -20,7 +20,7 @@ package io.bisq.trade.protocol.trade.tasks.buyer; import io.bisq.btc.AddressEntry; import io.bisq.btc.data.PreparedDepositTxAndOffererInputs; import io.bisq.btc.wallet.BtcWalletService; -import io.bisq.common.crypto.Hash; +import io.bisq.network_messages.crypto.Hash; import io.bisq.common.taskrunner.TaskRunner; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.TradingPeer; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/ProcessFinalizePayoutTxRequest.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/ProcessFinalizePayoutTxRequest.java index ebe5a3fdf2..cea42f63f5 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/ProcessFinalizePayoutTxRequest.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/ProcessFinalizePayoutTxRequest.java @@ -18,14 +18,14 @@ package io.bisq.trade.protocol.trade.tasks.buyer; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.FinalizePayoutTxRequest; +import io.bisq.network_messages.trade.protocol.trade.messages.FinalizePayoutTxRequest; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkNotNull; -import static io.bisq.messages.util.Validator.*; +import static io.bisq.network_messages.util.Validator.*; public class ProcessFinalizePayoutTxRequest extends TradeTask { private static final Logger log = LoggerFactory.getLogger(ProcessFinalizePayoutTxRequest.class); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/SendFiatTransferStartedMessage.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/SendFiatTransferStartedMessage.java index 676251b046..e7d1f41d50 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/SendFiatTransferStartedMessage.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/SendFiatTransferStartedMessage.java @@ -20,8 +20,8 @@ package io.bisq.trade.protocol.trade.tasks.buyer; import io.bisq.btc.AddressEntry; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.FiatTransferStartedMessage; -import io.bisq.p2p.messaging.SendMailboxMessageListener; +import io.bisq.network_messages.trade.protocol.trade.messages.FiatTransferStartedMessage; +import io.bisq.network_messages.p2p.messaging.SendMailboxMessageListener; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/SendPayoutTxFinalizedMessage.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/SendPayoutTxFinalizedMessage.java index 17b122c6ee..4629683071 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/SendPayoutTxFinalizedMessage.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/SendPayoutTxFinalizedMessage.java @@ -18,8 +18,8 @@ package io.bisq.trade.protocol.trade.tasks.buyer; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.PayoutTxFinalizedMessage; -import io.bisq.p2p.messaging.SendMailboxMessageListener; +import io.bisq.network_messages.trade.protocol.trade.messages.PayoutTxFinalizedMessage; +import io.bisq.network_messages.p2p.messaging.SendMailboxMessageListener; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/TakerSignAndPublishDepositTxAsBuyer.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/TakerSignAndPublishDepositTxAsBuyer.java index 279b4e8ed4..7c4457f4e6 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/TakerSignAndPublishDepositTxAsBuyer.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/buyer/TakerSignAndPublishDepositTxAsBuyer.java @@ -20,9 +20,9 @@ package io.bisq.trade.protocol.trade.tasks.buyer; import com.google.common.util.concurrent.FutureCallback; import io.bisq.btc.AddressEntry; import io.bisq.btc.wallet.BtcWalletService; -import io.bisq.common.crypto.Hash; +import io.bisq.network_messages.crypto.Hash; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.btc.data.RawTransactionInput; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.TradingPeer; import io.bisq.trade.protocol.trade.tasks.TradeTask; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/CreateAndSignContract.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/CreateAndSignContract.java index dac1360f2c..e813ab97fc 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/CreateAndSignContract.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/CreateAndSignContract.java @@ -23,9 +23,9 @@ import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.crypto.Sig; import io.bisq.common.taskrunner.TaskRunner; import io.bisq.common.util.Utilities; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.trade.payload.Contract; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.network_messages.NodeAddress; import io.bisq.trade.BuyerAsOffererTrade; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.TradingPeer; @@ -65,7 +65,7 @@ public class CreateAndSignContract extends TradeTask { AddressEntry offererAddressEntry = walletService.getOrCreateAddressEntry(id, AddressEntry.Context.MULTI_SIG); byte[] offererMultiSigPubKey = offererAddressEntry.getPubKey(); Contract contract = new Contract( - processModel.getOffer(), + processModel.getOffer().getOfferPayload(), trade.getTradeAmount(), trade.getTradePrice(), trade.getTakeOfferFeeTxId(), diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/ProcessDepositTxPublishedMessage.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/ProcessDepositTxPublishedMessage.java index 590ad127d2..501ca1da3f 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/ProcessDepositTxPublishedMessage.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/ProcessDepositTxPublishedMessage.java @@ -19,7 +19,7 @@ package io.bisq.trade.protocol.trade.tasks.offerer; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.DepositTxPublishedMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.DepositTxPublishedMessage; import io.bisq.trade.OffererTrade; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; @@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import static io.bisq.messages.util.Validator.checkTradeId; +import static io.bisq.network_messages.util.Validator.checkTradeId; public class ProcessDepositTxPublishedMessage extends TradeTask { private static final Logger log = LoggerFactory.getLogger(ProcessDepositTxPublishedMessage.class); @@ -57,7 +57,7 @@ public class ProcessDepositTxPublishedMessage extends TradeTask { BtcWalletService.printTx("depositTx received from peer", walletTx); if (trade instanceof OffererTrade) - processModel.getOpenOfferManager().closeOpenOffer(trade.getOffer()); + processModel.getOpenOfferManager().closeOpenOffer(trade.getOffer().getOfferPayload()); // update to the latest peer address of our peer if the message is correct trade.setTradingPeerNodeAddress(processModel.getTempTradingPeerNodeAddress()); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/ProcessPayDepositRequest.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/ProcessPayDepositRequest.java index ab31df0f6e..8bcd13760d 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/ProcessPayDepositRequest.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/ProcessPayDepositRequest.java @@ -18,10 +18,10 @@ package io.bisq.trade.protocol.trade.tasks.offerer; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.filter.payload.PaymentAccountFilter; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.trade.exceptions.TradePriceOutOfToleranceException; -import io.bisq.messages.trade.protocol.trade.messages.PayDepositRequest; +import io.bisq.network_messages.filter.payload.PaymentAccountFilter; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.trade.exceptions.TradePriceOutOfToleranceException; +import io.bisq.network_messages.trade.protocol.trade.messages.PayDepositRequest; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.bitcoinj.core.Coin; @@ -30,8 +30,8 @@ import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import static io.bisq.messages.util.Validator.checkTradeId; -import static io.bisq.messages.util.Validator.nonEmptyStringOf; +import static io.bisq.network_messages.util.Validator.checkTradeId; +import static io.bisq.network_messages.util.Validator.nonEmptyStringOf; public class ProcessPayDepositRequest extends TradeTask { private static final Logger log = LoggerFactory.getLogger(ProcessPayDepositRequest.class); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/PublishTradeStatistics.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/PublishTradeStatistics.java index 47017121c0..43dc94d76e 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/PublishTradeStatistics.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/PublishTradeStatistics.java @@ -18,7 +18,7 @@ package io.bisq.trade.protocol.trade.tasks.offerer; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; @@ -32,7 +32,7 @@ public class PublishTradeStatistics extends TradeTask { try { runInterceptHook(); // Offerer is responsible for publishing. Only in case the offerer uses an old version the taker publishes. - TradeStatistics tradeStatistics = new TradeStatistics(trade.getOffer(), + TradeStatistics tradeStatistics = new TradeStatistics(trade.getOffer().getOfferPayload(), trade.getTradePrice(), trade.getTradeAmount(), trade.getDate(), diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/SendPublishDepositTxRequest.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/SendPublishDepositTxRequest.java index 68f9e5f976..bd5d9a9685 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/SendPublishDepositTxRequest.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/SendPublishDepositTxRequest.java @@ -20,8 +20,8 @@ package io.bisq.trade.protocol.trade.tasks.offerer; import io.bisq.btc.AddressEntry; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.PublishDepositTxRequest; -import io.bisq.p2p.messaging.SendDirectMessageListener; +import io.bisq.network_messages.trade.protocol.trade.messages.PublishDepositTxRequest; +import io.bisq.network_messages.p2p.messaging.SendDirectMessageListener; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/SetupDepositBalanceListener.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/SetupDepositBalanceListener.java index fb2506fa4c..2f65bfee94 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/SetupDepositBalanceListener.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/SetupDepositBalanceListener.java @@ -91,7 +91,7 @@ public class SetupDepositBalanceListener extends TradeTask { Trade.State tradeState = trade.getState(); if (balance.compareTo(Coin.ZERO) == 0) { if (trade instanceof OffererTrade) { - processModel.getOpenOfferManager().closeOpenOffer(trade.getOffer()); + processModel.getOpenOfferManager().closeOpenOffer(trade.getOffer().getOfferPayload()); if (tradeState == Trade.State.OFFERER_SENT_PUBLISH_DEPOSIT_TX_REQUEST) { trade.setState(Trade.State.DEPOSIT_SEEN_IN_NETWORK); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/VerifyArbitrationSelection.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/VerifyArbitrationSelection.java index f45fd49e8e..6763c1f548 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/VerifyArbitrationSelection.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/offerer/VerifyArbitrationSelection.java @@ -39,7 +39,7 @@ public class VerifyArbitrationSelection extends TradeTask { runInterceptHook(); if (trade.getArbitratorNodeAddress().equals(ArbitrationSelectionRule.select(processModel.getTakerAcceptedArbitratorNodeAddresses(), - processModel.getOffer()))) + processModel.getOffer().getOfferPayload()))) complete(); else failed("Arbitrator selection verification failed"); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/OffererCreatesAndSignsDepositTxAsSeller.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/OffererCreatesAndSignsDepositTxAsSeller.java index 6213acdd52..1a26d9671e 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/OffererCreatesAndSignsDepositTxAsSeller.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/OffererCreatesAndSignsDepositTxAsSeller.java @@ -20,7 +20,7 @@ package io.bisq.trade.protocol.trade.tasks.seller; import io.bisq.btc.AddressEntry; import io.bisq.btc.data.PreparedDepositTxAndOffererInputs; import io.bisq.btc.wallet.BtcWalletService; -import io.bisq.common.crypto.Hash; +import io.bisq.network_messages.crypto.Hash; import io.bisq.common.taskrunner.TaskRunner; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.TradingPeer; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/ProcessFiatTransferStartedMessage.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/ProcessFiatTransferStartedMessage.java index b2415a4f67..7290ce205b 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/ProcessFiatTransferStartedMessage.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/ProcessFiatTransferStartedMessage.java @@ -18,15 +18,15 @@ package io.bisq.trade.protocol.trade.tasks.seller; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.FiatTransferStartedMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.FiatTransferStartedMessage; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkNotNull; -import static io.bisq.messages.util.Validator.checkTradeId; -import static io.bisq.messages.util.Validator.nonEmptyStringOf; +import static io.bisq.network_messages.util.Validator.checkTradeId; +import static io.bisq.network_messages.util.Validator.nonEmptyStringOf; public class ProcessFiatTransferStartedMessage extends TradeTask { private static final Logger log = LoggerFactory.getLogger(ProcessFiatTransferStartedMessage.class); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/ProcessPayoutTxFinalizedMessage.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/ProcessPayoutTxFinalizedMessage.java index a463e59897..11bc6a7dea 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/ProcessPayoutTxFinalizedMessage.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/ProcessPayoutTxFinalizedMessage.java @@ -19,7 +19,7 @@ package io.bisq.trade.protocol.trade.tasks.seller; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.PayoutTxFinalizedMessage; +import io.bisq.network_messages.trade.protocol.trade.messages.PayoutTxFinalizedMessage; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.bitcoinj.core.Transaction; @@ -28,7 +28,7 @@ import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import static io.bisq.messages.util.Validator.checkTradeId; +import static io.bisq.network_messages.util.Validator.checkTradeId; public class ProcessPayoutTxFinalizedMessage extends TradeTask { private static final Logger log = LoggerFactory.getLogger(ProcessPayoutTxFinalizedMessage.class); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/SendFinalizePayoutTxRequest.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/SendFinalizePayoutTxRequest.java index 3e01022e32..94e92c0793 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/SendFinalizePayoutTxRequest.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/SendFinalizePayoutTxRequest.java @@ -20,8 +20,8 @@ package io.bisq.trade.protocol.trade.tasks.seller; import io.bisq.btc.AddressEntry; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.FinalizePayoutTxRequest; -import io.bisq.p2p.messaging.SendMailboxMessageListener; +import io.bisq.network_messages.trade.protocol.trade.messages.FinalizePayoutTxRequest; +import io.bisq.network_messages.p2p.messaging.SendMailboxMessageListener; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/SignAndPublishDepositTxAsSeller.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/SignAndPublishDepositTxAsSeller.java index c1f46cbbf5..6f57f67a7c 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/SignAndPublishDepositTxAsSeller.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/seller/SignAndPublishDepositTxAsSeller.java @@ -20,9 +20,9 @@ package io.bisq.trade.protocol.trade.tasks.seller; import com.google.common.util.concurrent.FutureCallback; import io.bisq.btc.AddressEntry; import io.bisq.btc.wallet.BtcWalletService; -import io.bisq.common.crypto.Hash; +import io.bisq.network_messages.crypto.Hash; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.btc.data.RawTransactionInput; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.TradingPeer; import io.bisq.trade.protocol.trade.tasks.TradeTask; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/CreateTakeOfferFeeTx.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/CreateTakeOfferFeeTx.java index 77000fd0b2..76ff14256e 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/CreateTakeOfferFeeTx.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/CreateTakeOfferFeeTx.java @@ -20,8 +20,8 @@ package io.bisq.trade.protocol.trade.tasks.taker; import io.bisq.btc.AddressEntry; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.network_messages.NodeAddress; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.ArbitrationSelectionRule; import io.bisq.trade.protocol.trade.tasks.TradeTask; @@ -47,7 +47,7 @@ public class CreateTakeOfferFeeTx extends TradeTask { runInterceptHook(); User user = processModel.getUser(); - NodeAddress selectedArbitratorNodeAddress = ArbitrationSelectionRule.select(user.getAcceptedArbitratorAddresses(), processModel.getOffer()); + NodeAddress selectedArbitratorNodeAddress = ArbitrationSelectionRule.select(user.getAcceptedArbitratorAddresses(), processModel.getOffer().getOfferPayload()); log.debug("selectedArbitratorAddress " + selectedArbitratorNodeAddress); Arbitrator selectedArbitrator = user.getAcceptedArbitratorByAddress(selectedArbitratorNodeAddress); checkNotNull(selectedArbitrator, "selectedArbitrator must not be null at CreateTakeOfferFeeTx"); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/LoadCreateOfferFeeTx.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/LoadCreateOfferFeeTx.java index 815ee9bd09..5eda772193 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/LoadCreateOfferFeeTx.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/LoadCreateOfferFeeTx.java @@ -38,7 +38,7 @@ public class LoadCreateOfferFeeTx extends TradeTask { runInterceptHook(); // TODO impl. missing - ///processModel.getWalletService().findTxInBlockChain(trade.getOffer().getOfferFeePaymentTxID()); + ///processModel.getWalletService().findTxInBlockChain(trade.getOfferPayload().getOfferFeePaymentTxID()); complete(); } catch (Throwable t) { diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/ProcessPublishDepositTxRequest.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/ProcessPublishDepositTxRequest.java index 136bdce155..98ef821607 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/ProcessPublishDepositTxRequest.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/ProcessPublishDepositTxRequest.java @@ -18,9 +18,9 @@ package io.bisq.trade.protocol.trade.tasks.taker; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.filter.payload.PaymentAccountFilter; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.trade.protocol.trade.messages.PublishDepositTxRequest; +import io.bisq.network_messages.filter.payload.PaymentAccountFilter; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.trade.protocol.trade.messages.PublishDepositTxRequest; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; @@ -28,8 +28,8 @@ import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import static io.bisq.messages.util.Validator.checkTradeId; -import static io.bisq.messages.util.Validator.nonEmptyStringOf; +import static io.bisq.network_messages.util.Validator.checkTradeId; +import static io.bisq.network_messages.util.Validator.nonEmptyStringOf; public class ProcessPublishDepositTxRequest extends TradeTask { private static final Logger log = LoggerFactory.getLogger(ProcessPublishDepositTxRequest.class); diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/PublishTradeStatistics.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/PublishTradeStatistics.java index 1df74075bd..a51ad29127 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/PublishTradeStatistics.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/PublishTradeStatistics.java @@ -18,7 +18,7 @@ package io.bisq.trade.protocol.trade.tasks.taker; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; @@ -44,7 +44,7 @@ public class PublishTradeStatistics extends TradeTask { .filter(c -> c.getPeersNodeAddressOptional().isPresent() && c.getPeersNodeAddressOptional().get().equals(trade.getTradingPeerNodeAddress())) .findAny() .ifPresent(c -> { - TradeStatistics tradeStatistics = new TradeStatistics(trade.getOffer(), + TradeStatistics tradeStatistics = new TradeStatistics(trade.getOffer().getOfferPayload(), trade.getTradePrice(), trade.getTradeAmount(), trade.getDate(), diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SelectArbitrator.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SelectArbitrator.java index bf635806c3..952c17c766 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SelectArbitrator.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SelectArbitrator.java @@ -38,7 +38,7 @@ public class SelectArbitrator extends TradeTask { try { runInterceptHook(); - trade.applyArbitratorNodeAddress(ArbitrationSelectionRule.select(processModel.getUser().getAcceptedArbitratorAddresses(), processModel.getOffer())); + trade.applyArbitratorNodeAddress(ArbitrationSelectionRule.select(processModel.getUser().getAcceptedArbitratorAddresses(), processModel.getOffer().getOfferPayload())); complete(); } catch (Throwable t) { diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SendDepositTxPublishedMessage.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SendDepositTxPublishedMessage.java index 25b45c8015..93ab421656 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SendDepositTxPublishedMessage.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SendDepositTxPublishedMessage.java @@ -18,8 +18,8 @@ package io.bisq.trade.protocol.trade.tasks.taker; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.DepositTxPublishedMessage; -import io.bisq.p2p.messaging.SendMailboxMessageListener; +import io.bisq.network_messages.trade.protocol.trade.messages.DepositTxPublishedMessage; +import io.bisq.network_messages.p2p.messaging.SendMailboxMessageListener; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SendPayDepositRequest.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SendPayDepositRequest.java index 4021f594d6..9a7e163a00 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SendPayDepositRequest.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/SendPayDepositRequest.java @@ -20,8 +20,8 @@ package io.bisq.trade.protocol.trade.tasks.taker; import io.bisq.btc.AddressEntry; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.trade.protocol.trade.messages.PayDepositRequest; -import io.bisq.p2p.messaging.SendMailboxMessageListener; +import io.bisq.network_messages.trade.protocol.trade.messages.PayDepositRequest; +import io.bisq.network_messages.p2p.messaging.SendMailboxMessageListener; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.tasks.TradeTask; import org.slf4j.Logger; diff --git a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/VerifyAndSignContract.java b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/VerifyAndSignContract.java index 609fca68b8..186996ce30 100644 --- a/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/VerifyAndSignContract.java +++ b/core/src/main/java/io/bisq/trade/protocol/trade/tasks/taker/VerifyAndSignContract.java @@ -22,9 +22,9 @@ import io.bisq.btc.wallet.BtcWalletService; import io.bisq.common.crypto.Sig; import io.bisq.common.taskrunner.TaskRunner; import io.bisq.common.util.Utilities; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.trade.payload.Contract; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.network_messages.NodeAddress; import io.bisq.trade.SellerAsTakerTrade; import io.bisq.trade.Trade; import io.bisq.trade.protocol.trade.TradingPeer; @@ -77,7 +77,7 @@ public class VerifyAndSignContract extends TradeTask { "takerMultiSigPubKey from AddressEntry must match the one from the trade data. trade id =" + id); Contract contract = new Contract( - processModel.getOffer(), + processModel.getOffer().getOfferPayload(), trade.getTradeAmount(), trade.getTradePrice(), trade.getTakeOfferFeeTxId(), diff --git a/core/src/main/java/io/bisq/trade/statistics/TradeStatisticsForJson.java b/core/src/main/java/io/bisq/trade/statistics/TradeStatisticsForJson.java index 3209d66be4..47b27bb3a3 100644 --- a/core/src/main/java/io/bisq/trade/statistics/TradeStatisticsForJson.java +++ b/core/src/main/java/io/bisq/trade/statistics/TradeStatisticsForJson.java @@ -1,9 +1,9 @@ package io.bisq.trade.statistics; import io.bisq.common.util.MathUtils; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; import org.bitcoinj.core.Coin; import org.bitcoinj.utils.ExchangeRate; import org.bitcoinj.utils.Fiat; @@ -19,7 +19,7 @@ public final class TradeStatisticsForJson { private static final Logger log = LoggerFactory.getLogger(TradeStatisticsForJson.class); public final String currency; - public final Offer.Direction direction; + public final OfferPayload.Direction direction; public final long tradePrice; public final long tradeAmount; public final long tradeDate; @@ -34,7 +34,7 @@ public final class TradeStatisticsForJson { // primaryMarket fields are based on industry standard where primaryMarket is always in the focus (in the app BTC is always in the focus - will be changed in a larger refactoring once) public String currencyPair; - public Offer.Direction primaryMarketDirection; + public OfferPayload.Direction primaryMarketDirection; public String tradePriceDisplayString; @@ -67,7 +67,7 @@ public final class TradeStatisticsForJson { MonetaryFormat coinFormat = MonetaryFormat.BTC.minDecimals(2).repeatOptionalDecimals(1, 6); final Fiat tradePriceAsFiat = getTradePrice(); if (CurrencyUtil.isCryptoCurrency(currency)) { - primaryMarketDirection = direction == Offer.Direction.BUY ? Offer.Direction.SELL : Offer.Direction.BUY; + primaryMarketDirection = direction == OfferPayload.Direction.BUY ? OfferPayload.Direction.SELL : OfferPayload.Direction.BUY; final double value = tradePriceAsFiat.value != 0 ? 10000D / tradePriceAsFiat.value : 0; DecimalFormat decimalFormat = new DecimalFormat("#.#"); decimalFormat.setMaximumFractionDigits(8); diff --git a/core/src/main/java/io/bisq/trade/statistics/TradeStatisticsManager.java b/core/src/main/java/io/bisq/trade/statistics/TradeStatisticsManager.java index 78854a1677..eabccf8112 100644 --- a/core/src/main/java/io/bisq/trade/statistics/TradeStatisticsManager.java +++ b/core/src/main/java/io/bisq/trade/statistics/TradeStatisticsManager.java @@ -5,14 +5,15 @@ import com.google.inject.name.Named; import io.bisq.app.AppOptionKeys; import io.bisq.common.util.Utilities; import io.bisq.locale.CurrencyTuple; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; -import io.bisq.p2p.P2PService; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.storage.HashMapChangedListener; -import io.bisq.p2p.storage.payload.StoragePayload; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.payload.StoragePayload; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import io.bisq.storage.PlainTextWrapper; import io.bisq.storage.Storage; +import io.bisq.user.Preferences; import javafx.collections.FXCollections; import javafx.collections.ObservableSet; import org.slf4j.Logger; @@ -55,7 +56,7 @@ public class TradeStatisticsManager { this.statisticsJsonStorage.initWithFileName("trade_statistics.json"); this.fiatCurrencyListJsonStorage.initWithFileName("fiat_currency_list.json"); - ArrayList fiatCurrencyList = new ArrayList<>(CurrencyUtil.getAllSortedFiatCurrencies().stream() + ArrayList fiatCurrencyList = new ArrayList<>(CurrencyUtil.getAllSortedFiatCurrencies(Preferences.getDefaultLocale()).stream() .map(e -> new CurrencyTuple(e.getCode(), e.getName(), 8)) .collect(Collectors.toList())); fiatCurrencyListJsonStorage.queueUpForSave(new PlainTextWrapper(Utilities.objectToJson(fiatCurrencyList)), 2000); diff --git a/core/src/main/java/io/bisq/user/User.java b/core/src/main/java/io/bisq/user/User.java index b8b154975b..d473051615 100644 --- a/core/src/main/java/io/bisq/user/User.java +++ b/core/src/main/java/io/bisq/user/User.java @@ -18,14 +18,14 @@ package io.bisq.user; import io.bisq.app.Version; -import io.bisq.common.crypto.KeyRing; import io.bisq.common.persistance.Persistable; -import io.bisq.messages.alert.Alert; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.filter.payload.Filter; -import io.bisq.messages.locale.LanguageUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.p2p.NodeAddress; +import io.bisq.locale.LanguageUtil; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.alert.Alert; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.filter.payload.Filter; import io.bisq.payment.PaymentAccount; import io.bisq.storage.Storage; import javafx.beans.property.ObjectProperty; @@ -106,7 +106,7 @@ public final class User implements Persistable { } else { accountID = String.valueOf(Math.abs(keyRing.getPubKeyRing().hashCode())); - acceptedLanguageLocaleCodes.add(LanguageUtil.getDefaultLanguageLocaleAsCode()); + acceptedLanguageLocaleCodes.add(LanguageUtil.getDefaultLanguageLocaleAsCode(Preferences.getDefaultLocale())); String english = LanguageUtil.getEnglishLanguageLocaleCode(); if (!acceptedLanguageLocaleCodes.contains(english)) acceptedLanguageLocaleCodes.add(english); diff --git a/core/src/test/java/io/bisq/btc/RestrictionsTest.java b/core/src/test/java/io/bisq/btc/RestrictionsTest.java index cf43aa4304..4d6331dffb 100644 --- a/core/src/test/java/io/bisq/btc/RestrictionsTest.java +++ b/core/src/test/java/io/bisq/btc/RestrictionsTest.java @@ -17,7 +17,7 @@ package io.bisq.btc; -import io.bisq.messages.btc.Restrictions; +import io.bisq.network_messages.btc.Restrictions; import org.bitcoinj.core.Coin; import org.bitcoinj.core.Transaction; import org.junit.Test; diff --git a/core/src/test/java/io/bisq/btc/pricefeed/MarketPriceFeedServiceTest.java b/core/src/test/java/io/bisq/btc/pricefeed/MarketPriceFeedServiceTest.java index e249523c07..ac1e5bd908 100644 --- a/core/src/test/java/io/bisq/btc/pricefeed/MarketPriceFeedServiceTest.java +++ b/core/src/test/java/io/bisq/btc/pricefeed/MarketPriceFeedServiceTest.java @@ -1,6 +1,6 @@ package io.bisq.btc.pricefeed; -import io.bisq.messages.provider.price.PriceFeedService; +import io.bisq.provider.price.PriceFeedService; import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; diff --git a/doc/protobuffer.md b/doc/protobuffer.md index d036001810..67793ebac8 100644 --- a/doc/protobuffer.md +++ b/doc/protobuffer.md @@ -145,7 +145,7 @@ I LazyProcessedStoragePayload (io.bisq.p2p.storage.payload) + CompensationRequestPayload (io.bisq.dao.compensation) D TradeStatistics (io.bisq.trade.statistics) + MailboxStoragePayload (io.bisq.p2p.storage.payload) -+ Offer (io.bisq.trade.offer) ++ Offer (io.bisq.trade.offerPayload) I PersistedStoragePayload (io.bisq.p2p.storage.payload) D CompensationRequestPayload (io.bisq.dao.compensation) D TradeStatistics (io.bisq.trade.statistics) @@ -175,6 +175,6 @@ C+ BankAccountContractData (io.bisq.payment) + PubKeyRing (io.bisq.common.crypto) + RawTransactionInput (io.bisq.btc.data) I RequiresOwnerIsOnlinePayload (io.bisq.p2p.storage.payload) -D Offer (io.bisq.trade.offer) +D Offer (io.bisq.trade.offerPayload) + SealedAndSigned (io.bisq.common.crypto) ``` \ No newline at end of file diff --git a/gui/src/main/java/io/bisq/app/BisqApp.java b/gui/src/main/java/io/bisq/app/BisqApp.java index 461a05087d..4b1149240d 100644 --- a/gui/src/main/java/io/bisq/app/BisqApp.java +++ b/gui/src/main/java/io/bisq/app/BisqApp.java @@ -43,7 +43,7 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.main.overlays.windows.*; import io.bisq.gui.util.ImageUtil; import io.bisq.locale.Res; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.storage.P2PService; import io.bisq.storage.Storage; import io.bisq.trade.TradeManager; import io.bisq.trade.offer.OpenOfferManager; diff --git a/gui/src/main/java/io/bisq/app/BisqAppModule.java b/gui/src/main/java/io/bisq/app/BisqAppModule.java index 5b00a3e903..f183a8f930 100644 --- a/gui/src/main/java/io/bisq/app/BisqAppModule.java +++ b/gui/src/main/java/io/bisq/app/BisqAppModule.java @@ -22,15 +22,15 @@ import io.bisq.alert.AlertModule; import io.bisq.arbitration.ArbitratorModule; import io.bisq.btc.BitcoinModule; import io.bisq.common.Clock; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.KeyStorage; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; import io.bisq.crypto.EncryptionServiceModule; import io.bisq.dao.DaoModule; import io.bisq.filter.FilterModule; import io.bisq.gui.GuiModule; import io.bisq.gui.common.view.CachingViewLoader; import io.bisq.gui.main.overlays.notifications.NotificationCenter; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.p2p.P2PModule; import io.bisq.storage.Storage; import io.bisq.trade.TradeModule; diff --git a/gui/src/main/java/io/bisq/gui/bisq.css b/gui/src/main/java/io/bisq/gui/bisq.css index a1178a6496..f8d549b7ba 100644 --- a/gui/src/main/java/io/bisq/gui/bisq.css +++ b/gui/src/main/java/io/bisq/gui/bisq.css @@ -469,7 +469,7 @@ textfield */ -fx-text-fill: #333000; } -/* Offer book */ +/* OfferPayload book */ #num-offers { -fx-font-size: 12; } diff --git a/gui/src/main/java/io/bisq/gui/components/PeerInfoIcon.java b/gui/src/main/java/io/bisq/gui/components/PeerInfoIcon.java index 4c511e95ec..e67dfe72b7 100644 --- a/gui/src/main/java/io/bisq/gui/components/PeerInfoIcon.java +++ b/gui/src/main/java/io/bisq/gui/components/PeerInfoIcon.java @@ -3,8 +3,8 @@ package io.bisq.gui.components; import io.bisq.alert.PrivateNotificationManager; import io.bisq.gui.main.overlays.editor.PeerInfoWithTagEditor; import io.bisq.locale.Res; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.user.Preferences; import javafx.geometry.Point2D; import javafx.scene.Group; import javafx.scene.canvas.Canvas; diff --git a/gui/src/main/java/io/bisq/gui/components/TxIdTextField.java b/gui/src/main/java/io/bisq/gui/components/TxIdTextField.java index 7ae04d8e33..af8e30ea3d 100644 --- a/gui/src/main/java/io/bisq/gui/components/TxIdTextField.java +++ b/gui/src/main/java/io/bisq/gui/components/TxIdTextField.java @@ -25,7 +25,7 @@ import io.bisq.common.util.Utilities; import io.bisq.gui.components.indicator.TxConfidenceIndicator; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.control.Tooltip; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/AliPayForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/AliPayForm.java index b23305da43..d266bda70c 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/AliPayForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/AliPayForm.java @@ -23,8 +23,8 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.AliPayValidator; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.payment.payload.AliPayAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.AliPayAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.AliPayAccount; import io.bisq.payment.PaymentAccount; import javafx.scene.control.TextField; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/BankForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/BankForm.java index 6710a6d03c..ad12e95f71 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/BankForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/BankForm.java @@ -28,10 +28,9 @@ import io.bisq.gui.util.validation.AccountNrValidator; import io.bisq.gui.util.validation.BankIdValidator; import io.bisq.gui.util.validation.BranchIdValidator; import io.bisq.gui.util.validation.InputValidator; -import io.bisq.locale.Res; -import io.bisq.messages.locale.*; -import io.bisq.messages.payment.payload.BankAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.*; +import io.bisq.network_messages.payment.payload.BankAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.CountryBasedPaymentAccount; import io.bisq.payment.PaymentAccount; import javafx.collections.FXCollections; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/CashDepositForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/CashDepositForm.java index b400ffa20d..5a2f5d5c90 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/CashDepositForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/CashDepositForm.java @@ -29,12 +29,12 @@ import io.bisq.gui.util.validation.AccountNrValidator; import io.bisq.gui.util.validation.BankIdValidator; import io.bisq.gui.util.validation.BranchIdValidator; import io.bisq.gui.util.validation.InputValidator; -import io.bisq.locale.Res; -import io.bisq.messages.locale.*; -import io.bisq.messages.payment.payload.CashDepositAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.*; +import io.bisq.network_messages.payment.payload.CashDepositAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.CountryBasedPaymentAccount; import io.bisq.payment.PaymentAccount; +import io.bisq.user.Preferences; import javafx.collections.FXCollections; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; @@ -83,9 +83,9 @@ public class CashDepositForm extends PaymentMethodForm { if (!showRequirements) FormBuilder.addLabelTextFieldWithCopyIcon(gridPane, ++gridRow, Res.getWithCol("payment.bank.country"), - CountryUtil.getNameAndCode(countryCode)); + CountryUtil.getNameAndCode(countryCode, Preferences.getDefaultLocale())); else - requirements += "\n" + Res.get("payment.bank.country") + " " + CountryUtil.getNameAndCode(countryCode); + requirements += "\n" + Res.get("payment.bank.country") + " " + CountryUtil.getNameAndCode(countryCode, Preferences.getDefaultLocale()); // We don't want to display more than 6 rows to avoid scrolling, so if we get too many fields we combine them horizontally int nrRows = 0; @@ -313,7 +313,7 @@ public class CashDepositForm extends PaymentMethodForm { if (selectedItem != null) { getCountryBasedPaymentAccount().setCountry(selectedItem); String countryCode = selectedItem.code; - TradeCurrency currency = CurrencyUtil.getCurrencyByCountryCode(countryCode); + TradeCurrency currency = CurrencyUtil.getCurrencyByCountryCode(countryCode, Preferences.getDefaultLocale()); paymentAccount.setSingleTradeCurrency(currency); currencyComboBox.setDisable(false); currencyComboBox.getSelectionModel().select(currency); @@ -421,10 +421,10 @@ public class CashDepositForm extends PaymentMethodForm { currencyComboBox = FormBuilder.addLabelComboBox(gridPane, ++gridRow, Res.getWithCol("shared.currency")).second; currencyComboBox.setPromptText(Res.get("list.currency.select")); - currencyComboBox.setItems(FXCollections.observableArrayList(CurrencyUtil.getAllSortedFiatCurrencies())); + currencyComboBox.setItems(FXCollections.observableArrayList(CurrencyUtil.getAllSortedFiatCurrencies(Preferences.getDefaultLocale()))); currencyComboBox.setOnAction(e -> { TradeCurrency selectedItem = currencyComboBox.getSelectionModel().getSelectedItem(); - FiatCurrency defaultCurrency = CurrencyUtil.getCurrencyByCountryCode(countryComboBox.getSelectionModel().getSelectedItem().code); + FiatCurrency defaultCurrency = CurrencyUtil.getCurrencyByCountryCode(countryComboBox.getSelectionModel().getSelectedItem().code, Preferences.getDefaultLocale()); if (!defaultCurrency.equals(selectedItem)) { new Popup<>().warning(Res.get("payment.foreign.currency")) .actionButtonText(Res.get("shared.yes")) diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/ChaseQuickPayForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/ChaseQuickPayForm.java index b81f68fb11..fb5a491dc1 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/ChaseQuickPayForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/ChaseQuickPayForm.java @@ -24,9 +24,9 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.ChaseQuickPayValidator; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.ChaseQuickPayAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.payload.ChaseQuickPayAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.ChaseQuickPayAccount; import io.bisq.payment.PaymentAccount; import javafx.scene.control.TextField; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/ClearXchangeForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/ClearXchangeForm.java index dcded2502a..b8556b09d9 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/ClearXchangeForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/ClearXchangeForm.java @@ -24,8 +24,8 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.ClearXchangeValidator; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.payment.payload.ClearXchangeAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.ClearXchangeAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.ClearXchangeAccount; import io.bisq.payment.PaymentAccount; import javafx.scene.control.TextField; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/CryptoCurrencyForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/CryptoCurrencyForm.java index f386a81f5f..5828f83a90 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/CryptoCurrencyForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/CryptoCurrencyForm.java @@ -24,10 +24,10 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.AltCoinAddressValidator; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.CryptoCurrencyAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.payload.CryptoCurrencyAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.CryptoCurrencyAccount; import io.bisq.payment.PaymentAccount; import javafx.collections.FXCollections; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/FasterPaymentsForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/FasterPaymentsForm.java index 904ff7aefe..2e36562385 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/FasterPaymentsForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/FasterPaymentsForm.java @@ -24,9 +24,9 @@ import io.bisq.gui.util.validation.AccountNrValidator; import io.bisq.gui.util.validation.BranchIdValidator; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.FasterPaymentsAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.payload.FasterPaymentsAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.FasterPaymentsAccount; import io.bisq.payment.PaymentAccount; import javafx.scene.control.TextField; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/InteracETransferForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/InteracETransferForm.java index 39521500e9..51158aa002 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/InteracETransferForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/InteracETransferForm.java @@ -24,9 +24,9 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.InputValidator; import io.bisq.gui.util.validation.InteracETransferValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.InteracETransferAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.payload.InteracETransferAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.InteracETransferAccount; import io.bisq.payment.PaymentAccount; import javafx.scene.layout.GridPane; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/NationalBankForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/NationalBankForm.java index 15efa7cafa..b540b0705e 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/NationalBankForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/NationalBankForm.java @@ -19,7 +19,7 @@ package io.bisq.gui.components.paymentmethods; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.validation.InputValidator; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.PaymentAccount; import javafx.scene.layout.GridPane; import org.slf4j.Logger; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/OKPayForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/OKPayForm.java index 8ea76ce28d..8cb6d3db51 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/OKPayForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/OKPayForm.java @@ -23,11 +23,12 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.InputValidator; import io.bisq.gui.util.validation.OKPayValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.payment.payload.OKPayAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.payment.payload.OKPayAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.OKPayAccount; import io.bisq.payment.PaymentAccount; +import io.bisq.user.Preferences; import javafx.geometry.Insets; import javafx.geometry.VPos; import javafx.scene.control.CheckBox; @@ -92,7 +93,7 @@ public class OKPayForm extends PaymentMethodForm { else flowPane.setId("flow-pane-checkboxes-non-editable-bg"); - CurrencyUtil.getAllOKPayCurrencies().stream().forEach(e -> + CurrencyUtil.getAllOKPayCurrencies(Preferences.getDefaultLocale()).stream().forEach(e -> { CheckBox checkBox = new CheckBox(e.getCode()); checkBox.setMouseTransparent(!isEditable); diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/PaymentMethodForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/PaymentMethodForm.java index 19c098ca3f..807ea4f2e1 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/PaymentMethodForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/PaymentMethodForm.java @@ -22,10 +22,11 @@ import io.bisq.gui.components.InputTextField; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.PaymentAccount; +import io.bisq.user.Preferences; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.FXCollections; @@ -67,7 +68,7 @@ public abstract class PaymentMethodForm { protected void addTradeCurrencyComboBox() { currencyComboBox = addLabelComboBox(gridPane, ++gridRow, Res.getWithCol("shared.currency")).second; currencyComboBox.setPromptText(Res.get("list.currency.select")); - currencyComboBox.setItems(FXCollections.observableArrayList(CurrencyUtil.getAllMainFiatCurrencies())); + currencyComboBox.setItems(FXCollections.observableArrayList(CurrencyUtil.getAllMainFiatCurrencies(Preferences.getDefaultLocale(), Preferences.getDefaultTradeCurrency()))); currencyComboBox.setConverter(new StringConverter() { @Override public String toString(TradeCurrency tradeCurrency) { diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/PerfectMoneyForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/PerfectMoneyForm.java index 3ddf7000c1..27dfdbd653 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/PerfectMoneyForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/PerfectMoneyForm.java @@ -23,9 +23,9 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.InputValidator; import io.bisq.gui.util.validation.PerfectMoneyValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.PerfectMoneyAccountContractData; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.PerfectMoneyAccountContractData; import io.bisq.payment.PaymentAccount; import io.bisq.payment.PerfectMoneyAccount; import javafx.collections.FXCollections; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/SameBankForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/SameBankForm.java index 8c92a3e677..d5f7080c49 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/SameBankForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/SameBankForm.java @@ -22,8 +22,8 @@ import io.bisq.gui.components.InputTextField; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.BankUtil; -import io.bisq.messages.payment.payload.PaymentAccountContractData; +import io.bisq.locale.BankUtil; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import io.bisq.payment.CountryBasedPaymentAccount; import io.bisq.payment.PaymentAccount; import javafx.scene.control.Label; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/SepaForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/SepaForm.java index 648c17e2e8..5391c91ca2 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/SepaForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/SepaForm.java @@ -25,15 +25,16 @@ import io.bisq.gui.util.validation.BICValidator; import io.bisq.gui.util.validation.IBANValidator; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.Country; -import io.bisq.messages.locale.CountryUtil; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.SepaAccountContractData; +import io.bisq.locale.Country; +import io.bisq.locale.CountryUtil; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.SepaAccountContractData; import io.bisq.payment.CountryBasedPaymentAccount; import io.bisq.payment.PaymentAccount; import io.bisq.payment.SepaAccount; +import io.bisq.user.Preferences; import javafx.collections.FXCollections; import javafx.geometry.HPos; import javafx.geometry.Insets; @@ -72,7 +73,7 @@ public class SepaForm extends PaymentMethodForm { sepaAccountContractData.getHolderName()); FormBuilder.addLabelTextFieldWithCopyIcon(gridPane, ++gridRow, Res.getWithCol("payment.bank.country"), - CountryUtil.getNameAndCode(sepaAccountContractData.getCountryCode())); + CountryUtil.getNameAndCode(sepaAccountContractData.getCountryCode(), Preferences.getDefaultLocale())); // IBAN, BIC will not be translated FormBuilder.addLabelTextFieldWithCopyIcon(gridPane, ++gridRow, "IBAN:", sepaAccountContractData.getIban()); FormBuilder.addLabelTextFieldWithCopyIcon(gridPane, ++gridRow, "BIC:", sepaAccountContractData.getBic()); @@ -153,7 +154,7 @@ public class SepaForm extends PaymentMethodForm { countryComboBox.setOnAction(e -> { Country selectedItem = countryComboBox.getSelectionModel().getSelectedItem(); sepaAccount.setCountry(selectedItem); - TradeCurrency currency = CurrencyUtil.getCurrencyByCountryCode(selectedItem.code); + TradeCurrency currency = CurrencyUtil.getCurrencyByCountryCode(selectedItem.code, Preferences.getDefaultLocale()); setupCurrency(selectedItem, currency); updateCountriesSelection(true, euroCountryCheckBoxes); @@ -166,12 +167,12 @@ public class SepaForm extends PaymentMethodForm { addAllowedPeriod(); addAccountNameTextFieldWithAutoFillCheckBox(); - countryComboBox.setItems(FXCollections.observableArrayList(CountryUtil.getAllSepaCountries())); - Country country = CountryUtil.getDefaultCountry(); - if (CountryUtil.getAllSepaCountries().contains(country)) { + countryComboBox.setItems(FXCollections.observableArrayList(CountryUtil.getAllSepaCountries(Preferences.getDefaultLocale()))); + Country country = CountryUtil.getDefaultCountry(Preferences.getDefaultLocale()); + if (CountryUtil.getAllSepaCountries(Preferences.getDefaultLocale()).contains(country)) { countryComboBox.getSelectionModel().select(country); sepaAccount.setCountry(country); - TradeCurrency currency = CurrencyUtil.getCurrencyByCountryCode(country.code); + TradeCurrency currency = CurrencyUtil.getCurrencyByCountryCode(country.code, Preferences.getDefaultLocale()); setupCurrency(country, currency); } @@ -179,7 +180,7 @@ public class SepaForm extends PaymentMethodForm { } private void setupCurrency(Country country, TradeCurrency currency) { - if (CountryUtil.getAllSepaEuroCountries().contains(country)) { + if (CountryUtil.getAllSepaEuroCountries(Preferences.getDefaultLocale()).contains(country)) { currencyTextField.setVisible(true); currencyTextField.setManaged(true); currencyComboBox.setVisible(false); @@ -215,12 +216,12 @@ public class SepaForm extends PaymentMethodForm { private void addEuroCountriesGrid(boolean isEditable) { addCountriesGrid(isEditable, Res.get("payment.accept.euro"), euroCountryCheckBoxes, - CountryUtil.getAllSepaEuroCountries()); + CountryUtil.getAllSepaEuroCountries(Preferences.getDefaultLocale())); } private void addNonEuroCountriesGrid(boolean isEditable) { addCountriesGrid(isEditable, Res.get("payment.accept.nonEuro"), nonEuroCountryCheckBoxes, - CountryUtil.getAllSepaNonEuroCountries()); + CountryUtil.getAllSepaNonEuroCountries(Preferences.getDefaultLocale())); } private void addCountriesGrid(boolean isEditable, String title, List checkBoxList, List dataProvider) { @@ -273,15 +274,15 @@ public class SepaForm extends PaymentMethodForm { String countryCode = (String) checkBox.getUserData(); TradeCurrency selectedCurrency = sepaAccount.getSelectedTradeCurrency(); if (selectedCurrency == null) { - Country country = CountryUtil.getDefaultCountry(); - if (CountryUtil.getAllSepaCountries().contains(country)) - selectedCurrency = CurrencyUtil.getCurrencyByCountryCode(country.code); + Country country = CountryUtil.getDefaultCountry(Preferences.getDefaultLocale()); + if (CountryUtil.getAllSepaCountries(Preferences.getDefaultLocale()).contains(country)) + selectedCurrency = CurrencyUtil.getCurrencyByCountryCode(country.code, Preferences.getDefaultLocale()); } boolean selected; if (isEditable && selectedCurrency != null) { - selected = CurrencyUtil.getCurrencyByCountryCode(countryCode).getCode().equals(selectedCurrency.getCode()); + selected = CurrencyUtil.getCurrencyByCountryCode(countryCode, Preferences.getDefaultLocale()).getCode().equals(selectedCurrency.getCode()); if (selected) sepaAccount.addAcceptedCountry(countryCode); @@ -341,11 +342,11 @@ public class SepaForm extends PaymentMethodForm { FormBuilder.addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared.currency"), nameAndCode); String countries; Tooltip tooltip = null; - if (CountryUtil.containsAllSepaEuroCountries(sepaAccount.getAcceptedCountryCodes())) { + if (CountryUtil.containsAllSepaEuroCountries(sepaAccount.getAcceptedCountryCodes(), Preferences.getDefaultLocale())) { countries = Res.getWithCol("shared.allEuroCountries"); } else { countries = CountryUtil.getCodesString(sepaAccount.getAcceptedCountryCodes()); - tooltip = new Tooltip(CountryUtil.getNamesByCodesString(sepaAccount.getAcceptedCountryCodes())); + tooltip = new Tooltip(CountryUtil.getNamesByCodesString(sepaAccount.getAcceptedCountryCodes(), Preferences.getDefaultLocale())); } TextField acceptedCountries = FormBuilder.addLabelTextField(gridPane, ++gridRow, Res.get("payment.accepted.countries"), countries).second; if (tooltip != null) { diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/SpecificBankForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/SpecificBankForm.java index c7a167bd6b..3879ed7996 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/SpecificBankForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/SpecificBankForm.java @@ -23,8 +23,8 @@ import io.bisq.gui.components.InputTextField; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.SpecificBanksAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.SpecificBanksAccountContractData; import io.bisq.payment.PaymentAccount; import javafx.beans.binding.Bindings; import javafx.scene.control.Button; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/SwishForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/SwishForm.java index 47e985052a..4cdda760f7 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/SwishForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/SwishForm.java @@ -23,9 +23,9 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.InputValidator; import io.bisq.gui.util.validation.SwishValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.SwishAccountContractData; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.SwishAccountContractData; import io.bisq.payment.PaymentAccount; import io.bisq.payment.SwishAccount; import javafx.scene.control.TextField; diff --git a/gui/src/main/java/io/bisq/gui/components/paymentmethods/USPostalMoneyOrderForm.java b/gui/src/main/java/io/bisq/gui/components/paymentmethods/USPostalMoneyOrderForm.java index d2cf0a6dc6..6d278f86fc 100644 --- a/gui/src/main/java/io/bisq/gui/components/paymentmethods/USPostalMoneyOrderForm.java +++ b/gui/src/main/java/io/bisq/gui/components/paymentmethods/USPostalMoneyOrderForm.java @@ -23,9 +23,9 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.InputValidator; import io.bisq.gui.util.validation.USPostalMoneyOrderValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.USPostalMoneyOrderAccountContractData; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.USPostalMoneyOrderAccountContractData; import io.bisq.payment.PaymentAccount; import io.bisq.payment.USPostalMoneyOrderAccount; import javafx.scene.control.TextArea; diff --git a/gui/src/main/java/io/bisq/gui/main/MainView.java b/gui/src/main/java/io/bisq/gui/main/MainView.java index 8231c574f8..e5666025f6 100644 --- a/gui/src/main/java/io/bisq/gui/main/MainView.java +++ b/gui/src/main/java/io/bisq/gui/main/MainView.java @@ -42,7 +42,7 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; import io.bisq.gui.util.Transitions; import io.bisq.locale.Res; -import io.bisq.messages.provider.price.PriceFeedService; +import io.bisq.provider.price.PriceFeedService; import javafx.beans.value.ChangeListener; import javafx.geometry.Insets; import javafx.geometry.Pos; diff --git a/gui/src/main/java/io/bisq/gui/main/MainViewModel.java b/gui/src/main/java/io/bisq/gui/main/MainViewModel.java index 582023c047..f6b7c2710a 100644 --- a/gui/src/main/java/io/bisq/gui/main/MainViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/MainViewModel.java @@ -33,7 +33,7 @@ import io.bisq.btc.wallet.WalletsSetup; import io.bisq.common.Clock; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.common.crypto.*; +import io.bisq.common.crypto.CryptoException; import io.bisq.crypto.EncryptionService; import io.bisq.dao.DaoManager; import io.bisq.dao.blockchain.BsqBlockchainException; @@ -47,29 +47,33 @@ import io.bisq.gui.main.overlays.windows.DisplayAlertMessageWindow; import io.bisq.gui.main.overlays.windows.TacWindow; import io.bisq.gui.main.overlays.windows.WalletPasswordWindow; import io.bisq.gui.util.BSFormatter; +import io.bisq.locale.CurrencyUtil; import io.bisq.locale.Res; -import io.bisq.messages.alert.Alert; -import io.bisq.messages.alert.PrivateNotification; -import io.bisq.messages.arbitration.Dispute; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.provider.price.MarketPrice; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.user.Preferences; -import io.bisq.p2p.P2PService; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.alert.Alert; +import io.bisq.network_messages.alert.PrivateNotification; +import io.bisq.network_messages.arbitration.Dispute; +import io.bisq.network_messages.crypto.DecryptedDataTuple; +import io.bisq.network_messages.crypto.Encryption; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.SealedAndSigned; +import io.bisq.provider.price.MarketPrice; import io.bisq.p2p.P2PServiceListener; import io.bisq.p2p.network.CloseConnectionReason; import io.bisq.p2p.network.Connection; import io.bisq.p2p.network.ConnectionListener; -import io.bisq.p2p.peers.keepalive.messages.Ping; +import io.bisq.network_messages.p2p.peers.keepalive.messages.Ping; +import io.bisq.p2p.storage.P2PService; import io.bisq.payment.CryptoCurrencyAccount; import io.bisq.payment.OKPayAccount; import io.bisq.payment.PaymentAccount; +import io.bisq.provider.fee.FeeService; +import io.bisq.provider.price.PriceFeedService; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; import io.bisq.trade.offer.OpenOffer; import io.bisq.trade.offer.OpenOfferManager; +import io.bisq.user.Preferences; import io.bisq.user.User; import javafx.beans.property.*; import javafx.beans.value.ChangeListener; @@ -994,7 +998,7 @@ public class MainViewModel implements ViewModel { OKPayAccount okPayAccount = new OKPayAccount(); okPayAccount.setAccountNr("dummy_" + new Random().nextInt(100)); okPayAccount.setAccountName("OKPay dummy");// Don't translate only for dev - okPayAccount.setSelectedTradeCurrency(CurrencyUtil.getDefaultTradeCurrency()); + okPayAccount.setSelectedTradeCurrency(Preferences.getDefaultTradeCurrency()); user.addPaymentAccount(okPayAccount); CryptoCurrencyAccount cryptoCurrencyAccount = new CryptoCurrencyAccount(); diff --git a/gui/src/main/java/io/bisq/gui/main/account/AccountView.java b/gui/src/main/java/io/bisq/gui/main/account/AccountView.java index c903bf1f9e..dbfd8b625a 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/AccountView.java +++ b/gui/src/main/java/io/bisq/gui/main/account/AccountView.java @@ -26,7 +26,7 @@ import io.bisq.gui.main.account.content.fiataccounts.FiatAccountsView; import io.bisq.gui.main.account.settings.AccountSettingsView; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javafx.beans.value.ChangeListener; import javafx.event.EventHandler; import javafx.fxml.FXML; diff --git a/gui/src/main/java/io/bisq/gui/main/account/arbitratorregistration/ArbitratorRegistrationView.java b/gui/src/main/java/io/bisq/gui/main/account/arbitratorregistration/ArbitratorRegistrationView.java index 6eb0925c14..1e64aa12f3 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/arbitratorregistration/ArbitratorRegistrationView.java +++ b/gui/src/main/java/io/bisq/gui/main/account/arbitratorregistration/ArbitratorRegistrationView.java @@ -28,8 +28,9 @@ import io.bisq.gui.util.FormBuilder; import io.bisq.gui.util.ImageUtil; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.locale.LanguageUtil; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.locale.LanguageUtil; +import io.bisq.user.Preferences; import javafx.beans.value.ChangeListener; import javafx.collections.ListChangeListener; import javafx.geometry.HPos; @@ -214,7 +215,7 @@ public class ArbitratorRegistrationView extends ActivatableViewAndModel myArbitratorProperty = new SimpleObjectProperty<>(); - final ObservableList languageCodes = FXCollections.observableArrayList(LanguageUtil.getDefaultLanguageLocaleAsCode()); + final ObservableList languageCodes = FXCollections.observableArrayList(LanguageUtil.getDefaultLanguageLocaleAsCode(Preferences.getDefaultLocale())); final ObservableList allLanguageCodes = FXCollections.observableArrayList(LanguageUtil.getAllLanguageCodes()); private boolean allDataValid; private final MapChangeListener arbitratorMapChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/altcoinaccounts/AltCoinAccountsDataModel.java b/gui/src/main/java/io/bisq/gui/main/account/content/altcoinaccounts/AltCoinAccountsDataModel.java index b8993cf4c4..067aee2e1b 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/altcoinaccounts/AltCoinAccountsDataModel.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/altcoinaccounts/AltCoinAccountsDataModel.java @@ -20,11 +20,11 @@ package io.bisq.gui.main.account.content.altcoinaccounts; import com.google.inject.Inject; import io.bisq.gui.common.model.ActivatableDataModel; import io.bisq.gui.util.GUIUtil; -import io.bisq.messages.locale.CryptoCurrency; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.CryptoCurrency; +import io.bisq.locale.FiatCurrency; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.user.Preferences; import io.bisq.payment.CryptoCurrencyAccount; import io.bisq.payment.PaymentAccount; import io.bisq.trade.TradeManager; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/altcoinaccounts/AltCoinAccountsView.java b/gui/src/main/java/io/bisq/gui/main/account/content/altcoinaccounts/AltCoinAccountsView.java index 2e2eaf54aa..3a651f795b 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/altcoinaccounts/AltCoinAccountsView.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/altcoinaccounts/AltCoinAccountsView.java @@ -33,9 +33,9 @@ import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.AltCoinAddressValidator; import io.bisq.gui.util.validation.InputValidator; import io.bisq.locale.Res; -import io.bisq.messages.locale.CryptoCurrency; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.PaymentMethod; +import io.bisq.locale.CryptoCurrency; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.PaymentMethod; import io.bisq.payment.PaymentAccount; import io.bisq.payment.PaymentAccountFactory; import javafx.beans.value.ChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorListItem.java b/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorListItem.java index 09391ef4f6..41a150e652 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorListItem.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorListItem.java @@ -18,7 +18,7 @@ package io.bisq.gui.main.account.content.arbitratorselection; import io.bisq.gui.util.BSFormatter; -import io.bisq.messages.arbitration.Arbitrator; +import io.bisq.network_messages.arbitration.Arbitrator; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorSelectionView.java b/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorSelectionView.java index b70545eff3..9f12b2d5c8 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorSelectionView.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorSelectionView.java @@ -26,7 +26,7 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.ImageUtil; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.locale.LanguageUtil; +import io.bisq.locale.LanguageUtil; import javafx.beans.property.BooleanProperty; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.value.ChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorSelectionViewModel.java b/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorSelectionViewModel.java index 829be3c77f..5368a34020 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorSelectionViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/arbitratorselection/ArbitratorSelectionViewModel.java @@ -19,13 +19,13 @@ package io.bisq.gui.main.account.content.arbitratorselection; import com.google.inject.Inject; import io.bisq.arbitration.ArbitratorManager; -import io.bisq.common.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.gui.common.model.ActivatableDataModel; import io.bisq.gui.util.BSFormatter; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.locale.LanguageUtil; -import io.bisq.messages.user.Preferences; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.locale.LanguageUtil; +import io.bisq.user.Preferences; +import io.bisq.network_messages.NodeAddress; import io.bisq.user.User; import javafx.collections.FXCollections; import javafx.collections.MapChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/backup/BackupView.java b/gui/src/main/java/io/bisq/gui/main/account/content/backup/BackupView.java index ee0787e5ef..90776ac937 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/backup/BackupView.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/backup/BackupView.java @@ -28,7 +28,7 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.FormBuilder; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javafx.beans.value.ChangeListener; import javafx.scene.control.Button; import javafx.scene.control.Label; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/fiataccounts/FiatAccountsDataModel.java b/gui/src/main/java/io/bisq/gui/main/account/content/fiataccounts/FiatAccountsDataModel.java index 6312dfc333..4b457e961c 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/fiataccounts/FiatAccountsDataModel.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/fiataccounts/FiatAccountsDataModel.java @@ -20,11 +20,11 @@ package io.bisq.gui.main.account.content.fiataccounts; import com.google.inject.Inject; import io.bisq.gui.common.model.ActivatableDataModel; import io.bisq.gui.util.GUIUtil; -import io.bisq.messages.locale.CryptoCurrency; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.CryptoCurrency; +import io.bisq.locale.FiatCurrency; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.user.Preferences; import io.bisq.payment.CryptoCurrencyAccount; import io.bisq.payment.PaymentAccount; import io.bisq.trade.TradeManager; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/fiataccounts/FiatAccountsView.java b/gui/src/main/java/io/bisq/gui/main/account/content/fiataccounts/FiatAccountsView.java index 95f6f60d68..b62344123a 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/fiataccounts/FiatAccountsView.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/fiataccounts/FiatAccountsView.java @@ -31,7 +31,7 @@ import io.bisq.gui.util.ImageUtil; import io.bisq.gui.util.Layout; import io.bisq.gui.util.validation.*; import io.bisq.locale.Res; -import io.bisq.messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.PaymentMethod; import io.bisq.payment.PaymentAccount; import io.bisq.payment.PaymentAccountFactory; import javafx.beans.value.ChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/account/content/seedwords/SeedWordsView.java b/gui/src/main/java/io/bisq/gui/main/account/content/seedwords/SeedWordsView.java index 1f9abfdf30..152082e597 100644 --- a/gui/src/main/java/io/bisq/gui/main/account/content/seedwords/SeedWordsView.java +++ b/gui/src/main/java/io/bisq/gui/main/account/content/seedwords/SeedWordsView.java @@ -28,7 +28,7 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.main.overlays.windows.WalletPasswordWindow; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.value.ChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/dao/DaoView.java b/gui/src/main/java/io/bisq/gui/main/dao/DaoView.java index dea216641d..f342f78eb5 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/DaoView.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/DaoView.java @@ -27,7 +27,7 @@ import io.bisq.gui.main.dao.voting.VotingView; import io.bisq.gui.main.dao.wallet.BsqWalletView; import io.bisq.gui.main.dao.wallet.dashboard.BsqDashboardView; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javafx.beans.value.ChangeListener; import javafx.fxml.FXML; import javafx.scene.control.Tab; diff --git a/gui/src/main/java/io/bisq/gui/main/dao/compensation/CompensationRequestDisplay.java b/gui/src/main/java/io/bisq/gui/main/dao/compensation/CompensationRequestDisplay.java index 046df90826..ee352a0185 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/compensation/CompensationRequestDisplay.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/compensation/CompensationRequestDisplay.java @@ -20,7 +20,7 @@ package io.bisq.gui.main.dao.compensation; import io.bisq.gui.components.InputTextField; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.dao.compensation.payload.CompensationRequestPayload; +import io.bisq.network_messages.dao.compensation.payload.CompensationRequestPayload; import javafx.scene.layout.GridPane; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/gui/src/main/java/io/bisq/gui/main/dao/compensation/active/FundCompensationRequestWindow.java b/gui/src/main/java/io/bisq/gui/main/dao/compensation/active/FundCompensationRequestWindow.java index ce30137cb6..afaac0e1c4 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/compensation/active/FundCompensationRequestWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/compensation/active/FundCompensationRequestWindow.java @@ -20,7 +20,7 @@ package io.bisq.gui.main.dao.compensation.active; import io.bisq.gui.components.InputTextField; import io.bisq.gui.main.overlays.Overlay; import io.bisq.locale.Res; -import io.bisq.messages.dao.compensation.payload.CompensationRequestPayload; +import io.bisq.network_messages.dao.compensation.payload.CompensationRequestPayload; import javafx.scene.Scene; import javafx.scene.control.TextField; import javafx.scene.input.KeyCode; diff --git a/gui/src/main/java/io/bisq/gui/main/dao/compensation/create/CreateCompensationRequestView.java b/gui/src/main/java/io/bisq/gui/main/dao/compensation/create/CreateCompensationRequestView.java index 8330580364..ab14081adb 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/compensation/create/CreateCompensationRequestView.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/compensation/create/CreateCompensationRequestView.java @@ -25,7 +25,7 @@ import io.bisq.btc.exceptions.WalletException; import io.bisq.btc.wallet.BsqWalletService; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.ChangeBelowDustException; -import io.bisq.common.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.common.util.Utilities; import io.bisq.dao.compensation.CompensationRequestManager; import io.bisq.gui.common.view.ActivatableView; @@ -34,10 +34,10 @@ import io.bisq.gui.main.dao.compensation.CompensationRequestDisplay; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.BSFormatter; import io.bisq.locale.Res; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.dao.compensation.payload.CompensationRequestPayload; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.provider.fee.FeeService; +import io.bisq.network_messages.dao.compensation.payload.CompensationRequestPayload; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.storage.P2PService; import javafx.scene.control.Button; import javafx.scene.layout.GridPane; import org.apache.commons.lang3.StringUtils; diff --git a/gui/src/main/java/io/bisq/gui/main/dao/voting/vote/CompensationViewItem.java b/gui/src/main/java/io/bisq/gui/main/dao/voting/vote/CompensationViewItem.java index acf78e5ad3..101ff268f1 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/voting/vote/CompensationViewItem.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/voting/vote/CompensationViewItem.java @@ -25,7 +25,7 @@ import io.bisq.gui.main.MainView; import io.bisq.gui.main.dao.compensation.CompensationRequestDisplay; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.dao.compensation.payload.CompensationRequestPayload; +import io.bisq.network_messages.dao.compensation.payload.CompensationRequestPayload; import javafx.beans.property.DoubleProperty; import javafx.geometry.HPos; import javafx.geometry.Insets; diff --git a/gui/src/main/java/io/bisq/gui/main/dao/voting/vote/VoteView.java b/gui/src/main/java/io/bisq/gui/main/dao/voting/vote/VoteView.java index 9c723cd115..77856eb588 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/voting/vote/VoteView.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/voting/vote/VoteView.java @@ -37,7 +37,7 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.BsqFormatter; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.btc.provider.fee.FeeService; +import io.bisq.provider.fee.FeeService; import javafx.beans.property.DoubleProperty; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.value.ChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/dao/wallet/send/BsqSendView.java b/gui/src/main/java/io/bisq/gui/main/dao/wallet/send/BsqSendView.java index 922a235b1a..16a86f3b4d 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/wallet/send/BsqSendView.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/wallet/send/BsqSendView.java @@ -34,7 +34,7 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.BsqFormatter; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.btc.provider.fee.FeeService; +import io.bisq.provider.fee.FeeService; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; diff --git a/gui/src/main/java/io/bisq/gui/main/debug/DebugView.java b/gui/src/main/java/io/bisq/gui/main/debug/DebugView.java index a111922975..2f7796b2e0 100644 --- a/gui/src/main/java/io/bisq/gui/main/debug/DebugView.java +++ b/gui/src/main/java/io/bisq/gui/main/debug/DebugView.java @@ -21,9 +21,9 @@ import io.bisq.common.taskrunner.Task; import io.bisq.gui.common.view.FxmlView; import io.bisq.gui.common.view.InitializableView; import io.bisq.gui.components.TitledGroupBg; -import io.bisq.messages.protocol.availability.OfferAvailabilityProtocol; -import io.bisq.messages.protocol.availability.tasks.ProcessOfferAvailabilityResponse; -import io.bisq.messages.protocol.availability.tasks.SendOfferAvailabilityRequest; +import io.bisq.p2p.protocol.availability.OfferAvailabilityProtocol; +import io.bisq.protocol.availability.tasks.ProcessOfferAvailabilityResponse; +import io.bisq.protocol.availability.tasks.SendOfferAvailabilityRequest; import io.bisq.trade.protocol.placeoffer.PlaceOfferProtocol; import io.bisq.trade.protocol.placeoffer.tasks.AddOfferToRemoteOfferBook; import io.bisq.trade.protocol.placeoffer.tasks.BroadcastCreateOfferFeeTx; diff --git a/gui/src/main/java/io/bisq/gui/main/disputes/DisputesView.java b/gui/src/main/java/io/bisq/gui/main/disputes/DisputesView.java index 4550ab0269..ac4e7d29c9 100644 --- a/gui/src/main/java/io/bisq/gui/main/disputes/DisputesView.java +++ b/gui/src/main/java/io/bisq/gui/main/disputes/DisputesView.java @@ -20,7 +20,7 @@ package io.bisq.gui.main.disputes; import io.bisq.app.DevEnv; import io.bisq.arbitration.ArbitratorManager; import io.bisq.arbitration.DisputeManager; -import io.bisq.common.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.gui.Navigation; import io.bisq.gui.common.model.Activatable; import io.bisq.gui.common.view.*; @@ -31,9 +31,9 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.main.portfolio.PortfolioView; import io.bisq.gui.main.portfolio.pendingtrades.PendingTradesView; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.user.Preferences; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.user.Preferences; +import io.bisq.network_messages.NodeAddress; import javafx.beans.value.ChangeListener; import javafx.collections.MapChangeListener; import javafx.fxml.FXML; diff --git a/gui/src/main/java/io/bisq/gui/main/disputes/arbitrator/ArbitratorDisputeView.java b/gui/src/main/java/io/bisq/gui/main/disputes/arbitrator/ArbitratorDisputeView.java index 903522d60d..7a61ba055c 100644 --- a/gui/src/main/java/io/bisq/gui/main/disputes/arbitrator/ArbitratorDisputeView.java +++ b/gui/src/main/java/io/bisq/gui/main/disputes/arbitrator/ArbitratorDisputeView.java @@ -19,14 +19,14 @@ package io.bisq.gui.main.disputes.arbitrator; import io.bisq.alert.PrivateNotificationManager; import io.bisq.arbitration.DisputeManager; -import io.bisq.common.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.gui.common.view.FxmlView; import io.bisq.gui.main.disputes.trader.TraderDisputeView; import io.bisq.gui.main.overlays.windows.ContractWindow; import io.bisq.gui.main.overlays.windows.DisputeSummaryWindow; import io.bisq.gui.main.overlays.windows.TradeDetailsWindow; import io.bisq.gui.util.BSFormatter; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.storage.P2PService; import io.bisq.trade.TradeManager; import javafx.stage.Stage; diff --git a/gui/src/main/java/io/bisq/gui/main/disputes/trader/TraderDisputeView.java b/gui/src/main/java/io/bisq/gui/main/disputes/trader/TraderDisputeView.java index 6d50874566..e30c60784e 100644 --- a/gui/src/main/java/io/bisq/gui/main/disputes/trader/TraderDisputeView.java +++ b/gui/src/main/java/io/bisq/gui/main/disputes/trader/TraderDisputeView.java @@ -26,8 +26,8 @@ import io.bisq.app.Version; import io.bisq.arbitration.DisputeManager; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.PubKeyRing; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; import io.bisq.common.util.Utilities; import io.bisq.gui.common.view.ActivatableView; import io.bisq.gui.common.view.FxmlView; @@ -44,12 +44,12 @@ import io.bisq.gui.main.overlays.windows.TradeDetailsWindow; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Dispute; -import io.bisq.messages.arbitration.DisputeCommunicationMessage; -import io.bisq.messages.arbitration.payload.Attachment; -import io.bisq.messages.trade.payload.Contract; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.arbitration.Dispute; +import io.bisq.network_messages.arbitration.DisputeCommunicationMessage; +import io.bisq.network_messages.arbitration.payload.Attachment; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.network_messages.NodeAddress; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.network.Connection; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; diff --git a/gui/src/main/java/io/bisq/gui/main/funds/deposit/DepositView.java b/gui/src/main/java/io/bisq/gui/main/funds/deposit/DepositView.java index b68eeafc99..0e180e153e 100644 --- a/gui/src/main/java/io/bisq/gui/main/funds/deposit/DepositView.java +++ b/gui/src/main/java/io/bisq/gui/main/funds/deposit/DepositView.java @@ -36,8 +36,8 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.user.Preferences; +import io.bisq.provider.fee.FeeService; +import io.bisq.user.Preferences; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.value.ChangeListener; import javafx.collections.FXCollections; diff --git a/gui/src/main/java/io/bisq/gui/main/funds/locked/LockedView.java b/gui/src/main/java/io/bisq/gui/main/funds/locked/LockedView.java index 6405462b73..b67127d0a8 100644 --- a/gui/src/main/java/io/bisq/gui/main/funds/locked/LockedView.java +++ b/gui/src/main/java/io/bisq/gui/main/funds/locked/LockedView.java @@ -29,7 +29,7 @@ import io.bisq.gui.main.overlays.windows.TradeDetailsWindow; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.trade.Tradable; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; diff --git a/gui/src/main/java/io/bisq/gui/main/funds/reserved/ReservedView.java b/gui/src/main/java/io/bisq/gui/main/funds/reserved/ReservedView.java index 1feaa78f1f..b6864932cf 100644 --- a/gui/src/main/java/io/bisq/gui/main/funds/reserved/ReservedView.java +++ b/gui/src/main/java/io/bisq/gui/main/funds/reserved/ReservedView.java @@ -29,7 +29,7 @@ import io.bisq.gui.main.overlays.windows.TradeDetailsWindow; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.trade.Tradable; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; diff --git a/gui/src/main/java/io/bisq/gui/main/funds/transactions/TransactionsListItem.java b/gui/src/main/java/io/bisq/gui/main/funds/transactions/TransactionsListItem.java index 3987b80bb8..c7790e8e01 100644 --- a/gui/src/main/java/io/bisq/gui/main/funds/transactions/TransactionsListItem.java +++ b/gui/src/main/java/io/bisq/gui/main/funds/transactions/TransactionsListItem.java @@ -23,7 +23,7 @@ import io.bisq.gui.components.indicator.TxConfidenceIndicator; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.trade.Tradable; import io.bisq.trade.Trade; import io.bisq.trade.offer.OpenOffer; diff --git a/gui/src/main/java/io/bisq/gui/main/funds/transactions/TransactionsView.java b/gui/src/main/java/io/bisq/gui/main/funds/transactions/TransactionsView.java index a9b7a8f55a..98416e1b33 100644 --- a/gui/src/main/java/io/bisq/gui/main/funds/transactions/TransactionsView.java +++ b/gui/src/main/java/io/bisq/gui/main/funds/transactions/TransactionsView.java @@ -34,7 +34,7 @@ import io.bisq.gui.main.overlays.windows.TradeDetailsWindow; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.trade.Tradable; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; diff --git a/gui/src/main/java/io/bisq/gui/main/funds/withdrawal/WithdrawalView.java b/gui/src/main/java/io/bisq/gui/main/funds/withdrawal/WithdrawalView.java index a195108c0d..d8aa6a7475 100644 --- a/gui/src/main/java/io/bisq/gui/main/funds/withdrawal/WithdrawalView.java +++ b/gui/src/main/java/io/bisq/gui/main/funds/withdrawal/WithdrawalView.java @@ -36,8 +36,8 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; import io.bisq.gui.util.validation.BtcAddressValidator; import io.bisq.locale.Res; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.user.Preferences; +import io.bisq.provider.fee.FeeService; +import io.bisq.user.Preferences; import io.bisq.trade.Tradable; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; diff --git a/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferBookChartView.java b/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferBookChartView.java index 3cd9d95371..bffec313d9 100644 --- a/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferBookChartView.java +++ b/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferBookChartView.java @@ -30,8 +30,9 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.CurrencyListItem; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; @@ -120,8 +121,8 @@ public class OfferBookChartView extends ActivatableViewAndModel, VBox, Button, Label> tupleBuy = getOfferTable(Offer.Direction.BUY); - Tuple4, VBox, Button, Label> tupleSell = getOfferTable(Offer.Direction.SELL); + Tuple4, VBox, Button, Label> tupleBuy = getOfferTable(OfferPayload.Direction.BUY); + Tuple4, VBox, Button, Label> tupleSell = getOfferTable(OfferPayload.Direction.SELL); buyOfferTableView = tupleBuy.first; sellOfferTableView = tupleSell.first; @@ -136,8 +137,8 @@ public class OfferBookChartView extends ActivatableViewAndModel, VBox, Button, Label> getOfferTable(Offer.Direction direction) { + private Tuple4, VBox, Button, Label> getOfferTable(OfferPayload.Direction direction) { TableView tableView = new TableView<>(); tableView.setMinHeight(109); tableView.setPrefHeight(121); @@ -427,7 +428,7 @@ public class OfferBookChartView extends ActivatableViewAndModel titleLabel.prefWidthProperty().bind(tableView.widthProperty())); - boolean isSellOffer = direction == Offer.Direction.SELL; + boolean isSellOffer = direction == OfferPayload.Direction.SELL; Button button = new Button(); ImageView iconView = new ImageView(); iconView.setId(isSellOffer ? "image-buy-white" : "image-sell-white"); diff --git a/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferBookChartViewModel.java b/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferBookChartViewModel.java index 4f6c6f5345..2cd80c8540 100644 --- a/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferBookChartViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferBookChartViewModel.java @@ -28,11 +28,12 @@ import io.bisq.gui.main.settings.SettingsView; import io.bisq.gui.main.settings.preferences.PreferencesView; import io.bisq.gui.util.CurrencyListItem; import io.bisq.gui.util.GUIUtil; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.provider.price.PriceFeedService; +import io.bisq.user.Preferences; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.value.ChangeListener; @@ -88,7 +89,7 @@ class OfferBookChartViewModel extends ActivatableViewModel { if (tradeCurrencyOptional.isPresent()) selectedTradeCurrencyProperty.set(tradeCurrencyOptional.get()); else { - selectedTradeCurrencyProperty.set(CurrencyUtil.getDefaultTradeCurrency()); + selectedTradeCurrencyProperty.set(Preferences.getDefaultTradeCurrency()); } offerBookListItems = offerBook.getOfferBookListItems(); @@ -99,7 +100,7 @@ class OfferBookChartViewModel extends ActivatableViewModel { list.addAll(c.getAddedSubList()); if (list.stream() .map(OfferBookListItem::getOffer) - .filter(e -> e.getCurrencyCode().equals(selectedTradeCurrencyProperty.get().getCode())) + .filter(e -> e.getOfferPayload().getCurrencyCode().equals(selectedTradeCurrencyProperty.get().getCode())) .findAny() .isPresent()) updateChartData(); @@ -124,7 +125,8 @@ class OfferBookChartViewModel extends ActivatableViewModel { // Don't use a set as we need all entries List tradeCurrencyList = offerBookListItems.stream() .map(e -> { - Optional tradeCurrencyOptional = CurrencyUtil.getTradeCurrency(e.getOffer().getCurrencyCode()); + Optional tradeCurrencyOptional = + CurrencyUtil.getTradeCurrency(e.getOffer().getCurrencyCode()); if (tradeCurrencyOptional.isPresent()) return tradeCurrencyOptional.get(); else @@ -239,8 +241,8 @@ class OfferBookChartViewModel extends ActivatableViewModel { private void updateChartData() { List allBuyOffers = offerBookListItems.stream() .map(OfferBookListItem::getOffer) - .filter(e -> e.getCurrencyCode().equals(selectedTradeCurrencyProperty.get().getCode()) - && e.getDirection().equals(Offer.Direction.BUY)) + .filter(e -> e.getOfferPayload().getCurrencyCode().equals(selectedTradeCurrencyProperty.get().getCode()) + && e.getOfferPayload().getDirection().equals(OfferPayload.Direction.BUY)) .sorted((o1, o2) -> { long a = o1.getPrice() != null ? o1.getPrice().value : 0; long b = o2.getPrice() != null ? o2.getPrice().value : 0; @@ -251,12 +253,12 @@ class OfferBookChartViewModel extends ActivatableViewModel { .collect(Collectors.toList()); allBuyOffers = filterOffersWithRelevantPrices(allBuyOffers); - buildChartAndTableEntries(allBuyOffers, Offer.Direction.BUY, buyData, topBuyOfferList); + buildChartAndTableEntries(allBuyOffers, OfferPayload.Direction.BUY, buyData, topBuyOfferList); List allSellOffers = offerBookListItems.stream() .map(OfferBookListItem::getOffer) - .filter(e -> e.getCurrencyCode().equals(selectedTradeCurrencyProperty.get().getCode()) - && e.getDirection().equals(Offer.Direction.SELL)) + .filter(e -> e.getOfferPayload().getCurrencyCode().equals(selectedTradeCurrencyProperty.get().getCode()) + && e.getOfferPayload().getDirection().equals(OfferPayload.Direction.SELL)) .sorted((o1, o2) -> { long a = o1.getPrice() != null ? o1.getPrice().value : 0; long b = o2.getPrice() != null ? o2.getPrice().value : 0; @@ -267,7 +269,7 @@ class OfferBookChartViewModel extends ActivatableViewModel { .collect(Collectors.toList()); allSellOffers = filterOffersWithRelevantPrices(allSellOffers); - buildChartAndTableEntries(allSellOffers, Offer.Direction.SELL, sellData, topSellOfferList); + buildChartAndTableEntries(allSellOffers, OfferPayload.Direction.SELL, sellData, topSellOfferList); } // If there are more then 3 offers we ignore the offers which are further than 30% from the best price @@ -290,7 +292,7 @@ class OfferBookChartViewModel extends ActivatableViewModel { return offers; } - private void buildChartAndTableEntries(List sortedList, Offer.Direction direction, List data, ObservableList offerTableList) { + private void buildChartAndTableEntries(List sortedList, OfferPayload.Direction direction, List data, ObservableList offerTableList) { data.clear(); double accumulatedAmount = 0; List offerTableListTemp = new ArrayList<>(); @@ -304,12 +306,12 @@ class OfferBookChartViewModel extends ActivatableViewModel { double price = (double) priceAsFiat.value / LongMath.pow(10, priceAsFiat.smallestUnitExponent()); if (CurrencyUtil.isCryptoCurrency(getCurrencyCode())) { price = price != 0 ? 1d / price : 0; - if (direction.equals(Offer.Direction.SELL)) + if (direction.equals(OfferPayload.Direction.SELL)) data.add(0, new XYChart.Data<>(price, accumulatedAmount)); else data.add(new XYChart.Data<>(price, accumulatedAmount)); } else { - if (direction.equals(Offer.Direction.BUY)) + if (direction.equals(OfferPayload.Direction.BUY)) data.add(0, new XYChart.Data<>(price, accumulatedAmount)); else data.add(new XYChart.Data<>(price, accumulatedAmount)); diff --git a/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferListItem.java b/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferListItem.java index 60f5f7681b..bce34bcd56 100644 --- a/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferListItem.java +++ b/gui/src/main/java/io/bisq/gui/main/market/offerbook/OfferListItem.java @@ -17,7 +17,7 @@ package io.bisq.gui.main.market.offerbook; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.p2p.protocol.availability.Offer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/gui/src/main/java/io/bisq/gui/main/market/spread/SpreadView.java b/gui/src/main/java/io/bisq/gui/main/market/spread/SpreadView.java index 4414c53d0d..8a41367a0f 100644 --- a/gui/src/main/java/io/bisq/gui/main/market/spread/SpreadView.java +++ b/gui/src/main/java/io/bisq/gui/main/market/spread/SpreadView.java @@ -21,7 +21,7 @@ import io.bisq.gui.common.view.ActivatableViewAndModel; import io.bisq.gui.common.view.FxmlView; import io.bisq.gui.util.BSFormatter; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; +import io.bisq.locale.CurrencyUtil; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.collections.ListChangeListener; import javafx.collections.transformation.SortedList; diff --git a/gui/src/main/java/io/bisq/gui/main/market/spread/SpreadViewModel.java b/gui/src/main/java/io/bisq/gui/main/market/spread/SpreadViewModel.java index e4c819747b..550438d138 100644 --- a/gui/src/main/java/io/bisq/gui/main/market/spread/SpreadViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/market/spread/SpreadViewModel.java @@ -22,10 +22,11 @@ import io.bisq.gui.common.model.ActivatableViewModel; import io.bisq.gui.main.offer.offerbook.OfferBook; import io.bisq.gui.main.offer.offerbook.OfferBookListItem; import io.bisq.gui.util.BSFormatter; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.provider.price.MarketPrice; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.provider.price.MarketPrice; +import io.bisq.provider.price.PriceFeedService; import javafx.collections.FXCollections; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; @@ -88,7 +89,7 @@ class SpreadViewModel extends ActivatableViewModel { List offers = offersByCurrencyMap.get(currencyCode); List buyOffers = offers .stream() - .filter(e -> e.getDirection().equals(Offer.Direction.BUY)) + .filter(e -> e.getDirection().equals(OfferPayload.Direction.BUY)) .sorted((o1, o2) -> { long a = o1.getPrice() != null ? o1.getPrice().value : 0; long b = o2.getPrice() != null ? o2.getPrice().value : 0; @@ -100,7 +101,7 @@ class SpreadViewModel extends ActivatableViewModel { List sellOffers = offers .stream() - .filter(e -> e.getDirection().equals(Offer.Direction.SELL)) + .filter(e -> e.getDirection().equals(OfferPayload.Direction.SELL)) .sorted((o1, o2) -> { long a = o1.getPrice() != null ? o1.getPrice().value : 0; long b = o2.getPrice() != null ? o2.getPrice().value : 0; diff --git a/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsView.java b/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsView.java index 83d890f4c0..6652e7fc1b 100644 --- a/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsView.java +++ b/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsView.java @@ -27,8 +27,8 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.CurrencyListItem; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; diff --git a/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsViewModel.java b/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsViewModel.java index 6755d5ebb8..bf69dba923 100644 --- a/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsViewModel.java @@ -29,12 +29,12 @@ import io.bisq.gui.main.settings.preferences.PreferencesView; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.CurrencyListItem; import io.bisq.gui.util.GUIUtil; -import io.bisq.messages.locale.CryptoCurrency; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.CryptoCurrency; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.TradeCurrency; +import io.bisq.provider.price.PriceFeedService; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; +import io.bisq.user.Preferences; import io.bisq.trade.statistics.TradeStatisticsManager; import javafx.beans.property.BooleanProperty; import javafx.beans.property.ObjectProperty; @@ -113,7 +113,7 @@ class TradesChartsViewModel extends ActivatableViewModel { if (tradeCurrencyOptional.isPresent()) selectedTradeCurrencyProperty.set(tradeCurrencyOptional.get()); else - selectedTradeCurrencyProperty.set(CurrencyUtil.getDefaultTradeCurrency()); + selectedTradeCurrencyProperty.set(Preferences.getDefaultTradeCurrency()); tickUnit = TickUnit.values()[preferences.getTradeStatisticsTickUnitIndex()]; } @@ -180,7 +180,7 @@ class TradesChartsViewModel extends ActivatableViewModel { if (!preferences.getUseStickyMarketPrice()) { if (showAllEntry) - priceFeedService.setCurrencyCode(CurrencyUtil.getDefaultTradeCurrency().getCode()); + priceFeedService.setCurrencyCode(Preferences.getDefaultTradeCurrency().getCode()); else priceFeedService.setCurrencyCode(code); } @@ -225,7 +225,7 @@ class TradesChartsViewModel extends ActivatableViewModel { private void setMarketPriceFeedCurrency() { if (!preferences.getUseStickyMarketPrice() && selectedTabIndex == TAB_INDEX) { if (showAllTradeCurrenciesProperty.get()) - priceFeedService.setCurrencyCode(CurrencyUtil.getDefaultTradeCurrency().getCode()); + priceFeedService.setCurrencyCode(Preferences.getDefaultTradeCurrency().getCode()); else priceFeedService.setCurrencyCode(getCurrencyCode()); } diff --git a/gui/src/main/java/io/bisq/gui/main/offer/BuyOfferView.java b/gui/src/main/java/io/bisq/gui/main/offer/BuyOfferView.java index 0d01ddff0e..193d9d92ed 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/BuyOfferView.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/BuyOfferView.java @@ -20,7 +20,7 @@ package io.bisq.gui.main.offer; import io.bisq.gui.Navigation; import io.bisq.gui.common.view.FxmlView; import io.bisq.gui.common.view.ViewLoader; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javax.inject.Inject; diff --git a/gui/src/main/java/io/bisq/gui/main/offer/OfferView.java b/gui/src/main/java/io/bisq/gui/main/offer/OfferView.java index d9bc72eea8..068de7576c 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/OfferView.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/OfferView.java @@ -27,11 +27,12 @@ import io.bisq.gui.main.MainView; import io.bisq.gui.main.offer.createoffer.CreateOfferView; import io.bisq.gui.main.offer.offerbook.OfferBookView; import io.bisq.gui.main.offer.takeoffer.TakeOfferView; +import io.bisq.locale.CurrencyUtil; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.user.Preferences; import javafx.beans.value.ChangeListener; import javafx.collections.ListChangeListener; import javafx.scene.control.Tab; @@ -53,7 +54,7 @@ public abstract class OfferView extends ActivatableView { private final ViewLoader viewLoader; private final Navigation navigation; private final Preferences preferences; - private final Offer.Direction direction; + private final OfferPayload.Direction direction; private Offer offer; private TradeCurrency tradeCurrency; @@ -66,7 +67,7 @@ public abstract class OfferView extends ActivatableView { this.viewLoader = viewLoader; this.navigation = navigation; this.preferences = preferences; - this.direction = (this instanceof BuyOfferView) ? Offer.Direction.BUY : Offer.Direction.SELL; + this.direction = (this instanceof BuyOfferView) ? OfferPayload.Direction.BUY : OfferPayload.Direction.SELL; } @Override @@ -116,7 +117,7 @@ public abstract class OfferView extends ActivatableView { if (tradeCurrencyOptional.isPresent()) tradeCurrency = tradeCurrencyOptional.get(); else { - tradeCurrency = CurrencyUtil.getDefaultTradeCurrency(); + tradeCurrency = Preferences.getDefaultTradeCurrency(); } root.getSelectionModel().selectedItemProperty().addListener(tabChangeListener); @@ -143,7 +144,7 @@ public abstract class OfferView extends ActivatableView { private void loadView(Class viewClass) { TabPane tabPane = root; View view; - boolean isBuy = direction == Offer.Direction.BUY; + boolean isBuy = direction == OfferPayload.Direction.BUY; if (viewClass == OfferBookView.class && offerBookView == null) { view = viewLoader.load(viewClass); diff --git a/gui/src/main/java/io/bisq/gui/main/offer/SellOfferView.java b/gui/src/main/java/io/bisq/gui/main/offer/SellOfferView.java index a42822a1c1..621fbe7990 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/SellOfferView.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/SellOfferView.java @@ -20,7 +20,7 @@ package io.bisq.gui.main.offer; import io.bisq.gui.Navigation; import io.bisq.gui.common.view.FxmlView; import io.bisq.gui.common.view.ViewLoader; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javax.inject.Inject; diff --git a/gui/src/main/java/io/bisq/gui/main/offer/createoffer/CreateOfferDataModel.java b/gui/src/main/java/io/bisq/gui/main/offer/createoffer/CreateOfferDataModel.java index 498d72a1e4..2ae7268384 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/createoffer/CreateOfferDataModel.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/createoffer/CreateOfferDataModel.java @@ -17,33 +17,35 @@ package io.bisq.gui.main.offer.createoffer; +import com.google.common.collect.Lists; import com.google.inject.Inject; import io.bisq.app.DevEnv; import io.bisq.app.Version; import io.bisq.btc.AddressEntry; import io.bisq.btc.listeners.BalanceListener; import io.bisq.btc.wallet.BtcWalletService; -import io.bisq.common.crypto.KeyRing; import io.bisq.common.util.Utilities; import io.bisq.gui.common.model.ActivatableDataModel; import io.bisq.gui.main.offer.createoffer.monetary.Price; import io.bisq.gui.main.offer.createoffer.monetary.Volume; import io.bisq.gui.main.overlays.notifications.Notification; import io.bisq.gui.util.BSFormatter; +import io.bisq.locale.CurrencyUtil; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.btc.Restrictions; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.payment.payload.BankAccountContractData; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; -import io.bisq.p2p.P2PService; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.network_messages.btc.Restrictions; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.payment.payload.BankAccountContractData; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.p2p.storage.P2PService; import io.bisq.payment.*; +import io.bisq.provider.fee.FeeService; +import io.bisq.provider.price.PriceFeedService; import io.bisq.trade.handlers.TransactionResultHandler; import io.bisq.trade.offer.OpenOfferManager; +import io.bisq.user.Preferences; import io.bisq.user.User; import javafx.beans.property.*; import javafx.collections.FXCollections; @@ -81,7 +83,7 @@ class CreateOfferDataModel extends ActivatableDataModel { private final BalanceListener balanceListener; private final SetChangeListener paymentAccountsChangeListener; - private Offer.Direction direction; + private OfferPayload.Direction direction; private TradeCurrency tradeCurrency; @@ -216,7 +218,7 @@ class CreateOfferDataModel extends ActivatableDataModel { /////////////////////////////////////////////////////////////////////////////////////////// // called before activate() - boolean initWithData(Offer.Direction direction, TradeCurrency tradeCurrency) { + boolean initWithData(OfferPayload.Direction direction, TradeCurrency tradeCurrency) { this.direction = direction; fillPaymentAccounts(); @@ -277,7 +279,7 @@ class CreateOfferDataModel extends ActivatableDataModel { Offer createAndGetOffer() { long priceAsLong = price.get() != null && !useMarketBasedPrice.get() ? price.get().getValue() : 0L; - // We use precision 8 in AltcoinPrice but in Offer we use Fiat with precision 4. Will be refactored once in a bigger update.... + // We use precision 8 in AltcoinPrice but in OfferPayload we use Fiat with precision 4. Will be refactored once in a bigger update.... // TODO use same precision for both in next release if (CurrencyUtil.isCryptoCurrency(tradeCurrencyCode.get())) priceAsLong = priceAsLong / 10000; @@ -328,7 +330,7 @@ class CreateOfferDataModel extends ActivatableDataModel { Restrictions.MAX_SECURITY_DEPOSIT.toFriendlyString()); checkArgument(securityDepositAsCoin.compareTo(Restrictions.MIN_SECURITY_DEPOSIT) >= 0, "securityDeposit must be not be less than " + Restrictions.MIN_SECURITY_DEPOSIT.toFriendlyString()); - return new Offer(offerId, + OfferPayload offerPayload = new OfferPayload(offerId, null, p2PService.getAddress(), keyRing.getPubKeyRing(), @@ -339,7 +341,7 @@ class CreateOfferDataModel extends ActivatableDataModel { amount, minAmount, tradeCurrencyCode.get(), - new ArrayList<>(user.getAcceptedArbitratorAddresses()), + Lists.newArrayList(user.getAcceptedArbitratorAddresses()), paymentAccount.getPaymentMethod().getId(), paymentAccount.getId(), null, @@ -347,8 +349,6 @@ class CreateOfferDataModel extends ActivatableDataModel { acceptedCountryCodes, bankId, acceptedBanks, - priceFeedService, - Version.VERSION, walletService.getLastBlockSeenHeight(), txFeeAsCoin.value, @@ -363,6 +363,9 @@ class CreateOfferDataModel extends ActivatableDataModel { isPrivateOffer, hashOfChallenge, extraDataMap); + Offer offer = new Offer(offerPayload); + offer.setPriceFeedService(priceFeedService); + return offer; } void onPlaceOffer(Offer offer, TransactionResultHandler resultHandler) { @@ -443,7 +446,7 @@ class CreateOfferDataModel extends ActivatableDataModel { return true; } - Offer.Direction getDirection() { + OfferPayload.Direction getDirection() { return direction; } @@ -524,7 +527,7 @@ class CreateOfferDataModel extends ActivatableDataModel { // The mining fee for the createOfferFee tx is deducted from the createOfferFee and not visible to the trader if (direction != null && amount.get() != null && createOfferFeeAsCoin != null) { Coin feeAndSecDeposit = createOfferFeeAsCoin.add(txFeeAsCoin).add(securityDeposit.get()); - Coin required = direction == Offer.Direction.BUY ? feeAndSecDeposit : feeAndSecDeposit.add(amount.get()); + Coin required = direction == OfferPayload.Direction.BUY ? feeAndSecDeposit : feeAndSecDeposit.add(amount.get()); totalToPayAsCoin.set(required); log.debug("totalToPayAsCoin " + totalToPayAsCoin.get().toFriendlyString()); updateBalance(); diff --git a/gui/src/main/java/io/bisq/gui/main/offer/createoffer/CreateOfferView.java b/gui/src/main/java/io/bisq/gui/main/offer/createoffer/CreateOfferView.java index 719d54df5f..1e9b886a7c 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/createoffer/CreateOfferView.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/createoffer/CreateOfferView.java @@ -46,10 +46,11 @@ import io.bisq.gui.util.FormBuilder; import io.bisq.gui.util.GUIUtil; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.payment.PaymentAccount; +import io.bisq.user.Preferences; import javafx.beans.value.ChangeListener; import javafx.collections.FXCollections; import javafx.event.ActionEvent; @@ -252,7 +253,7 @@ public class CreateOfferView extends ActivatableViewAndModel Res.get("createOffer.amountPriceBox.buy.volumeDescription", dataModel.tradeCurrencyCode.get()), dataModel.tradeCurrencyCode)); @@ -285,9 +286,9 @@ class CreateOfferViewModel extends ActivatableWithDataModel onRemoveOpenOffer(offer)); } else { - boolean isSellOffer = offer.getDirection() == Offer.Direction.SELL; + boolean isSellOffer = offerPayload.getDirection() == OfferPayload.Direction.SELL; iconView.setId(isSellOffer ? "image-buy-white" : "image-sell-white"); button.setId(isSellOffer ? "buy-button" : "sell-button"); button.setStyle("-fx-text-fill: white;"); // does not take the font colors sometimes from the style @@ -752,7 +754,7 @@ public class OfferBookView extends ActivatableViewAndModel 0; String tooltipText = hasTraded ? Res.get("peerInfoIcon.tooltip.offer.traded", hostName, numPastTrades) : diff --git a/gui/src/main/java/io/bisq/gui/main/offer/offerbook/OfferBookViewModel.java b/gui/src/main/java/io/bisq/gui/main/offer/offerbook/OfferBookViewModel.java index d8beaa6eb7..745f6cc91f 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/offerbook/OfferBookViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/offerbook/OfferBookViewModel.java @@ -30,18 +30,18 @@ import io.bisq.gui.main.settings.SettingsView; import io.bisq.gui.main.settings.preferences.PreferencesView; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.GUIUtil; -import io.bisq.locale.Res; -import io.bisq.messages.locale.*; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.locale.*; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.p2p.storage.P2PService; import io.bisq.payment.PaymentAccountUtil; +import io.bisq.provider.price.PriceFeedService; import io.bisq.trade.Trade; import io.bisq.trade.closed.ClosedTradableManager; import io.bisq.trade.offer.OpenOfferManager; +import io.bisq.user.Preferences; import io.bisq.user.User; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; @@ -83,7 +83,7 @@ class OfferBookViewModel extends ActivatableViewModel { private TradeCurrency selectedTradeCurrency; private final ObservableList allTradeCurrencies = FXCollections.observableArrayList(); - private Offer.Direction direction; + private OfferPayload.Direction direction; private final StringProperty btcCode = new SimpleStringProperty(); final StringProperty tradeCurrencyCode = new SimpleStringProperty(); @@ -135,13 +135,13 @@ class OfferBookViewModel extends ActivatableViewModel { protected void activate() { tradeCurrencyCodes = preferences.getTradeCurrenciesAsObservable().stream().map(e -> e.getCode()).collect(Collectors.toSet()); - String code = direction == Offer.Direction.BUY ? preferences.getBuyScreenCurrencyCode() : preferences.getSellScreenCurrencyCode(); + String code = direction == OfferPayload.Direction.BUY ? preferences.getBuyScreenCurrencyCode() : preferences.getSellScreenCurrencyCode(); if (code != null && !code.equals(GUIUtil.SHOW_ALL_FLAG) && !code.isEmpty() && CurrencyUtil.getTradeCurrency(code).isPresent()) { showAllTradeCurrenciesProperty.set(false); selectedTradeCurrency = CurrencyUtil.getTradeCurrency(code).get(); } else { showAllTradeCurrenciesProperty.set(true); - selectedTradeCurrency = CurrencyUtil.getDefaultTradeCurrency(); + selectedTradeCurrency = Preferences.getDefaultTradeCurrency(); } tradeCurrencyCode.set(selectedTradeCurrency.getCode()); @@ -166,7 +166,7 @@ class OfferBookViewModel extends ActivatableViewModel { // API /////////////////////////////////////////////////////////////////////////////////////////// - void initWithDirection(Offer.Direction direction) { + void initWithDirection(OfferPayload.Direction direction) { this.direction = direction; } @@ -196,7 +196,7 @@ class OfferBookViewModel extends ActivatableViewModel { setMarketPriceFeedCurrency(); applyFilterPredicate(); - if (direction == Offer.Direction.BUY) + if (direction == OfferPayload.Direction.BUY) preferences.setBuyScreenCurrencyCode(code); else preferences.setSellScreenCurrencyCode(code); @@ -228,7 +228,7 @@ class OfferBookViewModel extends ActivatableViewModel { return openOfferManager.isMyOffer(offer); } - Offer.Direction getDirection() { + OfferPayload.Direction getDirection() { return direction; } @@ -268,7 +268,7 @@ class OfferBookViewModel extends ActivatableViewModel { Fiat price = offer.getPrice(); if (price != null) { String postFix = ""; - if (offer.getUseMarketBasedPrice()) { + if (offer.isUseMarketBasedPrice()) { postFix = " (" + formatter.formatPercentagePrice(offer.getMarketPriceMargin()) + ")"; } if (showAllTradeCurrenciesProperty.get()) @@ -315,7 +315,7 @@ class OfferBookViewModel extends ActivatableViewModel { if (item != null) { Offer offer = item.getOffer(); result = Res.getWithCol("shared.paymentMethod") + " " + Res.get(offer.getPaymentMethod().getId()); - result += "\n" + Res.getWithCol("shared.currency") + " " + CurrencyUtil.getNameAndCode(offer.getCurrencyCode()); + result += "\n" + Res.getWithCol("shared.currency") + " " + CurrencyUtil.getNameAndCode(offer.getCurrencyCode(), Preferences.getDefaultLocale()); String methodCountryCode = offer.getCountryCode(); if (methodCountryCode != null) { @@ -329,15 +329,15 @@ class OfferBookViewModel extends ActivatableViewModel { } if (methodCountryCode != null) - result += "\n" + Res.get("offerbook.offerersBankSeat", CountryUtil.getNameByCode(methodCountryCode)); + result += "\n" + Res.get("offerbook.offerersBankSeat", CountryUtil.getNameByCode(methodCountryCode, Preferences.getDefaultLocale())); List acceptedCountryCodes = offer.getAcceptedCountryCodes(); List acceptedBanks = offer.getAcceptedBankIds(); if (acceptedCountryCodes != null && !acceptedCountryCodes.isEmpty()) { - if (CountryUtil.containsAllSepaEuroCountries(acceptedCountryCodes)) + if (CountryUtil.containsAllSepaEuroCountries(acceptedCountryCodes, Preferences.getDefaultLocale())) result += Res.get("offerbook.offerersAcceptedBankSeatsEuro"); else - result += Res.get("offerbook.offerersAcceptedBankSeats", CountryUtil.getNamesByCodesString(acceptedCountryCodes)); + result += Res.get("offerbook.offerersAcceptedBankSeats", CountryUtil.getNamesByCodesString(acceptedCountryCodes, Preferences.getDefaultLocale())); } else if (acceptedBanks != null && !acceptedBanks.isEmpty()) { if (offer.getPaymentMethod().equals(PaymentMethod.SAME_BANK)) result += "\n" + Res.getWithCol("shared.bankName") + " " + acceptedBanks.get(0); @@ -364,7 +364,7 @@ class OfferBookViewModel extends ActivatableViewModel { private void setMarketPriceFeedCurrency() { if (!preferences.getUseStickyMarketPrice() && isTabSelected) { if (showAllTradeCurrenciesProperty.get()) - priceFeedService.setCurrencyCode(CurrencyUtil.getDefaultTradeCurrency().getCode()); + priceFeedService.setCurrencyCode(Preferences.getDefaultTradeCurrency().getCode()); else priceFeedService.setCurrencyCode(tradeCurrencyCode.get()); } @@ -372,9 +372,9 @@ class OfferBookViewModel extends ActivatableViewModel { private void setPriceFeedType() { if (CurrencyUtil.isCryptoCurrency(tradeCurrencyCode.get())) - priceFeedService.setType(direction == Offer.Direction.SELL ? PriceFeedService.Type.ASK : PriceFeedService.Type.BID); + priceFeedService.setType(direction == OfferPayload.Direction.SELL ? PriceFeedService.Type.ASK : PriceFeedService.Type.BID); else - priceFeedService.setType(direction == Offer.Direction.BUY ? PriceFeedService.Type.ASK : PriceFeedService.Type.BID); + priceFeedService.setType(direction == OfferPayload.Direction.BUY ? PriceFeedService.Type.ASK : PriceFeedService.Type.BID); } private void fillAllTradeCurrencies() { @@ -428,7 +428,7 @@ class OfferBookViewModel extends ActivatableViewModel { }); } - boolean hasMatchingArbitrator(Offer offer) { + boolean hasMatchingArbitrator(OfferPayload offer) { for (NodeAddress offerArbitratorNodeAddress : offer.getArbitratorNodeAddresses()) { for (NodeAddress acceptedArbitratorNodeAddress : user.getAcceptedArbitratorAddresses()) { if (offerArbitratorNodeAddress.equals(acceptedArbitratorNodeAddress)) @@ -438,11 +438,11 @@ class OfferBookViewModel extends ActivatableViewModel { return false; } - boolean isIgnored(Offer offer) { + boolean isIgnored(OfferPayload offer) { return preferences.getIgnoreTradersList().stream().filter(i -> i.equals(offer.getOffererNodeAddress().getHostNameWithoutPostFix())).findAny().isPresent(); } - boolean isOfferBanned(Offer offer) { + boolean isOfferBanned(OfferPayload offer) { return filterManager.getFilter() != null && filterManager.getFilter().bannedOfferIds.stream() .filter(e -> e.equals(offer.getId())) @@ -450,7 +450,7 @@ class OfferBookViewModel extends ActivatableViewModel { .isPresent(); } - boolean isNodeBanned(Offer offer) { + boolean isNodeBanned(OfferPayload offer) { return filterManager.getFilter() != null && filterManager.getFilter().bannedNodeAddress.stream() .filter(e -> e.equals(offer.getOffererNodeAddress().getHostNameWithoutPostFix())) @@ -458,7 +458,7 @@ class OfferBookViewModel extends ActivatableViewModel { .isPresent(); } - boolean hasSameProtocolVersion(Offer offer) { + boolean hasSameProtocolVersion(OfferPayload offer) { return offer.getProtocolVersion() == Version.TRADE_PROTOCOL_VERSION; } @@ -470,7 +470,7 @@ class OfferBookViewModel extends ActivatableViewModel { return id.equals(GUIUtil.EDIT_FLAG); } - int getNumPastTrades(Offer offer) { + int getNumPastTrades(OfferPayload offer) { return closedTradableManager.getClosedTrades().stream() .filter(e -> { final NodeAddress tradingPeerNodeAddress = e instanceof Trade ? ((Trade) e).getTradingPeerNodeAddress() : null; diff --git a/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferDataModel.java b/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferDataModel.java index c9ae2aede3..8dedb4f229 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferDataModel.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferDataModel.java @@ -27,18 +27,19 @@ import io.bisq.gui.common.model.ActivatableDataModel; import io.bisq.gui.main.overlays.notifications.Notification; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.BSFormatter; +import io.bisq.locale.CurrencyUtil; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.payment.PaymentAccount; import io.bisq.payment.PaymentAccountUtil; +import io.bisq.provider.fee.FeeService; +import io.bisq.provider.price.PriceFeedService; import io.bisq.trade.TradeManager; import io.bisq.trade.handlers.TradeResultHandler; +import io.bisq.user.Preferences; import io.bisq.user.User; import javafx.beans.property.*; import javafx.collections.ObservableList; @@ -118,14 +119,14 @@ class TakeOfferDataModel extends ActivatableDataModel { @Override protected void activate() { // when leaving screen we reset state - offer.setState(Offer.State.UNDEFINED); + offer.setState(OfferPayload.State.UNDEFINED); addBindings(); addListeners(); updateBalance(); - // TODO In case that we have funded but restarted, or canceled but took again the offer we would need to + // TODO In case that we have funded but restarted, or canceled but took again the offer we would need to // store locally the result when we received the funding tx(s). // For now we just ignore that rare case and bypass the check by setting a sufficient value // if (isWalletFunded.get()) @@ -171,7 +172,7 @@ class TakeOfferDataModel extends ActivatableDataModel { securityDepositAsCoin = offer.getSecurityDeposit(); - // Taker pays 2 times the tx fee because the mining fee might be different when offerer created the offer + // Taker pays 2 times the tx fee because the mining fee might be different when offerer created the offer // and reserved his funds, so that would not work well with dynamic fees. // The mining fee for the takeOfferFee tx is deducted from the takeOfferFee and not visible to the trader @@ -297,7 +298,7 @@ class TakeOfferDataModel extends ActivatableDataModel { // Getters /////////////////////////////////////////////////////////////////////////////////////////// - Offer.Direction getDirection() { + OfferPayload.Direction getDirection() { return offer.getDirection(); } @@ -359,12 +360,12 @@ class TakeOfferDataModel extends ActivatableDataModel { } void calculateTotalToPay() { - // Taker pays 2 times the tx fee because the mining fee might be different when offerer created the offer + // Taker pays 2 times the tx fee because the mining fee might be different when offerer created the offer // and reserved his funds, so that would not work well with dynamic fees. // The mining fee for the takeOfferFee tx is deducted from the createOfferFee and not visible to the trader if (offer != null && amountAsCoin.get() != null && takerFeeAsCoin != null) { Coin value = takerFeeAsCoin.add(totalTxFeeAsCoin).add(securityDepositAsCoin); - if (getDirection() == Offer.Direction.SELL) + if (getDirection() == OfferPayload.Direction.SELL) totalToPayAsCoin.set(value); else totalToPayAsCoin.set(value.add(amountAsCoin.get())); diff --git a/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferView.java b/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferView.java index afc990bfae..d2965908da 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferView.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferView.java @@ -46,10 +46,11 @@ import io.bisq.gui.util.FormBuilder; import io.bisq.gui.util.GUIUtil; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.TradeCurrency; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.payment.PaymentAccount; +import io.bisq.user.Preferences; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.value.ChangeListener; import javafx.geometry.*; @@ -220,9 +221,9 @@ public class TakeOfferView extends ActivatableViewAndModel im private ChangeListener isWalletFundedListener; private ChangeListener tradeStateListener; private ChangeListener tradeErrorListener; - private ChangeListener offerStateListener; + private ChangeListener offerStateListener; private ChangeListener offerErrorListener; private ConnectionListener connectionListener; // private Subscription isFeeSufficientSubscription; @@ -152,7 +153,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel im dataModel.initWithData(offer); this.offer = offer; - if (offer.getDirection() == Offer.Direction.BUY) { + if (offer.getDirection() == OfferPayload.Direction.BUY) { directionLabel = Res.get("shared.sellBitcoin"); amountDescription = Res.get("takeOffer.amountPriceBox.buy.amountDescription"); } else { @@ -267,14 +268,14 @@ class TakeOfferViewModel extends ActivatableWithDataModel im // States /////////////////////////////////////////////////////////////////////////////////////////// - private void applyOfferState(Offer.State state) { + private void applyOfferState(OfferPayload.State state) { log.debug("applyOfferState state = " + state); offerWarning.set(null); // We have 2 situations handled here: // 1. when clicking take offer in the offerbook screen, we do the availability check // 2. Before actually taking the offer in the take offer screen, we check again the availability as some time might have passed in the meantime - // So we use the takeOfferRequested flag to display different messages depending on the context. + // So we use the takeOfferRequested flag to display different network_messages depending on the context. switch (state) { case UNDEFINED: break; @@ -388,7 +389,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel im private void addBindings() { volume.bind(createStringBinding(() -> formatter.formatVolume(dataModel.volumeAsFiat.get()), dataModel.volumeAsFiat)); - if (dataModel.getDirection() == Offer.Direction.SELL) { + if (dataModel.getDirection() == OfferPayload.Direction.SELL) { volumeDescriptionLabel.set(Res.get("createOffer.amountPriceBox.buy.volumeDescription", dataModel.getCurrencyCode())); } else { volumeDescriptionLabel.set(Res.get("createOffer.amountPriceBox.sell.volumeDescription", dataModel.getCurrencyCode())); @@ -520,7 +521,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel im } boolean isSeller() { - return dataModel.getDirection() == Offer.Direction.BUY; + return dataModel.getDirection() == OfferPayload.Direction.BUY; } private InputValidator.ValidationResult isBtcInputValid(String input) { diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/Overlay.java b/gui/src/main/java/io/bisq/gui/main/overlays/Overlay.java index 5598f643fb..717580e86f 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/Overlay.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/Overlay.java @@ -26,7 +26,7 @@ import io.bisq.gui.main.MainView; import io.bisq.gui.util.GUIUtil; import io.bisq.gui.util.Transitions; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javafx.animation.Interpolator; import javafx.animation.KeyFrame; import javafx.animation.KeyValue; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/editor/PeerInfoWithTagEditor.java b/gui/src/main/java/io/bisq/gui/main/overlays/editor/PeerInfoWithTagEditor.java index 6803ee1858..f3569c1355 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/editor/PeerInfoWithTagEditor.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/editor/PeerInfoWithTagEditor.java @@ -6,8 +6,8 @@ import io.bisq.gui.main.overlays.Overlay; import io.bisq.gui.main.overlays.windows.SendPrivateNotificationWindow; import io.bisq.gui.util.FormBuilder; import io.bisq.locale.Res; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.user.Preferences; import javafx.animation.Interpolator; import javafx.animation.KeyFrame; import javafx.animation.KeyValue; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/notifications/NotificationCenter.java b/gui/src/main/java/io/bisq/gui/main/overlays/notifications/NotificationCenter.java index 6a12c0f93f..87341a0f14 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/notifications/NotificationCenter.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/notifications/NotificationCenter.java @@ -11,7 +11,7 @@ import io.bisq.gui.main.disputes.trader.TraderDisputeView; import io.bisq.gui.main.portfolio.PortfolioView; import io.bisq.gui.main.portfolio.pendingtrades.PendingTradesView; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; import javafx.collections.ListChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/AddBitcoinNodesWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/AddBitcoinNodesWindow.java index 47b189e49b..c7c5e8d1f7 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/AddBitcoinNodesWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/AddBitcoinNodesWindow.java @@ -23,7 +23,7 @@ import io.bisq.gui.components.HyperlinkWithIcon; import io.bisq.gui.components.InputTextField; import io.bisq.gui.main.overlays.Overlay; import io.bisq.gui.util.GUIUtil; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javafx.geometry.HPos; import javafx.geometry.Insets; import javafx.scene.Scene; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/ContractWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/ContractWindow.java index a8cb89a5be..eff1bf3b97 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/ContractWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/ContractWindow.java @@ -25,12 +25,13 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.FormBuilder; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Dispute; -import io.bisq.messages.locale.CountryUtil; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.trade.payload.Contract; +import io.bisq.network_messages.arbitration.Dispute; +import io.bisq.locale.CountryUtil; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.user.Preferences; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; @@ -95,7 +96,7 @@ public class ContractWindow extends Overlay { private void addContent() { Contract contract = dispute.getContract(); - Offer offer = contract.offer; + OfferPayload offer = contract.offer; List acceptedBanks = offer.getAcceptedBankIds(); boolean showAcceptedBanks = acceptedBanks != null && !acceptedBanks.isEmpty(); @@ -139,11 +140,11 @@ public class ContractWindow extends Overlay { if (showAcceptedCountryCodes) { String countries; Tooltip tooltip = null; - if (CountryUtil.containsAllSepaEuroCountries(acceptedCountryCodes)) { + if (CountryUtil.containsAllSepaEuroCountries(acceptedCountryCodes, Preferences.getDefaultLocale())) { countries = Res.getWithCol("shared.allEuroCountries"); } else { countries = CountryUtil.getCodesString(acceptedCountryCodes); - tooltip = new Tooltip(CountryUtil.getNamesByCodesString(acceptedCountryCodes)); + tooltip = new Tooltip(CountryUtil.getNamesByCodesString(acceptedCountryCodes, Preferences.getDefaultLocale())); } TextField acceptedCountries = FormBuilder.addLabelTextField(gridPane, ++rowIndex, Res.getWithCol("shared.acceptedTakerCountries"), countries).second; if (tooltip != null) acceptedCountries.setTooltip(new Tooltip()); diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/DisplayAlertMessageWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/DisplayAlertMessageWindow.java index 83094ee5d1..513106c2f3 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/DisplayAlertMessageWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/DisplayAlertMessageWindow.java @@ -21,7 +21,7 @@ import io.bisq.gui.components.HyperlinkWithIcon; import io.bisq.gui.main.overlays.Overlay; import io.bisq.gui.util.FormBuilder; import io.bisq.locale.Res; -import io.bisq.messages.alert.Alert; +import io.bisq.network_messages.alert.Alert; import javafx.geometry.Insets; import javafx.scene.control.Button; import javafx.scene.layout.GridPane; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/DisputeSummaryWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/DisputeSummaryWindow.java index 3d1ff80f36..2e82885189 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/DisputeSummaryWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/DisputeSummaryWindow.java @@ -31,9 +31,9 @@ import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.Layout; import io.bisq.gui.util.Transitions; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Dispute; -import io.bisq.messages.arbitration.DisputeResult; -import io.bisq.messages.trade.payload.Contract; +import io.bisq.network_messages.arbitration.Dispute; +import io.bisq.network_messages.arbitration.DisputeResult; +import io.bisq.network_messages.trade.payload.Contract; import javafx.beans.binding.Bindings; import javafx.beans.binding.ObjectBinding; import javafx.beans.value.ChangeListener; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/EmptyWalletWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/EmptyWalletWindow.java index b5c80d3515..0279b9199c 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/EmptyWalletWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/EmptyWalletWindow.java @@ -27,7 +27,7 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.Transitions; import io.bisq.locale.Res; -import io.bisq.messages.btc.Restrictions; +import io.bisq.network_messages.btc.Restrictions; import io.bisq.trade.offer.OpenOfferManager; import javafx.geometry.Insets; import javafx.scene.Scene; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/FilterWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/FilterWindow.java index 4a1f0c34f0..20349ca4e7 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/FilterWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/FilterWindow.java @@ -23,8 +23,8 @@ import io.bisq.gui.components.InputTextField; import io.bisq.gui.main.overlays.Overlay; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.locale.Res; -import io.bisq.messages.filter.payload.Filter; -import io.bisq.messages.filter.payload.PaymentAccountFilter; +import io.bisq.network_messages.filter.payload.Filter; +import io.bisq.network_messages.filter.payload.PaymentAccountFilter; import javafx.geometry.HPos; import javafx.geometry.Insets; import javafx.scene.Scene; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/OfferDetailsWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/OfferDetailsWindow.java index 08bd1e393b..481adcc03a 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/OfferDetailsWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/OfferDetailsWindow.java @@ -18,7 +18,7 @@ package io.bisq.gui.main.overlays.windows; import com.google.common.base.Joiner; -import io.bisq.common.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.common.util.Tuple3; import io.bisq.gui.Navigation; import io.bisq.gui.components.BusyAnimation; @@ -31,11 +31,12 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.locale.BankUtil; -import io.bisq.messages.locale.CountryUtil; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.BankUtil; +import io.bisq.locale.CountryUtil; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.user.Preferences; import io.bisq.payment.PaymentAccount; import io.bisq.user.User; import javafx.geometry.Insets; @@ -157,7 +158,7 @@ public class OfferDetailsWindow extends Overlay { String fiatDirectionInfo = ":"; String btcDirectionInfo = ":"; - Offer.Direction direction = offer.getDirection(); + OfferPayload.Direction direction = offer.getDirection(); String currencyCode = offer.getCurrencyCode(); String offerTypeLabel = Res.getWithCol("shared.offerType"); String toReceive = " " + Res.get("shared.toReceive"); @@ -166,13 +167,13 @@ public class OfferDetailsWindow extends Overlay { if (takeOfferHandlerOptional.isPresent()) { addLabelTextField(gridPane, rowIndex, offerTypeLabel, formatter.getDirectionForTakeOffer(direction, currencyCode), firstRowDistance); - fiatDirectionInfo = direction == Offer.Direction.BUY ? toReceive : toSpend; - btcDirectionInfo = direction == Offer.Direction.SELL ? toReceive : toSpend; + fiatDirectionInfo = direction == OfferPayload.Direction.BUY ? toReceive : toSpend; + btcDirectionInfo = direction == OfferPayload.Direction.SELL ? toReceive : toSpend; } else if (placeOfferHandlerOptional.isPresent()) { addLabelTextField(gridPane, rowIndex, offerTypeLabel, formatter.getOfferDirectionForCreateOffer(direction, currencyCode), firstRowDistance); - fiatDirectionInfo = direction == Offer.Direction.SELL ? toReceive : toSpend; - btcDirectionInfo = direction == Offer.Direction.BUY ? toReceive : toSpend; + fiatDirectionInfo = direction == OfferPayload.Direction.SELL ? toReceive : toSpend; + btcDirectionInfo = direction == OfferPayload.Direction.BUY ? toReceive : toSpend; } else { addLabelTextField(gridPane, rowIndex, offerTypeLabel, formatter.getDirectionBothSides(direction, currencyCode), firstRowDistance); @@ -201,7 +202,7 @@ public class OfferDetailsWindow extends Overlay { addLabelTextField(gridPane, ++rowIndex, priceLabel, formatter.formatPrice(tradePrice)); } else { Fiat price = offer.getPrice(); - if (offer.getUseMarketBasedPrice()) { + if (offer.isUseMarketBasedPrice()) { addLabelTextField(gridPane, ++rowIndex, priceLabel, formatter.formatPrice(price) + " " + Res.get("offerDetailsWindow.distance", formatter.formatPercentagePrice(offer.getMarketPriceMargin()))); @@ -254,15 +255,15 @@ public class OfferDetailsWindow extends Overlay { if (showAcceptedCountryCodes) { String countries; Tooltip tooltip = null; - if (CountryUtil.containsAllSepaEuroCountries(acceptedCountryCodes)) { + if (CountryUtil.containsAllSepaEuroCountries(acceptedCountryCodes, Preferences.getDefaultLocale())) { countries = Res.getWithCol("shared.allEuroCountries"); } else { if (acceptedCountryCodes.size() == 1) { - countries = CountryUtil.getNameAndCode(acceptedCountryCodes.get(0)); + countries = CountryUtil.getNameAndCode(acceptedCountryCodes.get(0), Preferences.getDefaultLocale()); tooltip = new Tooltip(countries); } else { countries = CountryUtil.getCodesString(acceptedCountryCodes); - tooltip = new Tooltip(CountryUtil.getNamesByCodesString(acceptedCountryCodes)); + tooltip = new Tooltip(CountryUtil.getNamesByCodesString(acceptedCountryCodes, Preferences.getDefaultLocale())); } } TextField acceptedCountries = addLabelTextField(gridPane, ++rowIndex, @@ -292,7 +293,7 @@ public class OfferDetailsWindow extends Overlay { if (paymentMethodCountryCode != null) addLabelTextField(gridPane, ++rowIndex, Res.get("offerDetailsWindow.countryBank"), - CountryUtil.getNameAndCode(paymentMethodCountryCode)); + CountryUtil.getNameAndCode(paymentMethodCountryCode, Preferences.getDefaultLocale())); addLabelTextFieldWithCopyIcon(gridPane, ++rowIndex, Res.get("offerDetailsWindow.acceptedArbitrators"), formatter.arbitratorAddressesToString(offer.getArbitratorNodeAddresses())); @@ -301,13 +302,13 @@ public class OfferDetailsWindow extends Overlay { if (placeOfferHandlerOptional.isPresent()) { addTitledGroupBg(gridPane, ++rowIndex, 1, Res.get("offerDetailsWindow.commitment"), Layout.GROUP_DISTANCE); - addLabelTextField(gridPane, rowIndex, Res.get("offerDetailsWindow.agree"), Offer.TAC_OFFERER, + addLabelTextField(gridPane, rowIndex, Res.get("offerDetailsWindow.agree"), Res.get("createOffer.tac"), Layout.FIRST_ROW_AND_GROUP_DISTANCE); addConfirmAndCancelButtons(true); } else if (takeOfferHandlerOptional.isPresent()) { addTitledGroupBg(gridPane, ++rowIndex, 1, Res.get("shared.contract"), Layout.GROUP_DISTANCE); - addLabelTextField(gridPane, rowIndex, Res.get("offerDetailsWindow.tac"), Offer.TAC_TAKER, + addLabelTextField(gridPane, rowIndex, Res.get("offerDetailsWindow.tac"), Res.get("takeOffer.tac"), Layout.FIRST_ROW_AND_GROUP_DISTANCE); addConfirmAndCancelButtons(false); @@ -321,7 +322,7 @@ public class OfferDetailsWindow extends Overlay { } private void addConfirmAndCancelButtons(boolean isPlaceOffer) { - boolean isBuyOffer = offer.getDirection() == Offer.Direction.BUY; + boolean isBuyOffer = offer.getDirection() == OfferPayload.Direction.BUY; boolean isBuyerRole = isPlaceOffer ? isBuyOffer : !isBuyOffer; String placeOfferButtonText = isBuyerRole ? Res.get("offerDetailsWindow.confirm.maker", Res.get("shared.buy")) : diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/SendAlertMessageWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/SendAlertMessageWindow.java index e769ca3e7d..c93cfc15fb 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/SendAlertMessageWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/SendAlertMessageWindow.java @@ -23,7 +23,7 @@ import io.bisq.gui.components.InputTextField; import io.bisq.gui.main.overlays.Overlay; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.locale.Res; -import io.bisq.messages.alert.Alert; +import io.bisq.network_messages.alert.Alert; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/SendPrivateNotificationWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/SendPrivateNotificationWindow.java index 96e5537b77..a8ada35a34 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/SendPrivateNotificationWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/SendPrivateNotificationWindow.java @@ -18,15 +18,15 @@ package io.bisq.gui.main.overlays.windows; import io.bisq.app.DevEnv; -import io.bisq.common.crypto.PubKeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; import io.bisq.common.util.Tuple2; import io.bisq.gui.components.InputTextField; import io.bisq.gui.main.overlays.Overlay; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.locale.Res; -import io.bisq.messages.alert.PrivateNotification; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.SendMailboxMessageListener; +import io.bisq.network_messages.alert.PrivateNotification; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.SendMailboxMessageListener; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/TacWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/TacWindow.java index 828bcd17e5..8c19cbe8af 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/TacWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/TacWindow.java @@ -5,7 +5,7 @@ import io.bisq.app.BisqApp; import io.bisq.app.DevEnv; import io.bisq.gui.main.overlays.Overlay; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/gui/src/main/java/io/bisq/gui/main/overlays/windows/TradeDetailsWindow.java b/gui/src/main/java/io/bisq/gui/main/overlays/windows/TradeDetailsWindow.java index 57c3a4c521..fbb8fb6442 100644 --- a/gui/src/main/java/io/bisq/gui/main/overlays/windows/TradeDetailsWindow.java +++ b/gui/src/main/java/io/bisq/gui/main/overlays/windows/TradeDetailsWindow.java @@ -24,9 +24,9 @@ import io.bisq.gui.main.overlays.Overlay; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.trade.payload.Contract; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; import javafx.beans.property.IntegerProperty; diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/closedtrades/ClosedTradesDataModel.java b/gui/src/main/java/io/bisq/gui/main/portfolio/closedtrades/ClosedTradesDataModel.java index 373e8e9b58..7adfe71171 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/closedtrades/ClosedTradesDataModel.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/closedtrades/ClosedTradesDataModel.java @@ -19,7 +19,8 @@ package io.bisq.gui.main.portfolio.closedtrades; import com.google.inject.Inject; import io.bisq.gui.common.model.ActivatableDataModel; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.trade.Tradable; import io.bisq.trade.closed.ClosedTradableManager; import javafx.collections.FXCollections; @@ -56,7 +57,7 @@ class ClosedTradesDataModel extends ActivatableDataModel { return list; } - public Offer.Direction getDirection(Offer offer) { + public OfferPayload.Direction getDirection(Offer offer) { return closedTradableManager.wasMyOffer(offer) ? offer.getDirection() : offer.getMirroredDirection(); } diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/closedtrades/ClosedTradesView.java b/gui/src/main/java/io/bisq/gui/main/portfolio/closedtrades/ClosedTradesView.java index ae85670b8d..f3507a768d 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/closedtrades/ClosedTradesView.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/closedtrades/ClosedTradesView.java @@ -27,7 +27,7 @@ import io.bisq.gui.main.overlays.windows.OfferDetailsWindow; import io.bisq.gui.main.overlays.windows.TradeDetailsWindow; import io.bisq.gui.util.GUIUtil; import io.bisq.locale.Res; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import io.bisq.trade.Tradable; import io.bisq.trade.Trade; import io.bisq.trade.offer.OpenOffer; @@ -99,7 +99,8 @@ public class ClosedTradesView extends ActivatableViewAndModel o1.getTradable().getId().compareTo(o2.getTradable().getId())); dateColumn.setComparator((o1, o2) -> o1.getTradable().getDate().compareTo(o2.getTradable().getDate())); - directionColumn.setComparator((o1, o2) -> o1.getTradable().getOffer().getDirection().compareTo(o2.getTradable().getOffer().getDirection())); + directionColumn.setComparator((o1, o2) -> o1.getTradable().getOffer().getDirection() + .compareTo(o2.getTradable().getOffer().getDirection())); marketColumn.setComparator((o1, o2) -> model.getMarketLabel(o1).compareTo(model.getMarketLabel(o2))); priceColumn.setComparator((o1, o2) -> { diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/failedtrades/FailedTradesDataModel.java b/gui/src/main/java/io/bisq/gui/main/portfolio/failedtrades/FailedTradesDataModel.java index bb32d24248..d080ade237 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/failedtrades/FailedTradesDataModel.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/failedtrades/FailedTradesDataModel.java @@ -19,7 +19,8 @@ package io.bisq.gui.main.portfolio.failedtrades; import com.google.inject.Inject; import io.bisq.gui.common.model.ActivatableDataModel; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.trade.Trade; import io.bisq.trade.failed.FailedTradesManager; import javafx.collections.FXCollections; @@ -57,7 +58,7 @@ class FailedTradesDataModel extends ActivatableDataModel { return list; } - public Offer.Direction getDirection(Offer offer) { + public OfferPayload.Direction getDirection(Offer offer) { return failedTradesManager.wasMyOffer(offer) ? offer.getDirection() : offer.getMirroredDirection(); } diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOfferListItem.java b/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOfferListItem.java index 934ed4b5ba..0857abb742 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOfferListItem.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOfferListItem.java @@ -17,7 +17,7 @@ package io.bisq.gui.main.portfolio.openoffer; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.trade.offer.OpenOffer; /** diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersDataModel.java b/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersDataModel.java index f4cf0365be..bd9c247253 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersDataModel.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersDataModel.java @@ -21,8 +21,9 @@ import com.google.inject.Inject; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; import io.bisq.gui.common.model.ActivatableDataModel; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.provider.price.PriceFeedService; import io.bisq.trade.offer.OpenOffer; import io.bisq.trade.offer.OpenOfferManager; import javafx.beans.value.ChangeListener; @@ -71,7 +72,7 @@ class OpenOffersDataModel extends ActivatableDataModel { return list; } - public Offer.Direction getDirection(Offer offer) { + public OfferPayload.Direction getDirection(Offer offer) { return openOfferManager.isMyOffer(offer) ? offer.getDirection() : offer.getMirroredDirection(); } diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersView.java b/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersView.java index 800498bb7e..b7d976bfa4 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersView.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersView.java @@ -27,7 +27,7 @@ import io.bisq.gui.main.funds.withdrawal.WithdrawalView; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.main.overlays.windows.OfferDetailsWindow; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.trade.offer.OpenOffer; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.collections.transformation.SortedList; diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersViewModel.java b/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersViewModel.java index b93a342dd1..4b0f79db1e 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/openoffer/OpenOffersViewModel.java @@ -24,8 +24,8 @@ import io.bisq.gui.common.model.ActivatableWithDataModel; import io.bisq.gui.common.model.ViewModel; import io.bisq.gui.util.BSFormatter; import io.bisq.locale.Res; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.p2p.storage.P2PService; import io.bisq.trade.offer.OpenOffer; import javafx.collections.ObservableList; import org.bitcoinj.utils.Fiat; @@ -67,7 +67,7 @@ class OpenOffersViewModel extends ActivatableWithDataModel Fiat price = offer.getPrice(); if (price != null) { String postFix = ""; - if (offer.getUseMarketBasedPrice()) + if (offer.isUseMarketBasedPrice()) postFix = " (" + formatter.formatPercentagePrice(offer.getMarketPriceMargin()) + ")"; return formatter.formatPrice(price) + postFix; } else { diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java index 1c89baf151..368dca0f1b 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java @@ -23,7 +23,6 @@ import io.bisq.arbitration.DisputeAlreadyOpenException; import io.bisq.arbitration.DisputeManager; import io.bisq.btc.wallet.BtcWalletService; import io.bisq.btc.wallet.TradeWalletService; -import io.bisq.common.crypto.KeyRing; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.FaultHandler; import io.bisq.common.handlers.ResultHandler; @@ -36,17 +35,19 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.main.overlays.windows.SelectDepositTxWindow; import io.bisq.gui.main.overlays.windows.WalletPasswordWindow; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Arbitrator; -import io.bisq.messages.arbitration.Dispute; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.arbitration.Arbitrator; +import io.bisq.network_messages.arbitration.Dispute; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.p2p.storage.P2PService; +import io.bisq.provider.fee.FeeService; import io.bisq.trade.BuyerTrade; import io.bisq.trade.SellerTrade; import io.bisq.trade.Trade; import io.bisq.trade.TradeManager; +import io.bisq.user.Preferences; import io.bisq.user.User; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; @@ -208,7 +209,7 @@ public class PendingTradesDataModel extends ActivatableDataModel { } boolean isBuyOffer() { - return getOffer() != null && getOffer().getDirection() == Offer.Direction.BUY; + return getOffer() != null && getOffer().getDirection() == OfferPayload.Direction.BUY; } boolean isOfferer(Offer offer) { @@ -238,7 +239,7 @@ public class PendingTradesDataModel extends ActivatableDataModel { return getOffer() != null ? getOffer().getCurrencyCode() : ""; } - public Offer.Direction getDirection(Offer offer) { + public OfferPayload.Direction getDirection(Offer offer) { isOfferer = tradeManager.isMyOffer(offer); return isOfferer ? offer.getDirection() : offer.getMirroredDirection(); } @@ -380,7 +381,7 @@ public class PendingTradesDataModel extends ActivatableDataModel { Dispute dispute = new Dispute(disputeManager.getDisputeStorage(), trade.getId(), keyRing.getPubKeyRing().hashCode(), // traderId - trade.getOffer().getDirection() == Offer.Direction.BUY ? isOfferer : !isOfferer, + trade.getOffer().getDirection() == OfferPayload.Direction.BUY ? isOfferer : !isOfferer, isOfferer, keyRing.getPubKeyRing(), trade.getDate(), diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java index f3470f60cc..1210818612 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java @@ -25,10 +25,10 @@ import io.bisq.gui.common.model.ViewModel; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.validation.BtcAddressValidator; import io.bisq.locale.Res; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.trade.payload.Contract; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.p2p.storage.P2PService; import io.bisq.trade.Trade; import io.bisq.trade.closed.ClosedTradableManager; import io.bisq.user.User; diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/TradeStepView.java b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/TradeStepView.java index 5896c5e902..981e1f45fe 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/TradeStepView.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/TradeStepView.java @@ -27,8 +27,8 @@ import io.bisq.gui.main.portfolio.pendingtrades.PendingTradesViewModel; import io.bisq.gui.main.portfolio.pendingtrades.TradeSubView; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.arbitration.Dispute; -import io.bisq.messages.user.Preferences; +import io.bisq.network_messages.arbitration.Dispute; +import io.bisq.user.Preferences; import io.bisq.trade.Trade; import javafx.beans.value.ChangeListener; import javafx.scene.control.ProgressBar; diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java index 3f9c888a63..2ec7edfb37 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java @@ -27,14 +27,15 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.main.portfolio.pendingtrades.PendingTradesViewModel; import io.bisq.gui.main.portfolio.pendingtrades.steps.TradeStepView; import io.bisq.gui.util.Layout; +import io.bisq.locale.CurrencyUtil; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.CashDepositAccountContractData; -import io.bisq.messages.payment.payload.CryptoCurrencyAccountContractData; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.payment.payload.USPostalMoneyOrderAccountContractData; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.CashDepositAccountContractData; +import io.bisq.network_messages.payment.payload.CryptoCurrencyAccountContractData; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.payment.payload.USPostalMoneyOrderAccountContractData; import io.bisq.trade.Trade; +import io.bisq.user.Preferences; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.GridPane; @@ -82,7 +83,7 @@ public class BuyerStep2View extends TradeStepView { String amount = model.formatter.formatVolumeWithCode(trade.getTradeVolume()); if (paymentAccountContractData instanceof CryptoCurrencyAccountContractData) message += Res.get("portfolio.pending.step2_buyer.altcoin", - CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode()), + CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode(), Preferences.getDefaultLocale()), amount) + accountDetails + paymentDetailsForTradePopup + ".\n\n" + @@ -206,7 +207,8 @@ public class BuyerStep2View extends TradeStepView { gridRow = CashDepositForm.addFormForBuyer(gridPane, gridRow, paymentAccountContractData); break; case PaymentMethod.BLOCK_CHAINS_ID: - String labelTitle = Res.get("portfolio.pending.step2_buyer.sellersAddress", CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode())); + String labelTitle = Res.get("portfolio.pending.step2_buyer.sellersAddress", CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode(), + Preferences.getDefaultLocale())); gridRow = CryptoCurrencyForm.addFormForBuyer(gridPane, gridRow, paymentAccountContractData, labelTitle); break; default: @@ -287,7 +289,8 @@ public class BuyerStep2View extends TradeStepView { if (!DevEnv.DEV_MODE && preferences.showAgain(key)) { Popup popup = new Popup(); popup.headLine(Res.get("portfolio.pending.step2_buyer.confirmStart.headline")) - .confirmation(Res.get("portfolio.pending.step2_buyer.confirmStart.msg", CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode()))) + .confirmation(Res.get("portfolio.pending.step2_buyer.confirmStart.msg", CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode(), + Preferences.getDefaultLocale()))) .width(700) .actionButtonText(Res.get("portfolio.pending.step2_buyer.confirmStart.yes")) .onAction(this::confirmPaymentStarted) diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep5View.java b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep5View.java index e760ec4681..fb48788682 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep5View.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep5View.java @@ -39,7 +39,7 @@ import io.bisq.gui.main.portfolio.pendingtrades.steps.TradeStepView; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.btc.Restrictions; +import io.bisq.network_messages.btc.Restrictions; import javafx.beans.value.ChangeListener; import javafx.geometry.Insets; import javafx.scene.control.Button; diff --git a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java index 4c0706d888..a0268d5b3e 100644 --- a/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java +++ b/gui/src/main/java/io/bisq/gui/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java @@ -27,10 +27,10 @@ import io.bisq.gui.main.portfolio.pendingtrades.PendingTradesViewModel; import io.bisq.gui.main.portfolio.pendingtrades.steps.TradeStepView; import io.bisq.gui.util.Layout; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.payment.payload.*; -import io.bisq.messages.trade.payload.Contract; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.payment.payload.*; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.user.Preferences; import io.bisq.trade.Trade; import javafx.scene.control.Button; import javafx.scene.control.Label; @@ -69,7 +69,7 @@ public class SellerStep3View extends TradeStepView { String key = "confirmPayment" + trade.getId(); String message; String tradeVolumeWithCode = model.formatter.formatVolumeWithCode(trade.getTradeVolume()); - String currencyName = CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode()); + String currencyName = CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode(), Preferences.getDefaultLocale()); String part1 = Res.get("portfolio.pending.step3_seller.part", currencyName); String id = trade.getShortId(); if (paymentAccountContractData instanceof CryptoCurrencyAccountContractData) { @@ -137,7 +137,7 @@ public class SellerStep3View extends TradeStepView { String myTitle = ""; String peersTitle = ""; boolean isBlockChain = false; - String nameByCode = CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode()); + String nameByCode = CurrencyUtil.getNameByCode(trade.getOffer().getCurrencyCode(), Preferences.getDefaultLocale()); Contract contract = trade.getContract(); if (contract != null) { PaymentAccountContractData myPaymentAccountContractData = contract.getSellerPaymentAccountContractData(); @@ -237,7 +237,7 @@ public class SellerStep3View extends TradeStepView { String key = "confirmPaymentReceived"; if (!DevEnv.DEV_MODE && preferences.showAgain(key)) { PaymentAccountContractData paymentAccountContractData = model.dataModel.getSellersPaymentAccountContractData(); - String message = Res.get("portfolio.pending.step3_seller.onPaymentReceived.part1", CurrencyUtil.getNameByCode(model.dataModel.getCurrencyCode())); + String message = Res.get("portfolio.pending.step3_seller.onPaymentReceived.part1", CurrencyUtil.getNameByCode(model.dataModel.getCurrencyCode(), Preferences.getDefaultLocale())); if (!(paymentAccountContractData instanceof CryptoCurrencyAccountContractData)) { message += Res.get("portfolio.pending.step3_seller.onPaymentReceived.fiat", trade.getShortId()); diff --git a/gui/src/main/java/io/bisq/gui/main/settings/network/NetworkSettingsView.java b/gui/src/main/java/io/bisq/gui/main/settings/network/NetworkSettingsView.java index 18bc732b19..7d1cc5b135 100644 --- a/gui/src/main/java/io/bisq/gui/main/settings/network/NetworkSettingsView.java +++ b/gui/src/main/java/io/bisq/gui/main/settings/network/NetworkSettingsView.java @@ -29,8 +29,8 @@ import io.bisq.gui.components.TitledGroupBg; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.BSFormatter; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; -import io.bisq.p2p.P2PService; +import io.bisq.user.Preferences; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.network.Statistic; import javafx.beans.value.ChangeListener; import javafx.collections.FXCollections; diff --git a/gui/src/main/java/io/bisq/gui/main/settings/preferences/PreferencesView.java b/gui/src/main/java/io/bisq/gui/main/settings/preferences/PreferencesView.java index 86a2ebeccc..d161e0a1c4 100644 --- a/gui/src/main/java/io/bisq/gui/main/settings/preferences/PreferencesView.java +++ b/gui/src/main/java/io/bisq/gui/main/settings/preferences/PreferencesView.java @@ -29,11 +29,10 @@ import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.BSFormatter; import io.bisq.gui.util.ImageUtil; import io.bisq.gui.util.Layout; -import io.bisq.locale.Res; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.locale.*; -import io.bisq.messages.user.BlockChainExplorer; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.*; +import io.bisq.user.BlockChainExplorer; +import io.bisq.provider.fee.FeeService; +import io.bisq.user.Preferences; import javafx.beans.value.ChangeListener; import javafx.collections.FXCollections; import javafx.collections.ObservableList; diff --git a/gui/src/main/java/io/bisq/gui/util/BSFormatter.java b/gui/src/main/java/io/bisq/gui/util/BSFormatter.java index ed3782c0ca..90edb96f53 100644 --- a/gui/src/main/java/io/bisq/gui/util/BSFormatter.java +++ b/gui/src/main/java/io/bisq/gui/util/BSFormatter.java @@ -19,11 +19,12 @@ package io.bisq.gui.util; import io.bisq.common.util.MathUtils; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.LanguageUtil; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.user.Preferences; -import io.bisq.p2p.NodeAddress; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.LanguageUtil; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; +import io.bisq.user.Preferences; +import io.bisq.network_messages.NodeAddress; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DurationFormatUtils; import org.bitcoinj.core.Coin; @@ -277,7 +278,7 @@ public class BSFormatter { public String formatVolumeLabel(String currencyCode, String postFix) { return Res.get("formatter.formatVolumeLabel", - CurrencyUtil.getNameByCode(currencyCode), + CurrencyUtil.getNameByCode(currencyCode, Preferences.getDefaultLocale()), postFix); } @@ -349,18 +350,18 @@ public class BSFormatter { return decimalFormat.format(MathUtils.roundDouble(value, precision)).replace(",", "."); } - public String getDirectionWithCode(Offer.Direction direction, String currencyCode) { + public String getDirectionWithCode(OfferPayload.Direction direction, String currencyCode) { if (CurrencyUtil.isFiatCurrency(currencyCode)) - return (direction == Offer.Direction.BUY) ? Res.get("shared.buyCurrency", "BTC") : Res.get("shared.sellCurrency", "BTC"); + return (direction == OfferPayload.Direction.BUY) ? Res.get("shared.buyCurrency", "BTC") : Res.get("shared.sellCurrency", "BTC"); else - return (direction == Offer.Direction.SELL) ? Res.get("shared.buyCurrency", currencyCode) : Res.get("shared.sellCurrency", currencyCode); + return (direction == OfferPayload.Direction.SELL) ? Res.get("shared.buyCurrency", currencyCode) : Res.get("shared.sellCurrency", currencyCode); } - public String getDirectionWithCodeDetailed(Offer.Direction direction, String currencyCode) { + public String getDirectionWithCodeDetailed(OfferPayload.Direction direction, String currencyCode) { if (CurrencyUtil.isFiatCurrency(currencyCode)) - return (direction == Offer.Direction.BUY) ? Res.get("shared.buyingBTCWith", currencyCode) : Res.get("shared.sellingBTCFor", currencyCode); + return (direction == OfferPayload.Direction.BUY) ? Res.get("shared.buyingBTCWith", currencyCode) : Res.get("shared.sellingBTCFor", currencyCode); else - return (direction == Offer.Direction.SELL) ? Res.get("shared.buyingCurrency", currencyCode) : Res.get("shared.sellingCurrency", currencyCode); + return (direction == OfferPayload.Direction.SELL) ? Res.get("shared.buyingCurrency", currencyCode) : Res.get("shared.sellingCurrency", currencyCode); } public String arbitratorAddressesToString(List nodeAddresses) { @@ -526,15 +527,15 @@ public class BSFormatter { return value ? Res.get("shared.yes") : Res.get("shared.no"); } - public String getDirectionBothSides(Offer.Direction direction, String currencyCode) { + public String getDirectionBothSides(OfferPayload.Direction direction, String currencyCode) { if (CurrencyUtil.isFiatCurrency(currencyCode)) { currencyCode = "BTC"; - return direction == Offer.Direction.BUY ? + return direction == OfferPayload.Direction.BUY ? Res.get("formatter.makerTaker", currencyCode, Res.get("shared.buyer"), currencyCode, Res.get("shared.seller")) : Res.get("formatter.makerTaker", currencyCode, Res.get("shared.seller"), currencyCode, Res.get("shared.buyer")); } else { String code = currencyCode; - return direction == Offer.Direction.SELL ? + return direction == OfferPayload.Direction.SELL ? Res.get("formatter.makerTaker", code, Res.get("shared.buyer"), code, Res.get("shared.seller")) : Res.get("formatter.makerTaker", code, Res.get("shared.seller"), code, Res.get("shared.buyer")); } @@ -568,29 +569,29 @@ public class BSFormatter { } } - public String getDirectionForTakeOffer(Offer.Direction direction, String currencyCode) { + public String getDirectionForTakeOffer(OfferPayload.Direction direction, String currencyCode) { if (CurrencyUtil.isFiatCurrency(currencyCode)) { String btc = "BTC"; - return direction == Offer.Direction.BUY ? + return direction == OfferPayload.Direction.BUY ? Res.get("formatter.youAre", Res.get("shared.selling"), btc, Res.get("shared.buying"), currencyCode) : Res.get("formatter.youAre", Res.get("shared.buying"), btc, Res.get("shared.selling"), currencyCode); } else { String btc = "BTC"; - return direction == Offer.Direction.SELL ? + return direction == OfferPayload.Direction.SELL ? Res.get("formatter.youAre", Res.get("shared.selling"), currencyCode, Res.get("shared.buying"), btc) : Res.get("formatter.youAre", Res.get("shared.buying"), currencyCode, Res.get("shared.selling"), btc); } } - public String getOfferDirectionForCreateOffer(Offer.Direction direction, String currencyCode) { + public String getOfferDirectionForCreateOffer(OfferPayload.Direction direction, String currencyCode) { if (CurrencyUtil.isFiatCurrency(currencyCode)) { String btc = "BTC"; - return direction == Offer.Direction.BUY ? + return direction == OfferPayload.Direction.BUY ? Res.get("formatter.youAreCreatingAnOffer.fiat", Res.get("shared.buy"), btc) : Res.get("formatter.youAreCreatingAnOffer.fiat", Res.get("shared.sell"), btc); } else { String btc = "BTC"; - return direction == Offer.Direction.SELL ? + return direction == OfferPayload.Direction.SELL ? Res.get("formatter.youAreCreatingAnOffer.altcoin", Res.get("shared.buy"), currencyCode, Res.get("shared.selling"), btc) : Res.get("formatter.youAreCreatingAnOffer.altcoin", Res.get("shared.sell"), currencyCode, Res.get("shared.buying"), btc); } @@ -659,7 +660,7 @@ public class BSFormatter { } public String getCurrencyNameAndCurrencyPair(String currencyCode) { - return CurrencyUtil.getNameByCode(currencyCode) + " (" + getCurrencyPair(currencyCode) + ")"; + return CurrencyUtil.getNameByCode(currencyCode, Preferences.getDefaultLocale()) + " (" + getCurrencyPair(currencyCode) + ")"; } public String getPriceWithCurrencyCode(String currencyCode) { diff --git a/gui/src/main/java/io/bisq/gui/util/CurrencyListItem.java b/gui/src/main/java/io/bisq/gui/util/CurrencyListItem.java index f1f1d9f7cb..5989119606 100644 --- a/gui/src/main/java/io/bisq/gui/util/CurrencyListItem.java +++ b/gui/src/main/java/io/bisq/gui/util/CurrencyListItem.java @@ -17,7 +17,7 @@ package io.bisq.gui.util; -import io.bisq.messages.locale.TradeCurrency; +import io.bisq.locale.TradeCurrency; public class CurrencyListItem { public final TradeCurrency tradeCurrency; diff --git a/gui/src/main/java/io/bisq/gui/util/GUIUtil.java b/gui/src/main/java/io/bisq/gui/util/GUIUtil.java index 30212bb7a6..550b6284f3 100644 --- a/gui/src/main/java/io/bisq/gui/util/GUIUtil.java +++ b/gui/src/main/java/io/bisq/gui/util/GUIUtil.java @@ -27,9 +27,9 @@ import io.bisq.common.util.Utilities; import io.bisq.gui.components.indicator.TxConfidenceIndicator; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.locale.Res; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; -import io.bisq.messages.user.Preferences; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.TradeCurrency; +import io.bisq.user.Preferences; import io.bisq.payment.PaymentAccount; import io.bisq.storage.Storage; import io.bisq.user.User; diff --git a/gui/src/main/java/io/bisq/gui/util/ImageUtil.java b/gui/src/main/java/io/bisq/gui/util/ImageUtil.java index c30d0aefb7..298bda4d7a 100644 --- a/gui/src/main/java/io/bisq/gui/util/ImageUtil.java +++ b/gui/src/main/java/io/bisq/gui/util/ImageUtil.java @@ -18,7 +18,7 @@ package io.bisq.gui.util; import com.sun.javafx.tk.quantum.QuantumToolkit; -import io.bisq.messages.locale.Country; +import io.bisq.locale.Country; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import org.slf4j.Logger; diff --git a/gui/src/main/java/io/bisq/gui/util/Transitions.java b/gui/src/main/java/io/bisq/gui/util/Transitions.java index f6875cb727..393cd6e363 100644 --- a/gui/src/main/java/io/bisq/gui/util/Transitions.java +++ b/gui/src/main/java/io/bisq/gui/util/Transitions.java @@ -18,7 +18,7 @@ package io.bisq.gui.util; import io.bisq.common.UserThread; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import javafx.animation.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; diff --git a/gui/src/main/java/io/bisq/gui/util/validation/AccountNrValidator.java b/gui/src/main/java/io/bisq/gui/util/validation/AccountNrValidator.java index 473e3c2b6d..0262ea16a5 100644 --- a/gui/src/main/java/io/bisq/gui/util/validation/AccountNrValidator.java +++ b/gui/src/main/java/io/bisq/gui/util/validation/AccountNrValidator.java @@ -19,7 +19,7 @@ package io.bisq.gui.util.validation; import io.bisq.locale.Res; -import io.bisq.messages.locale.BankUtil; +import io.bisq.locale.BankUtil; import org.apache.commons.lang3.StringUtils; public final class AccountNrValidator extends BankValidator { diff --git a/gui/src/main/java/io/bisq/gui/util/validation/BankIdValidator.java b/gui/src/main/java/io/bisq/gui/util/validation/BankIdValidator.java index f87cbd03b5..ea73de5ac7 100644 --- a/gui/src/main/java/io/bisq/gui/util/validation/BankIdValidator.java +++ b/gui/src/main/java/io/bisq/gui/util/validation/BankIdValidator.java @@ -19,7 +19,7 @@ package io.bisq.gui.util.validation; import io.bisq.locale.Res; -import io.bisq.messages.locale.BankUtil; +import io.bisq.locale.BankUtil; public final class BankIdValidator extends BankValidator { public BankIdValidator(String countryCode) { diff --git a/gui/src/main/java/io/bisq/gui/util/validation/BranchIdValidator.java b/gui/src/main/java/io/bisq/gui/util/validation/BranchIdValidator.java index c4023e4852..ae4fe85c60 100644 --- a/gui/src/main/java/io/bisq/gui/util/validation/BranchIdValidator.java +++ b/gui/src/main/java/io/bisq/gui/util/validation/BranchIdValidator.java @@ -19,7 +19,7 @@ package io.bisq.gui.util.validation; import io.bisq.locale.Res; -import io.bisq.messages.locale.BankUtil; +import io.bisq.locale.BankUtil; public final class BranchIdValidator extends BankValidator { diff --git a/gui/src/main/java/io/bisq/gui/util/validation/BtcAddressValidator.java b/gui/src/main/java/io/bisq/gui/util/validation/BtcAddressValidator.java index 39da9e12ce..786ff10011 100644 --- a/gui/src/main/java/io/bisq/gui/util/validation/BtcAddressValidator.java +++ b/gui/src/main/java/io/bisq/gui/util/validation/BtcAddressValidator.java @@ -18,7 +18,7 @@ package io.bisq.gui.util.validation; import io.bisq.locale.Res; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import org.bitcoinj.core.Address; import org.bitcoinj.core.AddressFormatException; diff --git a/gui/src/main/java/io/bisq/gui/util/validation/SecurityDepositValidator.java b/gui/src/main/java/io/bisq/gui/util/validation/SecurityDepositValidator.java index a8b4249ca7..f666bb0ddf 100644 --- a/gui/src/main/java/io/bisq/gui/util/validation/SecurityDepositValidator.java +++ b/gui/src/main/java/io/bisq/gui/util/validation/SecurityDepositValidator.java @@ -19,7 +19,7 @@ package io.bisq.gui.util.validation; import io.bisq.gui.util.BSFormatter; import io.bisq.locale.Res; -import io.bisq.messages.btc.Restrictions; +import io.bisq.network_messages.btc.Restrictions; import org.bitcoinj.core.Coin; import javax.inject.Inject; diff --git a/gui/src/test/java/io/bisq/gui/main/market/trades/TradesChartsViewModelTest.java b/gui/src/test/java/io/bisq/gui/main/market/trades/TradesChartsViewModelTest.java index 78f09b0234..22e10651c6 100644 --- a/gui/src/test/java/io/bisq/gui/main/market/trades/TradesChartsViewModelTest.java +++ b/gui/src/test/java/io/bisq/gui/main/market/trades/TradesChartsViewModelTest.java @@ -1,8 +1,8 @@ package io.bisq.gui.main.market.trades; import io.bisq.gui.main.market.trades.charts.CandleData; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; import org.bitcoinj.core.Coin; import org.bitcoinj.utils.Fiat; import org.junit.Ignore; @@ -37,7 +37,7 @@ public class TradesChartsViewModelTest { Set set = new HashSet<>(); final Date now = new Date(); - Offer offer = new Offer(null, + OfferPayload offer = new OfferPayload(null, null, null, null, @@ -56,8 +56,6 @@ public class TradesChartsViewModelTest { null, null, null, - null, - null, 0, 0, diff --git a/gui/src/test/java/io/bisq/gui/main/offer/offerbook/OfferBookViewModelTest.java b/gui/src/test/java/io/bisq/gui/main/offer/offerbook/OfferBookViewModelTest.java index e1b600b099..e0e4cd39b0 100644 --- a/gui/src/test/java/io/bisq/gui/main/offer/offerbook/OfferBookViewModelTest.java +++ b/gui/src/test/java/io/bisq/gui/main/offer/offerbook/OfferBookViewModelTest.java @@ -1,14 +1,15 @@ package io.bisq.gui.main.offer.offerbook; -import io.bisq.messages.locale.Country; -import io.bisq.messages.locale.CryptoCurrency; -import io.bisq.messages.locale.FiatCurrency; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.payment.payload.NationalBankAccountContractData; -import io.bisq.messages.payment.payload.SameBankAccountContractData; -import io.bisq.messages.payment.payload.SepaAccountContractData; -import io.bisq.messages.payment.payload.SpecificBanksAccountContractData; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.locale.Country; +import io.bisq.locale.CryptoCurrency; +import io.bisq.locale.FiatCurrency; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payment.payload.NationalBankAccountContractData; +import io.bisq.network_messages.payment.payload.SameBankAccountContractData; +import io.bisq.network_messages.payment.payload.SepaAccountContractData; +import io.bisq.network_messages.payment.payload.SpecificBanksAccountContractData; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.payment.*; import org.junit.Test; import org.slf4j.Logger; @@ -266,7 +267,7 @@ public class OfferBookViewModelTest { private Offer getOffer(String tradeCurrencyCode, String paymentMethodId, String countryCode, ArrayList acceptedCountryCodes, String bankId, ArrayList acceptedBanks) { - return new Offer(null, + return new Offer( new OfferPayload(null, null, null, null, @@ -285,8 +286,6 @@ public class OfferBookViewModelTest { acceptedCountryCodes, bankId, acceptedBanks, - null, - null, 0, 0, @@ -300,6 +299,6 @@ public class OfferBookViewModelTest { 0, false, null, - null); + null)); } } diff --git a/headless/src/main/java/io/bisq/headless/Headless.java b/headless/src/main/java/io/bisq/headless/Headless.java index 5253930efa..0acce67589 100644 --- a/headless/src/main/java/io/bisq/headless/Headless.java +++ b/headless/src/main/java/io/bisq/headless/Headless.java @@ -16,7 +16,7 @@ import io.bisq.common.UserThread; import io.bisq.common.handlers.ResultHandler; import io.bisq.common.util.LimitedKeyStrengthException; import io.bisq.common.util.Utilities; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.P2PServiceListener; import io.bisq.trade.offer.OfferBookService; import io.bisq.trade.offer.OpenOfferManager; diff --git a/headless/src/main/java/io/bisq/headless/HeadlessModule.java b/headless/src/main/java/io/bisq/headless/HeadlessModule.java index 0d503c6ec6..c1c4e87d44 100644 --- a/headless/src/main/java/io/bisq/headless/HeadlessModule.java +++ b/headless/src/main/java/io/bisq/headless/HeadlessModule.java @@ -24,12 +24,12 @@ import io.bisq.app.BisqEnvironment; import io.bisq.arbitration.ArbitratorModule; import io.bisq.btc.BitcoinModule; import io.bisq.common.Clock; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.KeyStorage; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; import io.bisq.crypto.EncryptionServiceModule; import io.bisq.dao.DaoModule; import io.bisq.filter.FilterModule; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.p2p.P2PModule; import io.bisq.storage.Storage; import io.bisq.trade.TradeModule; diff --git a/jsocks/src/main/java/com/runjva/sourceforge/jsocks/protocol/ProxyMessage.java b/jsocks/src/main/java/com/runjva/sourceforge/jsocks/protocol/ProxyMessage.java index f7796b055e..5e7ab862c3 100644 --- a/jsocks/src/main/java/com/runjva/sourceforge/jsocks/protocol/ProxyMessage.java +++ b/jsocks/src/main/java/com/runjva/sourceforge/jsocks/protocol/ProxyMessage.java @@ -37,7 +37,7 @@ public abstract class ProxyMessage { public String host = null; /** - * User field for SOCKS4 request messages + * User field for SOCKS4 request network_messages */ public String user = null; diff --git a/jsocks/src/main/java/com/runjva/sourceforge/jsocks/server/UserPasswordAuthenticator.java b/jsocks/src/main/java/com/runjva/sourceforge/jsocks/server/UserPasswordAuthenticator.java index 2a69d32e5a..65b65fe204 100644 --- a/jsocks/src/main/java/com/runjva/sourceforge/jsocks/server/UserPasswordAuthenticator.java +++ b/jsocks/src/main/java/com/runjva/sourceforge/jsocks/server/UserPasswordAuthenticator.java @@ -30,7 +30,7 @@ public class UserPasswordAuthenticator extends ServerAuthenticatorBase { final OutputStream out = s.getOutputStream(); if (in.read() != 5) { - return null; // Drop non version 5 messages. + return null; // Drop non version 5 network_messages. } if (!selectSocks5Authentication(in, out, METHOD_ID)) { diff --git a/jtorctl/src/main/java/net/freehaven/tor/control/TorControlConnection.java b/jtorctl/src/main/java/net/freehaven/tor/control/TorControlConnection.java index cba22e0d9f..af9098a7b1 100644 --- a/jtorctl/src/main/java/net/freehaven/tor/control/TorControlConnection.java +++ b/jtorctl/src/main/java/net/freehaven/tor/control/TorControlConnection.java @@ -236,8 +236,8 @@ public class TorControlConnection implements TorControlCommands { /** * Sets w as the PrintWriter for debugging output, - * which writes out all messages passed between Tor and the controller. - * Outgoing messages are preceded by "\>\>" and incoming messages are preceded + * which writes out all network_messages passed between Tor and the controller. + * Outgoing network_messages are preceded by "\>\>" and incoming network_messages are preceded * by "\<\<" */ public void setDebugging(PrintWriter w) { @@ -246,8 +246,8 @@ public class TorControlConnection implements TorControlCommands { /** * Sets s as the PrintStream for debugging output, - * which writes out all messages passed between Tor and the controller. - * Outgoing messages are preceded by "\>\>" and incoming messages are preceded + * which writes out all network_messages passed between Tor and the controller. + * Outgoing network_messages are preceded by "\>\>" and incoming network_messages are preceded * by "\<\<" */ public void setDebugging(PrintStream s) { diff --git a/jtorproxy/src/main/java/io/nucleo/net/Node.java b/jtorproxy/src/main/java/io/nucleo/net/Node.java index ace3557da3..07fec0a10a 100644 --- a/jtorproxy/src/main/java/io/nucleo/net/Node.java +++ b/jtorproxy/src/main/java/io/nucleo/net/Node.java @@ -304,7 +304,7 @@ public class Node { // Here we go log.debug("Incoming Connection ready!"); try { - // TODO: listeners are only added afterwards, so messages can be lost! + // TODO: listeners are only added afterwards, so network_messages can be lost! IncomingConnection incomingConnection = new IncomingConnection(peer, socket, out, objectInputStream); serverConnectListener.onConnect(incomingConnection); } catch (IOException e) { diff --git a/monitor/src/main/java/io/bisq/monitor/Gateway.java b/monitor/src/main/java/io/bisq/monitor/Gateway.java index f38cd7c0c9..4ac818f4b1 100644 --- a/monitor/src/main/java/io/bisq/monitor/Gateway.java +++ b/monitor/src/main/java/io/bisq/monitor/Gateway.java @@ -1,6 +1,6 @@ package io.bisq.monitor; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.p2p.protocol.availability.Offer; import io.bisq.trade.offer.OfferBookService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/monitor/src/main/java/io/bisq/monitor/Monitor.java b/monitor/src/main/java/io/bisq/monitor/Monitor.java index d143c0ef68..2c2d38a88a 100644 --- a/monitor/src/main/java/io/bisq/monitor/Monitor.java +++ b/monitor/src/main/java/io/bisq/monitor/Monitor.java @@ -16,7 +16,7 @@ import io.bisq.common.UserThread; import io.bisq.common.handlers.ResultHandler; import io.bisq.common.util.LimitedKeyStrengthException; import io.bisq.common.util.Utilities; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.storage.P2PService; import io.bisq.p2p.P2PServiceListener; import io.bisq.trade.offer.OfferBookService; import io.bisq.trade.offer.OpenOfferManager; diff --git a/monitor/src/main/java/io/bisq/monitor/MonitorModule.java b/monitor/src/main/java/io/bisq/monitor/MonitorModule.java index 4127bc9770..89bd680abd 100644 --- a/monitor/src/main/java/io/bisq/monitor/MonitorModule.java +++ b/monitor/src/main/java/io/bisq/monitor/MonitorModule.java @@ -24,12 +24,12 @@ import io.bisq.app.BisqEnvironment; import io.bisq.arbitration.ArbitratorModule; import io.bisq.btc.BitcoinModule; import io.bisq.common.Clock; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.KeyStorage; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; import io.bisq.crypto.EncryptionServiceModule; import io.bisq.dao.DaoModule; import io.bisq.filter.FilterModule; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.p2p.P2PModule; import io.bisq.storage.Storage; import io.bisq.trade.TradeModule; diff --git a/network-messages/pom.xml b/network-messages/pom.xml new file mode 100644 index 0000000000..e49f8960c8 --- /dev/null +++ b/network-messages/pom.xml @@ -0,0 +1,61 @@ + + + + parent + io.bisq + 0.5.0.0 + + 4.0.0 + + network-messages + + + + io.bisq + common + ${project.parent.version} + + + com.google.protobuf + protobuf-java + 3.2.0 + + + org.apache.httpcomponents + httpclient + 4.5 + + + commons-logging + commons-logging + + + + + + + + + + + org.xolstice.maven.plugins + protobuf-maven-plugin + 0.5.0 + + /usr/local/bin/protoc + + + + + compile + test-compile + + + + + + + + \ No newline at end of file diff --git a/network-messages/src/main/java/io/bisq/network_messages/AnonymousMessage.java b/network-messages/src/main/java/io/bisq/network_messages/AnonymousMessage.java new file mode 100644 index 0000000000..5d5d108e84 --- /dev/null +++ b/network-messages/src/main/java/io/bisq/network_messages/AnonymousMessage.java @@ -0,0 +1,4 @@ +package io.bisq.network_messages; + +public interface AnonymousMessage extends Message { +} diff --git a/network/src/main/java/io/bisq/p2p/network/messages/CloseConnectionMessage.java b/network-messages/src/main/java/io/bisq/network_messages/CloseConnectionMessage.java similarity index 95% rename from network/src/main/java/io/bisq/p2p/network/messages/CloseConnectionMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/CloseConnectionMessage.java index 7aeb0690bd..15f558a421 100644 --- a/network/src/main/java/io/bisq/p2p/network/messages/CloseConnectionMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/CloseConnectionMessage.java @@ -1,8 +1,7 @@ -package io.bisq.p2p.network.messages; +package io.bisq.network_messages; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.Message; public final class CloseConnectionMessage implements Message { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/p2p/messaging/DecryptedDirectMessageListener.java b/network-messages/src/main/java/io/bisq/network_messages/DecryptedDirectMessageListener.java similarity index 58% rename from network/src/main/java/io/bisq/p2p/messaging/DecryptedDirectMessageListener.java rename to network-messages/src/main/java/io/bisq/network_messages/DecryptedDirectMessageListener.java index dc77a42cc0..ccdd6648d8 100644 --- a/network/src/main/java/io/bisq/p2p/messaging/DecryptedDirectMessageListener.java +++ b/network-messages/src/main/java/io/bisq/network_messages/DecryptedDirectMessageListener.java @@ -1,7 +1,4 @@ -package io.bisq.p2p.messaging; - -import io.bisq.crypto.DecryptedMsgWithPubKey; -import io.bisq.p2p.NodeAddress; +package io.bisq.network_messages; public interface DecryptedDirectMessageListener { diff --git a/network/src/main/java/io/bisq/crypto/DecryptedMsgWithPubKey.java b/network-messages/src/main/java/io/bisq/network_messages/DecryptedMsgWithPubKey.java similarity index 97% rename from network/src/main/java/io/bisq/crypto/DecryptedMsgWithPubKey.java rename to network-messages/src/main/java/io/bisq/network_messages/DecryptedMsgWithPubKey.java index d90d53d19d..3e6034274d 100644 --- a/network/src/main/java/io/bisq/crypto/DecryptedMsgWithPubKey.java +++ b/network-messages/src/main/java/io/bisq/network_messages/DecryptedMsgWithPubKey.java @@ -15,11 +15,10 @@ * along with bisq. If not, see . */ -package io.bisq.crypto; +package io.bisq.network_messages; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; -import io.bisq.messages.Message; import java.security.PublicKey; diff --git a/common/src/main/java/io/bisq/messages/Message.java b/network-messages/src/main/java/io/bisq/network_messages/Message.java similarity index 85% rename from common/src/main/java/io/bisq/messages/Message.java rename to network-messages/src/main/java/io/bisq/network_messages/Message.java index aec31721cd..08ffb92018 100644 --- a/common/src/main/java/io/bisq/messages/Message.java +++ b/network-messages/src/main/java/io/bisq/network_messages/Message.java @@ -1,4 +1,4 @@ -package io.bisq.messages; +package io.bisq.network_messages; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/p2p/NodeAddress.java b/network-messages/src/main/java/io/bisq/network_messages/NodeAddress.java similarity index 92% rename from network/src/main/java/io/bisq/p2p/NodeAddress.java rename to network-messages/src/main/java/io/bisq/network_messages/NodeAddress.java index c3c9a1a1e7..c63f605628 100644 --- a/network/src/main/java/io/bisq/p2p/NodeAddress.java +++ b/network-messages/src/main/java/io/bisq/network_messages/NodeAddress.java @@ -1,9 +1,9 @@ -package io.bisq.p2p; +package io.bisq.network_messages; import io.bisq.app.Version; -import io.bisq.common.crypto.Hash; +import io.bisq.network_messages.crypto.Hash; import io.bisq.common.persistance.Persistable; -import io.bisq.common.wire.Payload; +import io.bisq.network_messages.wire.Payload; import io.bisq.common.wire.proto.Messages; import lombok.Getter; @@ -34,7 +34,7 @@ public final class NodeAddress implements Persistable, Payload { return hostName + ":" + port; } - // We use just a few chars from the full address to blur the potential receiver for sent messages + // We use just a few chars from the full address to blur the potential receiver for sent network_messages public byte[] getAddressPrefixHash() { if (addressPrefixHash == null) addressPrefixHash = Hash.getHash(getFullAddress().substring(0, Math.min(2, getFullAddress().length()))); diff --git a/network/src/main/java/io/bisq/p2p/network/messages/SendersNodeAddressMessage.java b/network-messages/src/main/java/io/bisq/network_messages/SendersNodeAddressMessage.java similarity index 50% rename from network/src/main/java/io/bisq/p2p/network/messages/SendersNodeAddressMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/SendersNodeAddressMessage.java index dc69d0f69e..07c7494afb 100644 --- a/network/src/main/java/io/bisq/p2p/network/messages/SendersNodeAddressMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/SendersNodeAddressMessage.java @@ -1,7 +1,5 @@ -package io.bisq.p2p.network.messages; +package io.bisq.network_messages; -import io.bisq.messages.Message; -import io.bisq.p2p.NodeAddress; public interface SendersNodeAddressMessage extends Message { NodeAddress getSenderNodeAddress(); diff --git a/common/src/main/java/io/bisq/messages/ToProtoBuffer.java b/network-messages/src/main/java/io/bisq/network_messages/ToProtoBuffer.java similarity index 80% rename from common/src/main/java/io/bisq/messages/ToProtoBuffer.java rename to network-messages/src/main/java/io/bisq/network_messages/ToProtoBuffer.java index ddbd58de62..9e27544c30 100644 --- a/common/src/main/java/io/bisq/messages/ToProtoBuffer.java +++ b/network-messages/src/main/java/io/bisq/network_messages/ToProtoBuffer.java @@ -1,4 +1,4 @@ -package io.bisq.messages; +package io.bisq.network_messages; import com.google.protobuf.Message; diff --git a/network/src/main/java/io/bisq/messages/alert/Alert.java b/network-messages/src/main/java/io/bisq/network_messages/alert/Alert.java similarity index 98% rename from network/src/main/java/io/bisq/messages/alert/Alert.java rename to network-messages/src/main/java/io/bisq/network_messages/alert/Alert.java index b4084be7db..34a8a2ee6f 100644 --- a/network/src/main/java/io/bisq/messages/alert/Alert.java +++ b/network-messages/src/main/java/io/bisq/network_messages/alert/Alert.java @@ -15,14 +15,14 @@ * along with bisq. If not, see . */ -package io.bisq.messages.alert; +package io.bisq.network_messages.alert; import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.ByteString; import io.bisq.app.Version; import io.bisq.common.crypto.Sig; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.storage.payload.StoragePayload; +import io.bisq.network_messages.payload.StoragePayload; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/alert/PrivateNotification.java b/network-messages/src/main/java/io/bisq/network_messages/alert/PrivateNotification.java similarity index 98% rename from network/src/main/java/io/bisq/messages/alert/PrivateNotification.java rename to network-messages/src/main/java/io/bisq/network_messages/alert/PrivateNotification.java index 964d9da090..2bf837c47c 100644 --- a/network/src/main/java/io/bisq/messages/alert/PrivateNotification.java +++ b/network-messages/src/main/java/io/bisq/network_messages/alert/PrivateNotification.java @@ -15,12 +15,12 @@ * along with bisq. If not, see . */ -package io.bisq.messages.alert; +package io.bisq.network_messages.alert; import com.google.protobuf.ByteString; import io.bisq.app.Version; import io.bisq.common.crypto.Sig; -import io.bisq.common.wire.Payload; +import io.bisq.network_messages.wire.Payload; import io.bisq.common.wire.proto.Messages; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/alert/PrivateNotificationMessage.java b/network-messages/src/main/java/io/bisq/network_messages/alert/PrivateNotificationMessage.java similarity index 93% rename from network/src/main/java/io/bisq/messages/alert/PrivateNotificationMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/alert/PrivateNotificationMessage.java index 1b86b17133..9ff6f4f0c1 100644 --- a/network/src/main/java/io/bisq/messages/alert/PrivateNotificationMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/alert/PrivateNotificationMessage.java @@ -1,10 +1,10 @@ -package io.bisq.messages.alert; +package io.bisq.network_messages.alert; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.util.ProtoBufferUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/arbitration/Arbitrator.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/Arbitrator.java similarity index 97% rename from network/src/main/java/io/bisq/messages/arbitration/Arbitrator.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/Arbitrator.java index fc4c8ee3af..2e5a97ee08 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/Arbitrator.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/Arbitrator.java @@ -15,14 +15,14 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.crypto.PubKeyRing; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.storage.payload.StoragePayload; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.payload.StoragePayload; import java.security.PublicKey; import java.util.Arrays; diff --git a/network/src/main/java/io/bisq/messages/arbitration/Dispute.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/Dispute.java similarity index 98% rename from network/src/main/java/io/bisq/messages/arbitration/Dispute.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/Dispute.java index 1a4b53ec88..b34a6dddf8 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/Dispute.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/Dispute.java @@ -15,15 +15,15 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.crypto.PubKeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; import io.bisq.common.util.Utilities; -import io.bisq.common.wire.Payload; +import io.bisq.network_messages.wire.Payload; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.trade.payload.Contract; +import io.bisq.network_messages.trade.payload.Contract; import io.bisq.storage.Storage; import javafx.beans.property.*; import javafx.collections.FXCollections; diff --git a/network/src/main/java/io/bisq/messages/arbitration/DisputeCommunicationMessage.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeCommunicationMessage.java similarity index 97% rename from network/src/main/java/io/bisq/messages/arbitration/DisputeCommunicationMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeCommunicationMessage.java index ca886e9198..5793dc708b 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/DisputeCommunicationMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeCommunicationMessage.java @@ -15,13 +15,13 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.arbitration.payload.Attachment; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.arbitration.payload.Attachment; +import io.bisq.network_messages.util.ProtoBufferUtils; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import org.slf4j.Logger; diff --git a/network/src/main/java/io/bisq/messages/arbitration/DisputeList.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeList.java similarity index 98% rename from network/src/main/java/io/bisq/messages/arbitration/DisputeList.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeList.java index 6f6abae90f..890f1d4e67 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/DisputeList.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeList.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; diff --git a/network/src/main/java/io/bisq/messages/arbitration/DisputeMessage.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeMessage.java similarity index 92% rename from network/src/main/java/io/bisq/messages/arbitration/DisputeMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeMessage.java index 977fdef706..8322c92dfe 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/DisputeMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeMessage.java @@ -15,10 +15,10 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import io.bisq.app.Version; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; import java.util.UUID; diff --git a/network/src/main/java/io/bisq/messages/arbitration/DisputeResult.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeResult.java similarity index 99% rename from network/src/main/java/io/bisq/messages/arbitration/DisputeResult.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeResult.java index 041ba79010..ef6e39de90 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/DisputeResult.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeResult.java @@ -15,11 +15,11 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.wire.Payload; +import io.bisq.network_messages.wire.Payload; import io.bisq.common.wire.proto.Messages; import javafx.beans.property.*; import lombok.EqualsAndHashCode; diff --git a/network/src/main/java/io/bisq/messages/arbitration/DisputeResultMessage.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeResultMessage.java similarity index 94% rename from network/src/main/java/io/bisq/messages/arbitration/DisputeResultMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeResultMessage.java index a73b786d2d..818cd20ecf 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/DisputeResultMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/DisputeResultMessage.java @@ -15,12 +15,12 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.util.ProtoBufferUtils; public final class DisputeResultMessage extends DisputeMessage { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/messages/arbitration/OpenNewDisputeMessage.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/OpenNewDisputeMessage.java similarity index 94% rename from network/src/main/java/io/bisq/messages/arbitration/OpenNewDisputeMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/OpenNewDisputeMessage.java index b4afdbfe05..80203e11fd 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/OpenNewDisputeMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/OpenNewDisputeMessage.java @@ -15,12 +15,12 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.util.ProtoBufferUtils; public final class OpenNewDisputeMessage extends DisputeMessage { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/messages/arbitration/PeerOpenedDisputeMessage.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/PeerOpenedDisputeMessage.java similarity index 94% rename from network/src/main/java/io/bisq/messages/arbitration/PeerOpenedDisputeMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/PeerOpenedDisputeMessage.java index ebc2da73fd..382d7e22cd 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/PeerOpenedDisputeMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/PeerOpenedDisputeMessage.java @@ -15,12 +15,12 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.util.ProtoBufferUtils; public final class PeerOpenedDisputeMessage extends DisputeMessage { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/messages/arbitration/PeerPublishedPayoutTxMessage.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/PeerPublishedPayoutTxMessage.java similarity index 95% rename from network/src/main/java/io/bisq/messages/arbitration/PeerPublishedPayoutTxMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/PeerPublishedPayoutTxMessage.java index fdd3cad059..da131e0643 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/PeerPublishedPayoutTxMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/PeerPublishedPayoutTxMessage.java @@ -15,13 +15,13 @@ * along with bisq. If not, see . */ -package io.bisq.messages.arbitration; +package io.bisq.network_messages.arbitration; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.util.ProtoBufferUtils; import java.util.Arrays; diff --git a/network/src/main/java/io/bisq/messages/arbitration/payload/Attachment.java b/network-messages/src/main/java/io/bisq/network_messages/arbitration/payload/Attachment.java similarity index 94% rename from network/src/main/java/io/bisq/messages/arbitration/payload/Attachment.java rename to network-messages/src/main/java/io/bisq/network_messages/arbitration/payload/Attachment.java index 1afd55c203..b949ec5783 100644 --- a/network/src/main/java/io/bisq/messages/arbitration/payload/Attachment.java +++ b/network-messages/src/main/java/io/bisq/network_messages/arbitration/payload/Attachment.java @@ -1,8 +1,8 @@ -package io.bisq.messages.arbitration.payload; +package io.bisq.network_messages.arbitration.payload; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.wire.Payload; +import io.bisq.network_messages.wire.Payload; import io.bisq.common.wire.proto.Messages; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/availability/AvailabilityResult.java b/network-messages/src/main/java/io/bisq/network_messages/availability/AvailabilityResult.java similarity index 79% rename from network/src/main/java/io/bisq/messages/availability/AvailabilityResult.java rename to network-messages/src/main/java/io/bisq/network_messages/availability/AvailabilityResult.java index aabde16a78..f5cebbedfa 100644 --- a/network/src/main/java/io/bisq/messages/availability/AvailabilityResult.java +++ b/network-messages/src/main/java/io/bisq/network_messages/availability/AvailabilityResult.java @@ -1,4 +1,4 @@ -package io.bisq.messages.availability; +package io.bisq.network_messages.availability; public enum AvailabilityResult { UNKNOWN_FAILURE, diff --git a/network/src/main/java/io/bisq/messages/availability/OfferAvailabilityRequest.java b/network-messages/src/main/java/io/bisq/network_messages/availability/OfferAvailabilityRequest.java similarity index 93% rename from network/src/main/java/io/bisq/messages/availability/OfferAvailabilityRequest.java rename to network-messages/src/main/java/io/bisq/network_messages/availability/OfferAvailabilityRequest.java index 2681d6da69..b325839f95 100644 --- a/network/src/main/java/io/bisq/messages/availability/OfferAvailabilityRequest.java +++ b/network-messages/src/main/java/io/bisq/network_messages/availability/OfferAvailabilityRequest.java @@ -15,13 +15,13 @@ * along with bisq. If not, see . */ -package io.bisq.messages.availability; +package io.bisq.network_messages.availability; import io.bisq.app.Capabilities; import io.bisq.app.Version; -import io.bisq.common.crypto.PubKeyRing; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.messaging.SupportedCapabilitiesMessage; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.p2p.messaging.SupportedCapabilitiesMessage; import javax.annotation.Nullable; import java.util.ArrayList; diff --git a/network/src/main/java/io/bisq/messages/availability/OfferAvailabilityResponse.java b/network-messages/src/main/java/io/bisq/network_messages/availability/OfferAvailabilityResponse.java similarity index 93% rename from network/src/main/java/io/bisq/messages/availability/OfferAvailabilityResponse.java rename to network-messages/src/main/java/io/bisq/network_messages/availability/OfferAvailabilityResponse.java index 6e25a51a52..43466409fa 100644 --- a/network/src/main/java/io/bisq/messages/availability/OfferAvailabilityResponse.java +++ b/network-messages/src/main/java/io/bisq/network_messages/availability/OfferAvailabilityResponse.java @@ -15,14 +15,14 @@ * along with bisq. If not, see . */ -package io.bisq.messages.availability; +package io.bisq.network_messages.availability; import io.bisq.app.Capabilities; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.messaging.SupportedCapabilitiesMessage; +import io.bisq.network_messages.p2p.messaging.SupportedCapabilitiesMessage; +import io.bisq.network_messages.util.ProtoBufferUtils; import javax.annotation.Nullable; import java.util.ArrayList; diff --git a/network/src/main/java/io/bisq/messages/availability/OfferMessage.java b/network-messages/src/main/java/io/bisq/network_messages/availability/OfferMessage.java similarity index 93% rename from network/src/main/java/io/bisq/messages/availability/OfferMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/availability/OfferMessage.java index ef2990fa98..f9cacd5bda 100644 --- a/network/src/main/java/io/bisq/messages/availability/OfferMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/availability/OfferMessage.java @@ -15,10 +15,10 @@ * along with bisq. If not, see . */ -package io.bisq.messages.availability; +package io.bisq.network_messages.availability; import io.bisq.app.Version; -import io.bisq.p2p.messaging.DirectMessage; +import io.bisq.network_messages.p2p.messaging.DirectMessage; import javax.annotation.concurrent.Immutable; diff --git a/network/src/main/java/io/bisq/messages/btc/BitcoinNetwork.java b/network-messages/src/main/java/io/bisq/network_messages/btc/BitcoinNetwork.java similarity index 97% rename from network/src/main/java/io/bisq/messages/btc/BitcoinNetwork.java rename to network-messages/src/main/java/io/bisq/network_messages/btc/BitcoinNetwork.java index af700217c8..644b3c9a83 100644 --- a/network/src/main/java/io/bisq/messages/btc/BitcoinNetwork.java +++ b/network-messages/src/main/java/io/bisq/network_messages/btc/BitcoinNetwork.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.btc; +package io.bisq.network_messages.btc; import org.bitcoinj.core.NetworkParameters; import org.bitcoinj.params.MainNetParams; diff --git a/network/src/main/java/io/bisq/messages/btc/BtcOptionKeys.java b/network-messages/src/main/java/io/bisq/network_messages/btc/BtcOptionKeys.java similarity index 89% rename from network/src/main/java/io/bisq/messages/btc/BtcOptionKeys.java rename to network-messages/src/main/java/io/bisq/network_messages/btc/BtcOptionKeys.java index 1a539917e2..d7ee0c44be 100644 --- a/network/src/main/java/io/bisq/messages/btc/BtcOptionKeys.java +++ b/network-messages/src/main/java/io/bisq/network_messages/btc/BtcOptionKeys.java @@ -1,4 +1,4 @@ -package io.bisq.messages.btc; +package io.bisq.network_messages.btc; public class BtcOptionKeys { public static final String BTC_NETWORK = "bitcoinNetwork"; diff --git a/network/src/main/java/io/bisq/messages/btc/Restrictions.java b/network-messages/src/main/java/io/bisq/network_messages/btc/Restrictions.java similarity index 97% rename from network/src/main/java/io/bisq/messages/btc/Restrictions.java rename to network-messages/src/main/java/io/bisq/network_messages/btc/Restrictions.java index 1096dbf1b0..186eedbeb3 100644 --- a/network/src/main/java/io/bisq/messages/btc/Restrictions.java +++ b/network-messages/src/main/java/io/bisq/network_messages/btc/Restrictions.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.btc; +package io.bisq.network_messages.btc; import org.bitcoinj.core.Coin; import org.bitcoinj.core.Transaction; diff --git a/network/src/main/java/io/bisq/messages/btc/UserAgent.java b/network-messages/src/main/java/io/bisq/network_messages/btc/UserAgent.java similarity index 97% rename from network/src/main/java/io/bisq/messages/btc/UserAgent.java rename to network-messages/src/main/java/io/bisq/network_messages/btc/UserAgent.java index 3912c31f98..76af4a8ca7 100644 --- a/network/src/main/java/io/bisq/messages/btc/UserAgent.java +++ b/network-messages/src/main/java/io/bisq/network_messages/btc/UserAgent.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.btc; +package io.bisq.network_messages.btc; import javax.inject.Inject; import javax.inject.Named; diff --git a/network/src/main/java/io/bisq/messages/btc/data/RawTransactionInput.java b/network-messages/src/main/java/io/bisq/network_messages/btc/data/RawTransactionInput.java similarity index 96% rename from network/src/main/java/io/bisq/messages/btc/data/RawTransactionInput.java rename to network-messages/src/main/java/io/bisq/network_messages/btc/data/RawTransactionInput.java index b557327a8b..d0f2d19f53 100644 --- a/network/src/main/java/io/bisq/messages/btc/data/RawTransactionInput.java +++ b/network-messages/src/main/java/io/bisq/network_messages/btc/data/RawTransactionInput.java @@ -15,11 +15,11 @@ * along with bisq. If not, see . */ -package io.bisq.messages.btc.data; +package io.bisq.network_messages.btc.data; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.wire.Payload; +import io.bisq.network_messages.wire.Payload; import io.bisq.common.wire.proto.Messages; import java.util.Arrays; diff --git a/common/src/main/java/io/bisq/common/crypto/DecryptedDataTuple.java b/network-messages/src/main/java/io/bisq/network_messages/crypto/DecryptedDataTuple.java similarity index 95% rename from common/src/main/java/io/bisq/common/crypto/DecryptedDataTuple.java rename to network-messages/src/main/java/io/bisq/network_messages/crypto/DecryptedDataTuple.java index fa587ecca0..4018cd0529 100644 --- a/common/src/main/java/io/bisq/common/crypto/DecryptedDataTuple.java +++ b/network-messages/src/main/java/io/bisq/network_messages/crypto/DecryptedDataTuple.java @@ -15,9 +15,9 @@ * along with bisq. If not, see . */ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; import java.security.PublicKey; diff --git a/common/src/main/java/io/bisq/common/crypto/Encryption.java b/network-messages/src/main/java/io/bisq/network_messages/crypto/Encryption.java similarity index 97% rename from common/src/main/java/io/bisq/common/crypto/Encryption.java rename to network-messages/src/main/java/io/bisq/network_messages/crypto/Encryption.java index 157cc06b67..cc397a00ca 100644 --- a/common/src/main/java/io/bisq/common/crypto/Encryption.java +++ b/network-messages/src/main/java/io/bisq/network_messages/crypto/Encryption.java @@ -15,12 +15,14 @@ * along with bisq. If not, see . */ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; -import io.bisq.messages.Message; +import io.bisq.common.crypto.Sig; +import io.bisq.network_messages.Message; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.spongycastle.util.encoders.Hex; +import io.bisq.common.crypto.CryptoException; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; @@ -186,7 +188,7 @@ public class Encryption { cipher.init(Cipher.UNWRAP_MODE, privateKey); return (SecretKey) cipher.unwrap(encryptedSecretKey, "AES", Cipher.SECRET_KEY); } catch (Throwable e) { - // errors when trying to decrypt foreign messages are normal + // errors when trying to decrypt foreign network_messages are normal throw new CryptoException(e); } } diff --git a/common/src/main/java/io/bisq/common/crypto/Hash.java b/network-messages/src/main/java/io/bisq/network_messages/crypto/Hash.java similarity index 96% rename from common/src/main/java/io/bisq/common/crypto/Hash.java rename to network-messages/src/main/java/io/bisq/network_messages/crypto/Hash.java index 64ef6b42ba..d67d8970d6 100644 --- a/common/src/main/java/io/bisq/common/crypto/Hash.java +++ b/network-messages/src/main/java/io/bisq/network_messages/crypto/Hash.java @@ -15,10 +15,10 @@ * along with bisq. If not, see . */ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; import com.google.common.base.Charsets; -import io.bisq.messages.ToProtoBuffer; +import io.bisq.network_messages.ToProtoBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.spongycastle.util.encoders.Hex; diff --git a/common/src/main/java/io/bisq/common/crypto/KeyRing.java b/network-messages/src/main/java/io/bisq/network_messages/crypto/KeyRing.java similarity index 97% rename from common/src/main/java/io/bisq/common/crypto/KeyRing.java rename to network-messages/src/main/java/io/bisq/network_messages/crypto/KeyRing.java index 614a66f50e..ae0544702a 100644 --- a/common/src/main/java/io/bisq/common/crypto/KeyRing.java +++ b/network-messages/src/main/java/io/bisq/network_messages/crypto/KeyRing.java @@ -15,7 +15,9 @@ * along with bisq. If not, see . */ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; + +import io.bisq.common.crypto.Sig; import javax.inject.Inject; import java.security.KeyPair; diff --git a/common/src/main/java/io/bisq/common/crypto/KeyStorage.java b/network-messages/src/main/java/io/bisq/network_messages/crypto/KeyStorage.java similarity index 98% rename from common/src/main/java/io/bisq/common/crypto/KeyStorage.java rename to network-messages/src/main/java/io/bisq/network_messages/crypto/KeyStorage.java index 311f522f92..a4df27a6ed 100644 --- a/common/src/main/java/io/bisq/common/crypto/KeyStorage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/crypto/KeyStorage.java @@ -15,9 +15,10 @@ * along with bisq. If not, see . */ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; import com.google.inject.Inject; +import io.bisq.common.crypto.Sig; import io.bisq.storage.FileUtil; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; diff --git a/common/src/main/java/io/bisq/common/crypto/PubKeyRing.java b/network-messages/src/main/java/io/bisq/network_messages/crypto/PubKeyRing.java similarity index 97% rename from common/src/main/java/io/bisq/common/crypto/PubKeyRing.java rename to network-messages/src/main/java/io/bisq/network_messages/crypto/PubKeyRing.java index 9e3c38316e..09169bb1f6 100644 --- a/common/src/main/java/io/bisq/common/crypto/PubKeyRing.java +++ b/network-messages/src/main/java/io/bisq/network_messages/crypto/PubKeyRing.java @@ -15,12 +15,13 @@ * along with bisq. If not, see . */ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.wire.Payload; +import io.bisq.common.crypto.Sig; import io.bisq.common.wire.proto.Messages; +import io.bisq.network_messages.wire.Payload; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/common/src/main/java/io/bisq/common/crypto/SealedAndSigned.java b/network-messages/src/main/java/io/bisq/network_messages/crypto/SealedAndSigned.java similarity index 97% rename from common/src/main/java/io/bisq/common/crypto/SealedAndSigned.java rename to network-messages/src/main/java/io/bisq/network_messages/crypto/SealedAndSigned.java index 4777a727e3..b7a8cb5911 100644 --- a/common/src/main/java/io/bisq/common/crypto/SealedAndSigned.java +++ b/network-messages/src/main/java/io/bisq/network_messages/crypto/SealedAndSigned.java @@ -15,11 +15,12 @@ * along with bisq. If not, see . */ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.wire.Payload; +import io.bisq.common.crypto.Sig; +import io.bisq.network_messages.wire.Payload; import io.bisq.common.wire.proto.Messages; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/dao/blockchain/RpcOptionKeys.java b/network-messages/src/main/java/io/bisq/network_messages/dao/blockchain/RpcOptionKeys.java similarity index 87% rename from network/src/main/java/io/bisq/messages/dao/blockchain/RpcOptionKeys.java rename to network-messages/src/main/java/io/bisq/network_messages/dao/blockchain/RpcOptionKeys.java index 8fd90a26e2..0248bffc11 100644 --- a/network/src/main/java/io/bisq/messages/dao/blockchain/RpcOptionKeys.java +++ b/network-messages/src/main/java/io/bisq/network_messages/dao/blockchain/RpcOptionKeys.java @@ -1,4 +1,4 @@ -package io.bisq.messages.dao.blockchain; +package io.bisq.network_messages.dao.blockchain; public class RpcOptionKeys { public static final String RPC_USER = "rpcUser"; diff --git a/network/src/main/java/io/bisq/messages/dao/compensation/payload/CompensationRequestPayload.java b/network-messages/src/main/java/io/bisq/network_messages/dao/compensation/payload/CompensationRequestPayload.java similarity index 98% rename from network/src/main/java/io/bisq/messages/dao/compensation/payload/CompensationRequestPayload.java rename to network-messages/src/main/java/io/bisq/network_messages/dao/compensation/payload/CompensationRequestPayload.java index 5dec8af55d..c23b7f169f 100644 --- a/network/src/main/java/io/bisq/messages/dao/compensation/payload/CompensationRequestPayload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/dao/compensation/payload/CompensationRequestPayload.java @@ -15,15 +15,15 @@ * along with bisq. If not, see . */ -package io.bisq.messages.dao.compensation.payload; +package io.bisq.network_messages.dao.compensation.payload; import io.bisq.app.Version; import io.bisq.common.crypto.Sig; import io.bisq.common.util.JsonExclude; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.storage.payload.LazyProcessedStoragePayload; -import io.bisq.p2p.storage.payload.PersistedStoragePayload; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.payload.LazyProcessedStoragePayload; +import io.bisq.network_messages.payload.PersistedStoragePayload; import org.bitcoinj.core.Coin; import org.bitcoinj.core.Utils; import org.slf4j.Logger; diff --git a/network/src/main/java/io/bisq/messages/filter/payload/Filter.java b/network-messages/src/main/java/io/bisq/network_messages/filter/payload/Filter.java similarity index 98% rename from network/src/main/java/io/bisq/messages/filter/payload/Filter.java rename to network-messages/src/main/java/io/bisq/network_messages/filter/payload/Filter.java index 1ec2147483..ea3f1ac6df 100644 --- a/network/src/main/java/io/bisq/messages/filter/payload/Filter.java +++ b/network-messages/src/main/java/io/bisq/network_messages/filter/payload/Filter.java @@ -15,13 +15,13 @@ * along with bisq. If not, see . */ -package io.bisq.messages.filter.payload; +package io.bisq.network_messages.filter.payload; import com.google.protobuf.ByteString; import io.bisq.app.Version; import io.bisq.common.crypto.Sig; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.storage.payload.StoragePayload; +import io.bisq.network_messages.payload.StoragePayload; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/filter/payload/PaymentAccountFilter.java b/network-messages/src/main/java/io/bisq/network_messages/filter/payload/PaymentAccountFilter.java similarity index 96% rename from network/src/main/java/io/bisq/messages/filter/payload/PaymentAccountFilter.java rename to network-messages/src/main/java/io/bisq/network_messages/filter/payload/PaymentAccountFilter.java index 300b16187e..b02a5878f1 100644 --- a/network/src/main/java/io/bisq/messages/filter/payload/PaymentAccountFilter.java +++ b/network-messages/src/main/java/io/bisq/network_messages/filter/payload/PaymentAccountFilter.java @@ -1,4 +1,4 @@ -package io.bisq.messages.filter.payload; +package io.bisq.network_messages.filter.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/p2p/messaging/DecryptedMailboxListener.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/DecryptedMailboxListener.java similarity index 51% rename from network/src/main/java/io/bisq/p2p/messaging/DecryptedMailboxListener.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/DecryptedMailboxListener.java index cc31754cf8..a936618f12 100644 --- a/network/src/main/java/io/bisq/p2p/messaging/DecryptedMailboxListener.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/DecryptedMailboxListener.java @@ -1,7 +1,8 @@ -package io.bisq.p2p.messaging; +package io.bisq.network_messages.p2p.messaging; -import io.bisq.crypto.DecryptedMsgWithPubKey; -import io.bisq.p2p.NodeAddress; + +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.NodeAddress; public interface DecryptedMailboxListener { diff --git a/network/src/main/java/io/bisq/p2p/messaging/DirectMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/DirectMessage.java similarity index 89% rename from network/src/main/java/io/bisq/p2p/messaging/DirectMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/DirectMessage.java index 7644b6e8ca..72612d8d29 100644 --- a/network/src/main/java/io/bisq/p2p/messaging/DirectMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/DirectMessage.java @@ -15,9 +15,9 @@ * along with bisq. If not, see . */ -package io.bisq.p2p.messaging; +package io.bisq.network_messages.p2p.messaging; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; public interface DirectMessage extends Message { } diff --git a/network/src/main/java/io/bisq/p2p/messaging/MailboxMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/MailboxMessage.java similarity index 89% rename from network/src/main/java/io/bisq/p2p/messaging/MailboxMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/MailboxMessage.java index 0542b2259e..eeaf4ada7b 100644 --- a/network/src/main/java/io/bisq/p2p/messaging/MailboxMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/MailboxMessage.java @@ -15,10 +15,10 @@ * along with bisq. If not, see . */ -package io.bisq.p2p.messaging; +package io.bisq.network_messages.p2p.messaging; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; public interface MailboxMessage extends DirectMessage { NodeAddress getSenderNodeAddress(); diff --git a/network/src/main/java/io/bisq/p2p/messaging/PrefixedSealedAndSignedMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/PrefixedSealedAndSignedMessage.java similarity index 92% rename from network/src/main/java/io/bisq/p2p/messaging/PrefixedSealedAndSignedMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/PrefixedSealedAndSignedMessage.java index 6a8372448f..602debe64c 100644 --- a/network/src/main/java/io/bisq/p2p/messaging/PrefixedSealedAndSignedMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/PrefixedSealedAndSignedMessage.java @@ -1,11 +1,11 @@ -package io.bisq.p2p.messaging; +package io.bisq.network_messages.p2p.messaging; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.crypto.SealedAndSigned; +import io.bisq.network_messages.crypto.SealedAndSigned; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.network.messages.SendersNodeAddressMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.SendersNodeAddressMessage; import java.util.Arrays; import java.util.UUID; diff --git a/network/src/main/java/io/bisq/p2p/messaging/SendDirectMessageListener.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SendDirectMessageListener.java similarity index 65% rename from network/src/main/java/io/bisq/p2p/messaging/SendDirectMessageListener.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SendDirectMessageListener.java index 5835b7848b..9103be42f8 100644 --- a/network/src/main/java/io/bisq/p2p/messaging/SendDirectMessageListener.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SendDirectMessageListener.java @@ -1,4 +1,4 @@ -package io.bisq.p2p.messaging; +package io.bisq.network_messages.p2p.messaging; public interface SendDirectMessageListener { void onArrived(); diff --git a/network/src/main/java/io/bisq/p2p/messaging/SendMailboxMessageListener.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SendMailboxMessageListener.java similarity index 74% rename from network/src/main/java/io/bisq/p2p/messaging/SendMailboxMessageListener.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SendMailboxMessageListener.java index 3d6966c079..3223648282 100644 --- a/network/src/main/java/io/bisq/p2p/messaging/SendMailboxMessageListener.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SendMailboxMessageListener.java @@ -1,4 +1,4 @@ -package io.bisq.p2p.messaging; +package io.bisq.network_messages.p2p.messaging; public interface SendMailboxMessageListener { void onArrived(); diff --git a/network/src/main/java/io/bisq/p2p/messaging/SupportedCapabilitiesMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SupportedCapabilitiesMessage.java similarity index 68% rename from network/src/main/java/io/bisq/p2p/messaging/SupportedCapabilitiesMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SupportedCapabilitiesMessage.java index 3b04c8e6fe..23d804e97a 100644 --- a/network/src/main/java/io/bisq/p2p/messaging/SupportedCapabilitiesMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/messaging/SupportedCapabilitiesMessage.java @@ -1,6 +1,6 @@ -package io.bisq.p2p.messaging; +package io.bisq.network_messages.p2p.messaging; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; import javax.annotation.Nullable; import java.util.ArrayList; diff --git a/network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetDataRequest.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetDataRequest.java similarity index 56% rename from network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetDataRequest.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetDataRequest.java index 58ff47a90c..a272112eb2 100644 --- a/network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetDataRequest.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetDataRequest.java @@ -1,6 +1,6 @@ -package io.bisq.p2p.peers.getdata.messages; +package io.bisq.network_messages.p2p.peers.getdata.messages; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; import java.util.Set; diff --git a/network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetDataResponse.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetDataResponse.java similarity index 90% rename from network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetDataResponse.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetDataResponse.java index 528510e6c2..7dc6bca4da 100644 --- a/network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetDataResponse.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetDataResponse.java @@ -1,11 +1,11 @@ -package io.bisq.p2p.peers.getdata.messages; +package io.bisq.network_messages.p2p.peers.getdata.messages; import io.bisq.app.Capabilities; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.messaging.SupportedCapabilitiesMessage; -import io.bisq.p2p.storage.storageentry.ProtectedMailboxStorageEntry; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.messaging.SupportedCapabilitiesMessage; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedMailboxStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import javax.annotation.Nullable; import java.util.ArrayList; diff --git a/network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetUpdatedDataRequest.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetUpdatedDataRequest.java similarity index 93% rename from network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetUpdatedDataRequest.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetUpdatedDataRequest.java index 29aa01c9b9..30c249516c 100644 --- a/network/src/main/java/io/bisq/p2p/peers/getdata/messages/GetUpdatedDataRequest.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/GetUpdatedDataRequest.java @@ -1,10 +1,10 @@ -package io.bisq.p2p.peers.getdata.messages; +package io.bisq.network_messages.p2p.peers.getdata.messages; import com.google.protobuf.ByteString; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.network.messages.SendersNodeAddressMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.SendersNodeAddressMessage; import java.util.Set; import java.util.stream.Collectors; diff --git a/network/src/main/java/io/bisq/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java similarity index 90% rename from network/src/main/java/io/bisq/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java index 30336837e0..6791fdded7 100644 --- a/network/src/main/java/io/bisq/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/getdata/messages/PreliminaryGetDataRequest.java @@ -1,12 +1,12 @@ -package io.bisq.p2p.peers.getdata.messages; +package io.bisq.network_messages.p2p.peers.getdata.messages; import com.google.protobuf.ByteString; import io.bisq.app.Capabilities; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.ToProtoBuffer; -import io.bisq.p2p.messaging.SupportedCapabilitiesMessage; -import io.bisq.p2p.network.messages.AnonymousMessage; +import io.bisq.network_messages.AnonymousMessage; +import io.bisq.network_messages.ToProtoBuffer; +import io.bisq.network_messages.p2p.messaging.SupportedCapabilitiesMessage; import javax.annotation.Nullable; import java.util.ArrayList; diff --git a/network/src/main/java/io/bisq/p2p/peers/keepalive/messages/KeepAliveMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/KeepAliveMessage.java similarity index 81% rename from network/src/main/java/io/bisq/p2p/peers/keepalive/messages/KeepAliveMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/KeepAliveMessage.java index b83597e569..12f1bcc8f2 100644 --- a/network/src/main/java/io/bisq/p2p/peers/keepalive/messages/KeepAliveMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/KeepAliveMessage.java @@ -1,7 +1,7 @@ -package io.bisq.p2p.peers.keepalive.messages; +package io.bisq.network_messages.p2p.peers.keepalive.messages; import io.bisq.app.Version; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; public abstract class KeepAliveMessage implements Message { //TODO add serialVersionUID also in superclasses as changes would break compatibility diff --git a/network/src/main/java/io/bisq/p2p/peers/keepalive/messages/Ping.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/Ping.java similarity index 89% rename from network/src/main/java/io/bisq/p2p/peers/keepalive/messages/Ping.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/Ping.java index 5d788a9041..c7d203cadb 100644 --- a/network/src/main/java/io/bisq/p2p/peers/keepalive/messages/Ping.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/Ping.java @@ -1,8 +1,8 @@ -package io.bisq.p2p.peers.keepalive.messages; +package io.bisq.network_messages.p2p.peers.keepalive.messages; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; +import io.bisq.network_messages.util.ProtoBufferUtils; public final class Ping extends KeepAliveMessage { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/p2p/peers/keepalive/messages/Pong.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/Pong.java similarity index 87% rename from network/src/main/java/io/bisq/p2p/peers/keepalive/messages/Pong.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/Pong.java index cf14a6a8b2..3712c84b06 100644 --- a/network/src/main/java/io/bisq/p2p/peers/keepalive/messages/Pong.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/keepalive/messages/Pong.java @@ -1,8 +1,8 @@ -package io.bisq.p2p.peers.keepalive.messages; +package io.bisq.network_messages.p2p.peers.keepalive.messages; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; +import io.bisq.network_messages.util.ProtoBufferUtils; public final class Pong extends KeepAliveMessage { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/p2p/peers/peerexchange/Peer.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/Peer.java similarity index 92% rename from network/src/main/java/io/bisq/p2p/peers/peerexchange/Peer.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/Peer.java index f51fae942f..0e431eee3a 100644 --- a/network/src/main/java/io/bisq/p2p/peers/peerexchange/Peer.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/Peer.java @@ -1,10 +1,10 @@ -package io.bisq.p2p.peers.peerexchange; +package io.bisq.network_messages.p2p.peers.peerexchange; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; -import io.bisq.common.wire.Payload; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.wire.Payload; import java.util.Date; diff --git a/network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/GetPeersRequest.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/GetPeersRequest.java similarity index 89% rename from network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/GetPeersRequest.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/GetPeersRequest.java index ba89e308b2..91ed7927fe 100644 --- a/network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/GetPeersRequest.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/GetPeersRequest.java @@ -1,13 +1,13 @@ -package io.bisq.p2p.peers.peerexchange.messages; +package io.bisq.network_messages.p2p.peers.peerexchange.messages; import io.bisq.app.Capabilities; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.ToProtoBuffer; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.SupportedCapabilitiesMessage; -import io.bisq.p2p.network.messages.SendersNodeAddressMessage; -import io.bisq.p2p.peers.peerexchange.Peer; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.SendersNodeAddressMessage; +import io.bisq.network_messages.ToProtoBuffer; +import io.bisq.network_messages.p2p.messaging.SupportedCapabilitiesMessage; +import io.bisq.network_messages.p2p.peers.peerexchange.Peer; import javax.annotation.Nullable; import java.util.ArrayList; diff --git a/network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/GetPeersResponse.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/GetPeersResponse.java similarity index 91% rename from network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/GetPeersResponse.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/GetPeersResponse.java index a8904a2588..36cdd64040 100644 --- a/network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/GetPeersResponse.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/GetPeersResponse.java @@ -1,10 +1,10 @@ -package io.bisq.p2p.peers.peerexchange.messages; +package io.bisq.network_messages.p2p.peers.peerexchange.messages; import io.bisq.app.Capabilities; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.messaging.SupportedCapabilitiesMessage; -import io.bisq.p2p.peers.peerexchange.Peer; +import io.bisq.network_messages.p2p.messaging.SupportedCapabilitiesMessage; +import io.bisq.network_messages.p2p.peers.peerexchange.Peer; import javax.annotation.Nullable; import java.util.ArrayList; diff --git a/network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/PeerExchangeMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/PeerExchangeMessage.java similarity index 82% rename from network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/PeerExchangeMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/PeerExchangeMessage.java index 84ab6cba9a..922cfb700b 100644 --- a/network/src/main/java/io/bisq/p2p/peers/peerexchange/messages/PeerExchangeMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/peers/peerexchange/messages/PeerExchangeMessage.java @@ -1,7 +1,7 @@ -package io.bisq.p2p.peers.peerexchange.messages; +package io.bisq.network_messages.p2p.peers.peerexchange.messages; import io.bisq.app.Version; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; abstract class PeerExchangeMessage implements Message { //TODO add serialVersionUID also in superclasses as changes would break compatibility diff --git a/network/src/main/java/io/bisq/p2p/storage/messages/AddDataMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/AddDataMessage.java similarity index 88% rename from network/src/main/java/io/bisq/p2p/storage/messages/AddDataMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/AddDataMessage.java index 50a605d064..4a09f1062d 100644 --- a/network/src/main/java/io/bisq/p2p/storage/messages/AddDataMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/AddDataMessage.java @@ -1,10 +1,10 @@ -package io.bisq.p2p.storage.messages; +package io.bisq.network_messages.p2p.storage.messages; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.storage.storageentry.ProtectedMailboxStorageEntry; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.util.ProtoBufferUtils; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedMailboxStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; public final class AddDataMessage extends BroadcastMessage { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/p2p/storage/messages/BroadcastMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/BroadcastMessage.java similarity index 84% rename from network/src/main/java/io/bisq/p2p/storage/messages/BroadcastMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/BroadcastMessage.java index 53900b938b..05d96b86cd 100644 --- a/network/src/main/java/io/bisq/p2p/storage/messages/BroadcastMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/BroadcastMessage.java @@ -1,7 +1,7 @@ -package io.bisq.p2p.storage.messages; +package io.bisq.network_messages.p2p.storage.messages; import io.bisq.app.Version; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; public abstract class BroadcastMessage implements Message { //TODO add serialVersionUID also in superclasses as changes would break compatibility diff --git a/network/src/main/java/io/bisq/p2p/storage/messages/RefreshTTLMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RefreshTTLMessage.java similarity index 95% rename from network/src/main/java/io/bisq/p2p/storage/messages/RefreshTTLMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RefreshTTLMessage.java index f941203191..544a57a8cc 100644 --- a/network/src/main/java/io/bisq/p2p/storage/messages/RefreshTTLMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RefreshTTLMessage.java @@ -1,9 +1,9 @@ -package io.bisq.p2p.storage.messages; +package io.bisq.network_messages.p2p.storage.messages; import com.google.protobuf.ByteString; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.ToProtoBuffer; +import io.bisq.network_messages.ToProtoBuffer; import java.util.Arrays; diff --git a/network/src/main/java/io/bisq/p2p/storage/messages/RemoveDataMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RemoveDataMessage.java similarity index 89% rename from network/src/main/java/io/bisq/p2p/storage/messages/RemoveDataMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RemoveDataMessage.java index ee6a1f9e04..7685793102 100644 --- a/network/src/main/java/io/bisq/p2p/storage/messages/RemoveDataMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RemoveDataMessage.java @@ -1,9 +1,9 @@ -package io.bisq.p2p.storage.messages; +package io.bisq.network_messages.p2p.storage.messages; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.util.ProtoBufferUtils; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; public final class RemoveDataMessage extends BroadcastMessage { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/p2p/storage/messages/RemoveMailboxDataMessage.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RemoveMailboxDataMessage.java similarity index 89% rename from network/src/main/java/io/bisq/p2p/storage/messages/RemoveMailboxDataMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RemoveMailboxDataMessage.java index 67ae118920..2842ed65ee 100644 --- a/network/src/main/java/io/bisq/p2p/storage/messages/RemoveMailboxDataMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/messages/RemoveMailboxDataMessage.java @@ -1,9 +1,9 @@ -package io.bisq.p2p.storage.messages; +package io.bisq.network_messages.p2p.storage.messages; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.storage.storageentry.ProtectedMailboxStorageEntry; +import io.bisq.network_messages.util.ProtoBufferUtils; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedMailboxStorageEntry; public final class RemoveMailboxDataMessage extends BroadcastMessage { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/p2p/storage/storageentry/ProtectedMailboxStorageEntry.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/storageentry/ProtectedMailboxStorageEntry.java similarity index 91% rename from network/src/main/java/io/bisq/p2p/storage/storageentry/ProtectedMailboxStorageEntry.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/storage/storageentry/ProtectedMailboxStorageEntry.java index bfd5f627f6..599be30458 100644 --- a/network/src/main/java/io/bisq/p2p/storage/storageentry/ProtectedMailboxStorageEntry.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/storageentry/ProtectedMailboxStorageEntry.java @@ -1,13 +1,11 @@ -package io.bisq.p2p.storage.storageentry; +package io.bisq.network_messages.p2p.storage.storageentry; import com.google.protobuf.ByteString; import io.bisq.app.Version; import io.bisq.common.crypto.Sig; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.storage.P2PDataStorage; -import io.bisq.p2p.storage.payload.MailboxStoragePayload; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import io.bisq.network_messages.payload.MailboxStoragePayload; +import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.security.KeyFactory; @@ -17,12 +15,11 @@ import java.security.PublicKey; import java.security.spec.InvalidKeySpecException; import java.security.spec.X509EncodedKeySpec; +@Slf4j public class ProtectedMailboxStorageEntry extends ProtectedStorageEntry { // That object is sent over the wire, so we need to take care of version compatibility. private static final long serialVersionUID = Version.P2P_NETWORK_VERSION; - private static final Logger log = LoggerFactory.getLogger(P2PDataStorage.class); - public transient PublicKey receiversPubKey; private final byte[] receiversPubKeyBytes; diff --git a/network/src/main/java/io/bisq/p2p/storage/storageentry/ProtectedStorageEntry.java b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/storageentry/ProtectedStorageEntry.java similarity index 96% rename from network/src/main/java/io/bisq/p2p/storage/storageentry/ProtectedStorageEntry.java rename to network-messages/src/main/java/io/bisq/network_messages/p2p/storage/storageentry/ProtectedStorageEntry.java index 1935924c16..343f0665ed 100644 --- a/network/src/main/java/io/bisq/p2p/storage/storageentry/ProtectedStorageEntry.java +++ b/network-messages/src/main/java/io/bisq/network_messages/p2p/storage/storageentry/ProtectedStorageEntry.java @@ -1,13 +1,13 @@ -package io.bisq.p2p.storage.storageentry; +package io.bisq.network_messages.p2p.storage.storageentry; import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.ByteString; import com.google.protobuf.Message; import io.bisq.app.Version; import io.bisq.common.crypto.Sig; -import io.bisq.common.wire.Payload; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.storage.payload.StoragePayload; +import io.bisq.network_messages.wire.Payload; +import io.bisq.network_messages.payload.StoragePayload; import lombok.EqualsAndHashCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/storage/payload/CapabilityRequiringPayload.java b/network-messages/src/main/java/io/bisq/network_messages/payload/CapabilityRequiringPayload.java similarity index 85% rename from network/src/main/java/io/bisq/p2p/storage/payload/CapabilityRequiringPayload.java rename to network-messages/src/main/java/io/bisq/network_messages/payload/CapabilityRequiringPayload.java index ca0fe17891..a07cd43445 100644 --- a/network/src/main/java/io/bisq/p2p/storage/payload/CapabilityRequiringPayload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payload/CapabilityRequiringPayload.java @@ -1,6 +1,7 @@ -package io.bisq.p2p.storage.payload; +package io.bisq.network_messages.payload; -import io.bisq.common.wire.Payload; + +import io.bisq.network_messages.wire.Payload; import java.util.List; diff --git a/network/src/main/java/io/bisq/p2p/storage/payload/ExpirablePayload.java b/network-messages/src/main/java/io/bisq/network_messages/payload/ExpirablePayload.java similarity index 75% rename from network/src/main/java/io/bisq/p2p/storage/payload/ExpirablePayload.java rename to network-messages/src/main/java/io/bisq/network_messages/payload/ExpirablePayload.java index 76971f75b0..9c38d70124 100644 --- a/network/src/main/java/io/bisq/p2p/storage/payload/ExpirablePayload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payload/ExpirablePayload.java @@ -1,6 +1,7 @@ -package io.bisq.p2p.storage.payload; +package io.bisq.network_messages.payload; -import io.bisq.common.wire.Payload; + +import io.bisq.network_messages.wire.Payload; /** * Messages which support a time to live diff --git a/network/src/main/java/io/bisq/p2p/storage/payload/LazyProcessedStoragePayload.java b/network-messages/src/main/java/io/bisq/network_messages/payload/LazyProcessedStoragePayload.java similarity index 83% rename from network/src/main/java/io/bisq/p2p/storage/payload/LazyProcessedStoragePayload.java rename to network-messages/src/main/java/io/bisq/network_messages/payload/LazyProcessedStoragePayload.java index efb67e6b3d..fab81c2288 100644 --- a/network/src/main/java/io/bisq/p2p/storage/payload/LazyProcessedStoragePayload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payload/LazyProcessedStoragePayload.java @@ -1,4 +1,4 @@ -package io.bisq.p2p.storage.payload; +package io.bisq.network_messages.payload; /** * Marker interface for payload which gets delayed processed at startup so we don't hit performance too much. diff --git a/network/src/main/java/io/bisq/p2p/storage/payload/MailboxStoragePayload.java b/network-messages/src/main/java/io/bisq/network_messages/payload/MailboxStoragePayload.java similarity index 94% rename from network/src/main/java/io/bisq/p2p/storage/payload/MailboxStoragePayload.java rename to network-messages/src/main/java/io/bisq/network_messages/payload/MailboxStoragePayload.java index f3c7090f15..b4458f81f5 100644 --- a/network/src/main/java/io/bisq/p2p/storage/payload/MailboxStoragePayload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payload/MailboxStoragePayload.java @@ -1,14 +1,10 @@ -package io.bisq.p2p.storage.payload; +package io.bisq.network_messages.payload; import com.google.protobuf.ByteString; import io.bisq.app.Version; import io.bisq.common.crypto.Sig; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.PrefixedSealedAndSignedMessage; -import io.bisq.p2p.peers.BroadcastHandler; -import io.bisq.p2p.storage.P2PDataStorage; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.messaging.PrefixedSealedAndSignedMessage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,7 +23,7 @@ import java.util.concurrent.TimeUnit; * but only the receiver is permitted to remove the data. * That is the typical requirement for a mailbox like system. *

- * Typical payloads are trade or dispute messages to be stored when the peer is offline. + * Typical payloads are trade or dispute network_messages to be stored when the peer is offline. */ public final class MailboxStoragePayload implements StoragePayload { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/p2p/storage/payload/PersistedStoragePayload.java b/network-messages/src/main/java/io/bisq/network_messages/payload/PersistedStoragePayload.java similarity index 79% rename from network/src/main/java/io/bisq/p2p/storage/payload/PersistedStoragePayload.java rename to network-messages/src/main/java/io/bisq/network_messages/payload/PersistedStoragePayload.java index f761e08dc3..b65004ca9d 100644 --- a/network/src/main/java/io/bisq/p2p/storage/payload/PersistedStoragePayload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payload/PersistedStoragePayload.java @@ -1,4 +1,4 @@ -package io.bisq.p2p.storage.payload; +package io.bisq.network_messages.payload; /** * Marker interface for payload which gets persisted. diff --git a/network/src/main/java/io/bisq/p2p/storage/payload/RequiresOwnerIsOnlinePayload.java b/network-messages/src/main/java/io/bisq/network_messages/payload/RequiresOwnerIsOnlinePayload.java similarity index 65% rename from network/src/main/java/io/bisq/p2p/storage/payload/RequiresOwnerIsOnlinePayload.java rename to network-messages/src/main/java/io/bisq/network_messages/payload/RequiresOwnerIsOnlinePayload.java index c4809403cb..23eb52d8ba 100644 --- a/network/src/main/java/io/bisq/p2p/storage/payload/RequiresOwnerIsOnlinePayload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payload/RequiresOwnerIsOnlinePayload.java @@ -1,10 +1,10 @@ -package io.bisq.p2p.storage.payload; +package io.bisq.network_messages.payload; -import io.bisq.common.wire.Payload; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.wire.Payload; /** - * Used for messages which require that the data owner is online. + * Used for network_messages which require that the data owner is online. *

* This is used for the offers to avoid dead offers in case the offerer is in standby mode or the app has * terminated without sending the remove message (e.g. network connection lost or in case of a crash). diff --git a/network/src/main/java/io/bisq/p2p/storage/payload/StoragePayload.java b/network-messages/src/main/java/io/bisq/network_messages/payload/StoragePayload.java similarity index 78% rename from network/src/main/java/io/bisq/p2p/storage/payload/StoragePayload.java rename to network-messages/src/main/java/io/bisq/network_messages/payload/StoragePayload.java index 59a5d822b2..6380bade51 100644 --- a/network/src/main/java/io/bisq/p2p/storage/payload/StoragePayload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payload/StoragePayload.java @@ -1,8 +1,4 @@ -package io.bisq.p2p.storage.payload; - -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.storage.P2PDataStorage; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +package io.bisq.network_messages.payload; import java.security.PublicKey; @@ -12,7 +8,7 @@ import java.security.PublicKey; * Implementations: * io.bisq.alert.Alert * io.bisq.arbitration.Arbitrator - * io.bisq.trade.offer.Offer + * io.bisq.trade.offer.OfferPayload */ public interface StoragePayload extends ExpirablePayload { /** diff --git a/network/src/main/java/io/bisq/messages/payment/PaymentMethod.java b/network-messages/src/main/java/io/bisq/network_messages/payment/PaymentMethod.java similarity index 99% rename from network/src/main/java/io/bisq/messages/payment/PaymentMethod.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/PaymentMethod.java index f3d5080142..e278c53301 100644 --- a/network/src/main/java/io/bisq/messages/payment/PaymentMethod.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/PaymentMethod.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment; +package io.bisq.network_messages.payment; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/AliPayAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/AliPayAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/AliPayAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/AliPayAccountContractData.java index c799f61044..789732911b 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/AliPayAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/AliPayAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/BankAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/BankAccountContractData.java similarity index 91% rename from network/src/main/java/io/bisq/messages/payment/payload/BankAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/BankAccountContractData.java index db32df2a90..416ce9addc 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/BankAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/BankAccountContractData.java @@ -15,15 +15,15 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; -import io.bisq.messages.locale.BankUtil; -import io.bisq.messages.locale.CountryUtil; +import io.bisq.locale.BankUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Nullable; +import java.util.Locale; public abstract class BankAccountContractData extends CountryBasedPaymentAccountContractData { // That object is sent over the wire, so we need to take care of version compatibility. @@ -46,12 +46,12 @@ public abstract class BankAccountContractData extends CountryBasedPaymentAccount } @Override - public String getPaymentDetails() { - return "Bank account transfer - " + getPaymentDetailsForTradePopup().replace("\n", ", "); + public String getPaymentDetails(Locale locale) { + return "Bank account transfer - " + getPaymentDetailsForTradePopup(locale).replace("\n", ", "); } @Override - public String getPaymentDetailsForTradePopup() { + public String getPaymentDetailsForTradePopup(Locale locale) { String bankName = BankUtil.isBankNameRequired(countryCode) ? BankUtil.getBankNameLabel(countryCode) + " " + this.bankName + "\n" : ""; String bankId = BankUtil.isBankIdRequired(countryCode) ? BankUtil.getBankIdLabel(countryCode) + " " + this.bankId + "\n" : ""; String branchId = BankUtil.isBranchIdRequired(countryCode) ? BankUtil.getBranchIdLabel(countryCode) + " " + this.branchId + "\n" : ""; @@ -66,7 +66,7 @@ public abstract class BankAccountContractData extends CountryBasedPaymentAccount accountNr + accountType + holderIdString + - "Country of bank: " + CountryUtil.getNameAndCode(getCountryCode()); + "Country of bank: " + new Locale(locale.getLanguage(), countryCode).getDisplayCountry(); } diff --git a/network/src/main/java/io/bisq/messages/payment/payload/CashDepositAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/CashDepositAccountContractData.java similarity index 95% rename from network/src/main/java/io/bisq/messages/payment/payload/CashDepositAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/CashDepositAccountContractData.java index 5d12133032..0c8552a13e 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/CashDepositAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/CashDepositAccountContractData.java @@ -15,16 +15,16 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.locale.BankUtil; -import io.bisq.messages.locale.CountryUtil; +import io.bisq.locale.BankUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Nullable; +import java.util.Locale; public class CashDepositAccountContractData extends CountryBasedPaymentAccountContractData { // That object is sent over the wire, so we need to take care of version compatibility. @@ -49,12 +49,12 @@ public class CashDepositAccountContractData extends CountryBasedPaymentAccountCo } @Override - public String getPaymentDetails() { + public String getPaymentDetails(Locale locale) { return "Cash deposit - " + getPaymentDetailsForTradePopup().replace("\n", ", "); } @Override - public String getPaymentDetailsForTradePopup() { + public String getPaymentDetailsForTradePopup(Locale locale) { String bankName = BankUtil.isBankNameRequired(countryCode) ? BankUtil.getBankNameLabel(countryCode) + " " + this.bankName + "\n" : ""; String bankId = BankUtil.isBankIdRequired(countryCode) ? BankUtil.getBankIdLabel(countryCode) + " " + this.bankId + "\n" : ""; String branchId = BankUtil.isBranchIdRequired(countryCode) ? BankUtil.getBranchIdLabel(countryCode) + " " + this.branchId + "\n" : ""; @@ -72,7 +72,7 @@ public class CashDepositAccountContractData extends CountryBasedPaymentAccountCo accountType + holderIdString + requirementsString + - "Country of bank: " + CountryUtil.getNameAndCode(getCountryCode()); + "Country of bank: " + new Locale(locale.getLanguage(), countryCode).getDisplayCountry(); } @Override diff --git a/network/src/main/java/io/bisq/messages/payment/payload/ChaseQuickPayAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/ChaseQuickPayAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/ChaseQuickPayAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/ChaseQuickPayAccountContractData.java index 1d1db60a58..331764a328 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/ChaseQuickPayAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/ChaseQuickPayAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/ClearXchangeAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/ClearXchangeAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/ClearXchangeAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/ClearXchangeAccountContractData.java index 167c671ba3..8e599a9437 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/ClearXchangeAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/ClearXchangeAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/CountryBasedPaymentAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/CountryBasedPaymentAccountContractData.java similarity index 84% rename from network/src/main/java/io/bisq/messages/payment/payload/CountryBasedPaymentAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/CountryBasedPaymentAccountContractData.java index ac9574a39a..1949d9753e 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/CountryBasedPaymentAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/CountryBasedPaymentAccountContractData.java @@ -15,9 +15,12 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; +import sun.reflect.generics.reflectiveObjects.NotImplementedException; + +import java.util.Locale; public abstract class CountryBasedPaymentAccountContractData extends PaymentAccountContractData { // That object is sent over the wire, so we need to take care of version compatibility. @@ -50,10 +53,12 @@ public abstract class CountryBasedPaymentAccountContractData extends PaymentAcco /////////////////////////////////////////////////////////////////////////////////////////// // Getter /////////////////////////////////////////////////////////////////////////////////////////// + public String getPaymentDetails() { throw new NotImplementedException();} + abstract public String getPaymentDetails(Locale locale); - abstract public String getPaymentDetails(); - - abstract public String getPaymentDetailsForTradePopup(); + /** needs Locale for country based */ + public String getPaymentDetailsForTradePopup() { throw new NotImplementedException();} + abstract public String getPaymentDetailsForTradePopup(Locale locale); @Override public boolean equals(Object o) { diff --git a/network/src/main/java/io/bisq/messages/payment/payload/CryptoCurrencyAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/CryptoCurrencyAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/CryptoCurrencyAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/CryptoCurrencyAccountContractData.java index f8862022a3..17dbf7f97c 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/CryptoCurrencyAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/CryptoCurrencyAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/FasterPaymentsAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/FasterPaymentsAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/FasterPaymentsAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/FasterPaymentsAccountContractData.java index 9d4a5ca21c..628ead0e01 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/FasterPaymentsAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/FasterPaymentsAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/InteracETransferAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/InteracETransferAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/InteracETransferAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/InteracETransferAccountContractData.java index 5683caa0e6..7aa85a27b7 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/InteracETransferAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/InteracETransferAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/NationalBankAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/NationalBankAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/NationalBankAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/NationalBankAccountContractData.java index 267401542e..ef548743d9 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/NationalBankAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/NationalBankAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/OKPayAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/OKPayAccountContractData.java similarity index 97% rename from network/src/main/java/io/bisq/messages/payment/payload/OKPayAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/OKPayAccountContractData.java index 9d743b32e8..85cc00f684 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/OKPayAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/OKPayAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/PaymentAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/PaymentAccountContractData.java similarity index 97% rename from network/src/main/java/io/bisq/messages/payment/payload/PaymentAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/PaymentAccountContractData.java index 962f414a1b..1f04e9ec87 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/PaymentAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/PaymentAccountContractData.java @@ -15,10 +15,10 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; -import io.bisq.common.wire.Payload; +import io.bisq.network_messages.wire.Payload; public abstract class PaymentAccountContractData implements Payload { // That object is sent over the wire, so we need to take care of version compatibility. diff --git a/network/src/main/java/io/bisq/messages/payment/payload/PerfectMoneyAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/PerfectMoneyAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/PerfectMoneyAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/PerfectMoneyAccountContractData.java index b2805900c9..0d6a5042b9 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/PerfectMoneyAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/PerfectMoneyAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/SameBankAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/SameBankAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/SameBankAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/SameBankAccountContractData.java index 5b868da730..83d8b01d7f 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/SameBankAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/SameBankAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/SepaAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/SepaAccountContractData.java similarity index 87% rename from network/src/main/java/io/bisq/messages/payment/payload/SepaAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/SepaAccountContractData.java index a7198676fa..ac9f212af8 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/SepaAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/SepaAccountContractData.java @@ -15,16 +15,17 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.locale.CountryUtil; +import io.bisq.locale.Country; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.stream.Collectors; @@ -39,11 +40,12 @@ public final class SepaAccountContractData extends CountryBasedPaymentAccountCon private String iban; private String bic; // Dont use a set here as we need a deterministic ordering, otherwise the contract hash does not match - private final ArrayList acceptedCountryCodes; + private final List acceptedCountryCodes; - public SepaAccountContractData(String paymentMethod, String id, long maxTradePeriod) { + public SepaAccountContractData(String paymentMethod, String id, long maxTradePeriod, List acceptedCountries) { super(paymentMethod, id, maxTradePeriod); - Set acceptedCountryCodesAsSet = CountryUtil.getAllSepaCountries().stream().map(e -> e.code).collect(Collectors.toSet()); + Set acceptedCountryCodesAsSet = acceptedCountries.stream() + .map(e -> e.code).collect(Collectors.toSet()); acceptedCountryCodes = new ArrayList<>(acceptedCountryCodesAsSet); acceptedCountryCodes.sort(String::compareTo); } @@ -87,16 +89,21 @@ public final class SepaAccountContractData extends CountryBasedPaymentAccountCon } @Override - public String getPaymentDetails() { + public String getPaymentDetails(Locale locale) { return "SEPA - Holder name: " + holderName + ", IBAN: " + iban + ", BIC: " + bic + ", country code: " + getCountryCode(); } @Override public String getPaymentDetailsForTradePopup() { + return null; + } + + @Override + public String getPaymentDetailsForTradePopup(Locale locale) { return "Holder name: " + holderName + "\n" + "IBAN: " + iban + "\n" + "BIC: " + bic + "\n" + - "Country of bank: " + CountryUtil.getNameAndCode(getCountryCode()); + "Country of bank: " + new Locale(locale.getLanguage(), countryCode).getDisplayCountry(); } @Override diff --git a/network/src/main/java/io/bisq/messages/payment/payload/SpecificBanksAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/SpecificBanksAccountContractData.java similarity index 93% rename from network/src/main/java/io/bisq/messages/payment/payload/SpecificBanksAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/SpecificBanksAccountContractData.java index f6260fd69f..c4d9d32ebf 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/SpecificBanksAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/SpecificBanksAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import com.google.common.base.Joiner; import io.bisq.app.Version; @@ -24,6 +24,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; +import java.util.Locale; public final class SpecificBanksAccountContractData extends BankAccountContractData { // That object is sent over the wire, so we need to take care of version compatibility. @@ -61,7 +62,12 @@ public final class SpecificBanksAccountContractData extends BankAccountContractD @Override public String getPaymentDetailsForTradePopup() { - return super.getPaymentDetailsForTradePopup() + "\n" + + return null; + } + + @Override + public String getPaymentDetailsForTradePopup(Locale locale) { + return super.getPaymentDetailsForTradePopup(locale) + "\n" + "Accepted banks: " + Joiner.on(", ").join(acceptedBanks); } diff --git a/network/src/main/java/io/bisq/messages/payment/payload/SwishAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/SwishAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/SwishAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/SwishAccountContractData.java index cc377ca574..9b6092944b 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/SwishAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/SwishAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/payment/payload/USPostalMoneyOrderAccountContractData.java b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/USPostalMoneyOrderAccountContractData.java similarity index 98% rename from network/src/main/java/io/bisq/messages/payment/payload/USPostalMoneyOrderAccountContractData.java rename to network-messages/src/main/java/io/bisq/network_messages/payment/payload/USPostalMoneyOrderAccountContractData.java index 2e2d0c30b2..dc6b7eb59b 100644 --- a/network/src/main/java/io/bisq/messages/payment/payload/USPostalMoneyOrderAccountContractData.java +++ b/network-messages/src/main/java/io/bisq/network_messages/payment/payload/USPostalMoneyOrderAccountContractData.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; diff --git a/network/src/main/java/io/bisq/messages/protocol/trade/TradeMessage.java b/network-messages/src/main/java/io/bisq/network_messages/protocol/trade/TradeMessage.java similarity index 94% rename from network/src/main/java/io/bisq/messages/protocol/trade/TradeMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/protocol/trade/TradeMessage.java index a42c8d3470..a2e9dffd4f 100644 --- a/network/src/main/java/io/bisq/messages/protocol/trade/TradeMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/protocol/trade/TradeMessage.java @@ -15,10 +15,10 @@ * along with bisq. If not, see . */ -package io.bisq.messages.protocol.trade; +package io.bisq.network_messages.protocol.trade; import io.bisq.app.Version; -import io.bisq.p2p.messaging.DirectMessage; +import io.bisq.network_messages.p2p.messaging.DirectMessage; import javax.annotation.concurrent.Immutable; diff --git a/network/src/main/java/io/bisq/messages/trade/exceptions/MarketPriceNotAvailableException.java b/network-messages/src/main/java/io/bisq/network_messages/trade/exceptions/MarketPriceNotAvailableException.java similarity index 75% rename from network/src/main/java/io/bisq/messages/trade/exceptions/MarketPriceNotAvailableException.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/exceptions/MarketPriceNotAvailableException.java index f4f9674865..8bb5dc9c14 100644 --- a/network/src/main/java/io/bisq/messages/trade/exceptions/MarketPriceNotAvailableException.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/exceptions/MarketPriceNotAvailableException.java @@ -1,4 +1,4 @@ -package io.bisq.messages.trade.exceptions; +package io.bisq.network_messages.trade.exceptions; public class MarketPriceNotAvailableException extends Exception { public MarketPriceNotAvailableException(String message) { diff --git a/network/src/main/java/io/bisq/messages/trade/exceptions/TradePriceOutOfToleranceException.java b/network-messages/src/main/java/io/bisq/network_messages/trade/exceptions/TradePriceOutOfToleranceException.java similarity index 76% rename from network/src/main/java/io/bisq/messages/trade/exceptions/TradePriceOutOfToleranceException.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/exceptions/TradePriceOutOfToleranceException.java index 388773c5d2..de65c693cc 100644 --- a/network/src/main/java/io/bisq/messages/trade/exceptions/TradePriceOutOfToleranceException.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/exceptions/TradePriceOutOfToleranceException.java @@ -1,4 +1,4 @@ -package io.bisq.messages.trade.exceptions; +package io.bisq.network_messages.trade.exceptions; public class TradePriceOutOfToleranceException extends Exception { public TradePriceOutOfToleranceException(String message) { diff --git a/network/src/main/java/io/bisq/messages/trade/offer/payload/Offer.java b/network-messages/src/main/java/io/bisq/network_messages/trade/offer/payload/OfferPayload.java similarity index 51% rename from network/src/main/java/io/bisq/messages/trade/offer/payload/Offer.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/offer/payload/OfferPayload.java index 554e07ed3a..038f97b397 100644 --- a/network/src/main/java/io/bisq/messages/trade/offer/payload/Offer.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/offer/payload/OfferPayload.java @@ -15,47 +15,32 @@ * along with bisq. If not, see . */ -package io.bisq.messages.trade.offer.payload; +package io.bisq.network_messages.trade.offer.payload; -import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import io.bisq.app.DevEnv; import io.bisq.app.Version; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.PubKeyRing; -import io.bisq.common.handlers.ErrorMessageHandler; -import io.bisq.common.handlers.ResultHandler; import io.bisq.common.util.JsonExclude; -import io.bisq.common.util.MathUtils; import io.bisq.common.util.Utilities; import io.bisq.common.wire.proto.Messages; -import io.bisq.locale.Res; -import io.bisq.messages.btc.Restrictions; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.payment.PaymentMethod; -import io.bisq.messages.protocol.availability.OfferAvailabilityModel; -import io.bisq.messages.protocol.availability.OfferAvailabilityProtocol; -import io.bisq.messages.provider.price.MarketPrice; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.exceptions.MarketPriceNotAvailableException; -import io.bisq.messages.trade.exceptions.TradePriceOutOfToleranceException; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.storage.payload.RequiresOwnerIsOnlinePayload; -import io.bisq.p2p.storage.payload.StoragePayload; -import javafx.beans.property.*; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.btc.Restrictions; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.payload.RequiresOwnerIsOnlinePayload; +import io.bisq.network_messages.payload.StoragePayload; import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; import lombok.ToString; import org.bitcoinj.core.Coin; -import org.bitcoinj.utils.ExchangeRate; -import org.bitcoinj.utils.Fiat; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Nullable; import java.io.IOException; import java.security.PublicKey; -import java.text.DecimalFormat; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -65,8 +50,7 @@ import static com.google.common.base.Preconditions.checkNotNull; @ToString @EqualsAndHashCode -// TODO refactor to remove logic, should be value a object only -public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload { +public final class OfferPayload implements StoragePayload, RequiresOwnerIsOnlinePayload { /////////////////////////////////////////////////////////////////////////////////////////// // Static @@ -76,11 +60,8 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload @JsonExclude private static final long serialVersionUID = Version.P2P_NETWORK_VERSION; @JsonExclude - private static final Logger log = LoggerFactory.getLogger(Offer.class); + private static final Logger log = LoggerFactory.getLogger(OfferPayload.class); public static final long TTL = TimeUnit.MINUTES.toMillis(DevEnv.STRESS_TEST_MODE ? 6 : 6); - public final static String TAC_OFFERER = Res.get("createOffer.tac"); - public static final String TAC_TAKER = Res.get("takeOffer.tac"); - /////////////////////////////////////////////////////////////////////////////////////////// // Enums @@ -103,31 +84,43 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload /////////////////////////////////////////////////////////////////////////////////////////// // Fields for filtering offers + @Getter private final Direction direction; + @Getter private final String currencyCode; // payment method private final String paymentMethodName; @Nullable + @Getter private final String countryCode; @Nullable + @Getter private final List acceptedCountryCodes; @Nullable + @Getter private final String bankId; @Nullable + @Getter private final List acceptedBankIds; + @Getter private final List arbitratorNodeAddresses; + @Getter private final String id; + @Getter private final long date; + @Getter private final long protocolVersion; // We use 2 type of prices: fixed price or price based on distance from market price + @Getter private final boolean useMarketBasedPrice; // fiatPrice if fixed price is used (usePercentageBasedPrice = false), otherwise 0 //TODO add support for altcoin price or fix precision issue + @Getter private final long fiatPrice; // Distance form market price if percentage based price is used (usePercentageBasedPrice = true), otherwise 0. @@ -135,25 +128,32 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload // Positive values is always the usual case where you want a better price as the market. // E.g. Buy offer with market price 400.- leads to a 360.- price. // Sell offer with market price 400.- leads to a 440.- price. + @Getter private final double marketPriceMargin; - private final long amount; private final long minAmount; + @Getter private final NodeAddress offererNodeAddress; @JsonExclude + @Getter private final PubKeyRing pubKeyRing; + @Getter private final String offererPaymentAccountId; // Mutable property. Has to be set before offer is save in P2P network as it changes the objects hash! + @Getter + @Setter private String offerFeePaymentTxID; // New properties from v. 0.5.0.0 + @Getter private final String versionNr; private final long blockHeightAtOfferCreation; private final long txFee; private final long createOfferFee; private final long securityDeposit; private final long maxTradeLimit; + @Getter private final long maxTradePeriod; // reserved for future use cases @@ -175,23 +175,6 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload @Nullable private Map extraDataMap; - // TODO refactor those out of Offer, offer should be pure value object - @JsonExclude - transient private State state = State.UNDEFINED; - // Those state properties are transient and only used at runtime! - // don't access directly as it might be null; use getStateProperty() which creates an object if not instantiated - @JsonExclude - transient private ObjectProperty stateProperty = new SimpleObjectProperty<>(state); - @JsonExclude - @Nullable - transient private OfferAvailabilityProtocol availabilityProtocol; - @JsonExclude - transient private StringProperty errorMessageProperty = new SimpleStringProperty(); - @JsonExclude - transient private PriceFeedService priceFeedService; - @JsonExclude - transient private DecimalFormat decimalFormat; - /////////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -202,7 +185,7 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload * meaning it's null here and "" there => not good * * @param id - * @param creationDate date of Offer creation, can be null in which case the current date/time will be used. + * @param creationDate date of OfferPayload creation, can be null in which case the current date/time will be used. * @param offererNodeAddress * @param pubKeyRing * @param direction @@ -220,7 +203,6 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload * @param acceptedCountryCodes * @param bankId * @param acceptedBankIds - * @param priceFeedService * @param versionNr * @param blockHeightAtOfferCreation * @param txFee @@ -236,40 +218,39 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload * @param hashOfChallenge * @param extraDataMap */ - public Offer(String id, - Long creationDate, - NodeAddress offererNodeAddress, - PubKeyRing pubKeyRing, - Direction direction, - long fiatPrice, - double marketPriceMargin, - boolean useMarketBasedPrice, - long amount, - long minAmount, - String currencyCode, - List arbitratorNodeAddresses, - String paymentMethodName, - String offererPaymentAccountId, - @Nullable String offerFeePaymentTxID, - @Nullable String countryCode, - @Nullable List acceptedCountryCodes, - @Nullable String bankId, - @Nullable List acceptedBankIds, - PriceFeedService priceFeedService, - String versionNr, - long blockHeightAtOfferCreation, - long txFee, - long createOfferFee, - long securityDeposit, - long maxTradeLimit, - long maxTradePeriod, - boolean useAutoClose, - boolean useReOpenAfterAutoClose, - long lowerClosePrice, - long upperClosePrice, - boolean isPrivateOffer, - @Nullable String hashOfChallenge, - @Nullable Map extraDataMap) { + public OfferPayload(String id, + Long creationDate, + NodeAddress offererNodeAddress, + PubKeyRing pubKeyRing, + Direction direction, + long fiatPrice, + double marketPriceMargin, + boolean useMarketBasedPrice, + long amount, + long minAmount, + String currencyCode, + List arbitratorNodeAddresses, + String paymentMethodName, + String offererPaymentAccountId, + @Nullable String offerFeePaymentTxID, + @Nullable String countryCode, + @Nullable List acceptedCountryCodes, + @Nullable String bankId, + @Nullable List acceptedBankIds, + String versionNr, + long blockHeightAtOfferCreation, + long txFee, + long createOfferFee, + long securityDeposit, + long maxTradeLimit, + long maxTradePeriod, + boolean useAutoClose, + boolean useReOpenAfterAutoClose, + long lowerClosePrice, + long upperClosePrice, + boolean isPrivateOffer, + @Nullable String hashOfChallenge, + @Nullable Map extraDataMap) { this.id = id; this.offererNodeAddress = offererNodeAddress; @@ -289,7 +270,6 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload this.acceptedCountryCodes = Optional.ofNullable(acceptedCountryCodes).orElse(Lists.newArrayList()); this.bankId = Optional.ofNullable(bankId).orElse(""); this.acceptedBankIds = Optional.ofNullable(acceptedBankIds).orElse(Lists.newArrayList()); - this.priceFeedService = priceFeedService; this.versionNr = versionNr; this.blockHeightAtOfferCreation = blockHeightAtOfferCreation; this.txFee = txFee; @@ -306,28 +286,16 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload this.extraDataMap = Optional.ofNullable(extraDataMap).orElse(Maps.newHashMap()); this.date = Optional.ofNullable(creationDate).orElse(new Date().getTime()); this.protocolVersion = Version.TRADE_PROTOCOL_VERSION; - - setState(State.UNDEFINED); - init(); } private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { try { in.defaultReadObject(); - init(); } catch (Throwable t) { log.warn("Cannot be deserialized." + t.getMessage()); } } - private void init() { - stateProperty = new SimpleObjectProperty<>(State.UNDEFINED); - - // we don't need to fill it as the error message is only relevant locally, so we don't store it in the transmitted object - errorMessageProperty = new SimpleStringProperty(); - decimalFormat = new DecimalFormat("#.#"); - decimalFormat.setMaximumFractionDigits(Fiat.SMALLEST_UNIT_EXPONENT); - } @Override public NodeAddress getOwnerNodeAddress() { @@ -344,7 +312,6 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload checkNotNull(getId(), "Id is null"); checkNotNull(getPubKeyRing(), "pubKeyRing is null"); checkNotNull(getMinAmount(), "MinAmount is null"); - checkNotNull(getPrice(), "Price is null"); checkNotNull(getTxFee(), "txFee is null"); checkNotNull(getCreateOfferFee(), "CreateOfferFee is null"); checkNotNull(getVersionNr(), "VersionNr is null"); @@ -352,107 +319,22 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload checkNotNull(getMaxTradeLimit(), "MaxTradeLimit is null"); checkArgument(getMaxTradePeriod() > 0, "maxTradePeriod is 0 or negative. maxTradePeriod=" + getMaxTradePeriod()); - Preconditions.checkArgument(getMinAmount().compareTo(Restrictions.MIN_TRADE_AMOUNT) >= 0, "MinAmount is less then " + checkArgument(getMinAmount().compareTo(Restrictions.MIN_TRADE_AMOUNT) >= 0, "MinAmount is less then " + Restrictions.MIN_TRADE_AMOUNT.toFriendlyString()); - Preconditions.checkArgument(getAmount().compareTo(getPaymentMethod().getMaxTradeLimit()) <= 0, "Amount is larger then " + checkArgument(getAmount().compareTo(getPaymentMethod().getMaxTradeLimit()) <= 0, "Amount is larger then " + getPaymentMethod().getMaxTradeLimit().toFriendlyString()); checkArgument(getAmount().compareTo(getMinAmount()) >= 0, "MinAmount is larger then Amount"); - - checkArgument(getPrice().isPositive(), "Price is not a positive value"); // TODO check upper and lower bounds for fiat } - public void resetState() { - setState(State.UNDEFINED); - } - - public boolean isMyOffer(KeyRing keyRing) { - return getPubKeyRing().equals(keyRing.getPubKeyRing()); - } - - @Nullable - public Fiat getVolumeByAmount(Coin amount) { - Fiat price = getPrice(); - if (price != null && amount != null) { - try { - return new ExchangeRate(price).coinToFiat(amount); - } catch (Throwable t) { - log.error("getVolumeByAmount failed. Error=" + t.getMessage()); - return null; - } - } else { - return null; - } - } - - @Nullable - public Fiat getOfferVolume() { - return getVolumeByAmount(getAmount()); - } - - @Nullable - public Fiat getMinOfferVolume() { - return getVolumeByAmount(getMinAmount()); - } - - - /////////////////////////////////////////////////////////////////////////////////////////// - // Availability - /////////////////////////////////////////////////////////////////////////////////////////// - - // TODO refactor those out of Offer, offer should be pure value object - public void checkOfferAvailability(OfferAvailabilityModel model, ResultHandler resultHandler, - ErrorMessageHandler errorMessageHandler) { - availabilityProtocol = new OfferAvailabilityProtocol(model, - () -> { - cancelAvailabilityRequest(); - resultHandler.handleResult(); - }, - (errorMessage) -> { - if (availabilityProtocol != null) - availabilityProtocol.cancel(); - log.error(errorMessage); - errorMessageHandler.handleErrorMessage(errorMessage); - }); - availabilityProtocol.sendOfferAvailabilityRequest(); - } - - // TODO refactor those out of Offer, offer should be pure value object - public void cancelAvailabilityRequest() { - if (availabilityProtocol != null) - availabilityProtocol.cancel(); - } - - /////////////////////////////////////////////////////////////////////////////////////////// - // Setters - /////////////////////////////////////////////////////////////////////////////////////////// - - - public void setPriceFeedService(PriceFeedService priceFeedService) { - this.priceFeedService = priceFeedService; - } - - public void setState(State state) { - this.state = state; - stateProperty().set(state); - } - - public void setOfferFeePaymentTxID(String offerFeePaymentTxID) { - this.offerFeePaymentTxID = offerFeePaymentTxID; - } - - public void setErrorMessage(String errorMessage) { - this.errorMessageProperty.set(errorMessage); - } - /////////////////////////////////////////////////////////////////////////////////////////// // Getters /////////////////////////////////////////////////////////////////////////////////////////// - @Override - public long getTTL() { - return TTL; + + public Direction getMirroredDirection() { + return direction == Direction.BUY ? Direction.SELL : Direction.BUY; } @Override @@ -460,171 +342,14 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload return pubKeyRing != null ? pubKeyRing.getSignaturePubKey() : null; } - public long getProtocolVersion() { - return protocolVersion; - } - - public String getId() { - return id; - } - public String getShortId() { return Utilities.getShortId(id); } - public NodeAddress getOffererNodeAddress() { - return offererNodeAddress; - } - - public PubKeyRing getPubKeyRing() { - return pubKeyRing; - } - - // TODO refactor those out of Offer, offer should be pure value object - @Nullable - public Fiat getPrice() { - if (useMarketBasedPrice) { - checkNotNull(priceFeedService, "priceFeed must not be null"); - MarketPrice marketPrice = priceFeedService.getMarketPrice(currencyCode); - if (marketPrice != null) { - PriceFeedService.Type priceFeedType; - double factor; - if (CurrencyUtil.isCryptoCurrency(currencyCode)) { - priceFeedType = direction == Direction.BUY ? PriceFeedService.Type.ASK : PriceFeedService.Type.BID; - factor = direction == Offer.Direction.SELL ? 1 - marketPriceMargin : 1 + marketPriceMargin; - } else { - priceFeedType = direction == Direction.SELL ? PriceFeedService.Type.ASK : PriceFeedService.Type.BID; - factor = direction == Offer.Direction.BUY ? 1 - marketPriceMargin : 1 + marketPriceMargin; - } - double marketPriceAsDouble = marketPrice.getPrice(priceFeedType); - double targetPrice = marketPriceAsDouble * factor; - if (CurrencyUtil.isCryptoCurrency(currencyCode)) - targetPrice = targetPrice != 0 ? 1d / targetPrice : 0; - try { - final double rounded = MathUtils.roundDouble(targetPrice, Fiat.SMALLEST_UNIT_EXPONENT); - return Fiat.parseFiat(currencyCode, decimalFormat.format(rounded).replace(",", ".")); - } catch (Exception e) { - log.error("Exception at getPrice / parseToFiat: " + e.toString() + "\n" + - "That case should never happen."); - return null; - } - } else { - log.debug("We don't have a market price.\n" + - "That case could only happen if you don't have a price feed."); - return null; - } - } else { - return Fiat.valueOf(currencyCode, fiatPrice); - } - } - - // TODO refactor those out of Offer, offer should be pure value object - public void checkTradePriceTolerance(long takersTradePrice) throws TradePriceOutOfToleranceException, MarketPriceNotAvailableException, IllegalArgumentException { - checkArgument(takersTradePrice > 0, "takersTradePrice must be positive"); - Fiat tradePriceAsFiat = Fiat.valueOf(getCurrencyCode(), takersTradePrice); - Fiat offerPriceAsFiat = getPrice(); - - if (offerPriceAsFiat == null) - throw new MarketPriceNotAvailableException("Market price required for calculating trade price is not available."); - - double factor = (double) takersTradePrice / (double) offerPriceAsFiat.value; - // We allow max. 2 % difference between own offer price calculation and takers calculation. - // Market price might be different at offerer's and takers side so we need a bit of tolerance. - // The tolerance will get smaller once we have multiple price feeds avoiding fast price fluctuations - // from one provider. - if (Math.abs(1 - factor) > 0.02) { - String msg = "Taker's trade price is too far away from our calculated price based on the market price.\n" + - "tradePriceAsFiat=" + tradePriceAsFiat.toFriendlyString() + "\n" + - "offerPriceAsFiat=" + offerPriceAsFiat.toFriendlyString(); - log.warn(msg); - throw new TradePriceOutOfToleranceException(msg); - } - } - - public double getMarketPriceMargin() { - return marketPriceMargin; - } - - public boolean getUseMarketBasedPrice() { - return useMarketBasedPrice; - } - - public Coin getAmount() { - return Coin.valueOf(amount); - } - - public Coin getMinAmount() { - return Coin.valueOf(minAmount); - } - - public Direction getDirection() { - return direction; - } - - public Direction getMirroredDirection() { - return direction == Direction.BUY ? Direction.SELL : Direction.BUY; - } - public PaymentMethod getPaymentMethod() { return PaymentMethod.getPaymentMethodById(paymentMethodName); } - public String getCurrencyCode() { - return currencyCode; - } - - @Nullable - public String getCountryCode() { - return countryCode; - } - - @Nullable - public List getAcceptedCountryCodes() { - return acceptedCountryCodes; - } - - @Nullable - public List getAcceptedBankIds() { - return acceptedBankIds; - } - - @Nullable - public String getBankId() { - return bankId; - } - - public String getOfferFeePaymentTxID() { - return offerFeePaymentTxID; - } - - public List getArbitratorNodeAddresses() { - return arbitratorNodeAddresses; - } - - public Date getDate() { - return new Date(date); - } - - public State getState() { - return state; - } - - public ObjectProperty stateProperty() { - return stateProperty; - } - - public String getOffererPaymentAccountId() { - return offererPaymentAccountId; - } - - public ReadOnlyStringProperty errorMessageProperty() { - return errorMessageProperty; - } - - public String getVersionNr() { - return versionNr; - } - public Coin getTxFee() { return Coin.valueOf(txFee); } @@ -641,43 +366,23 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload return Coin.valueOf(maxTradeLimit); } - public long getMaxTradePeriod() { - return maxTradePeriod; + public Coin getAmount() { + return Coin.valueOf(amount); } - public long getBlockHeightAtOfferCreation() { - return blockHeightAtOfferCreation; + public Coin getMinAmount() { + return Coin.valueOf(minAmount); } - public boolean isUseAutoClose() { - return useAutoClose; + public Date getDate() { + return new Date(date); } - public boolean isUseReOpenAfterAutoClose() { - return useReOpenAfterAutoClose; + @Override + public long getTTL() { + return TTL; } - public long getLowerClosePrice() { - return lowerClosePrice; - } - - public long getUpperClosePrice() { - return upperClosePrice; - } - - public boolean isPrivateOffer() { - return isPrivateOffer; - } - - @Nullable - public String getHashOfChallenge() { - return hashOfChallenge; - } - - @Nullable - public Map getExtraDataMap() { - return extraDataMap; - } @Override public Messages.StoragePayload toProtoBuf() { @@ -716,7 +421,7 @@ public final class Offer implements StoragePayload, RequiresOwnerIsOnlinePayload if (Objects.nonNull(offerFeePaymentTxID)) { offerBuilder.setOfferFeePaymentTxID(offerFeePaymentTxID); } else { - throw new RuntimeException("Offer is in invalid state: offerFeePaymentTxID is not set when adding to P2P network."); + throw new RuntimeException("OfferPayload is in invalid state: offerFeePaymentTxID is not set when adding to P2P network."); } Optional.ofNullable(countryCode).ifPresent(offerBuilder::setCountryCode); Optional.ofNullable(bankId).ifPresent(offerBuilder::setBankId); diff --git a/network/src/main/java/io/bisq/messages/trade/payload/Contract.java b/network-messages/src/main/java/io/bisq/network_messages/trade/payload/Contract.java similarity index 97% rename from network/src/main/java/io/bisq/messages/trade/payload/Contract.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/payload/Contract.java index f77a585598..58a5e12878 100644 --- a/network/src/main/java/io/bisq/messages/trade/payload/Contract.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/payload/Contract.java @@ -15,18 +15,18 @@ * along with bisq. If not, see . */ -package io.bisq.messages.trade.payload; +package io.bisq.network_messages.trade.payload; import com.google.common.base.Preconditions; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.crypto.PubKeyRing; import io.bisq.common.util.JsonExclude; -import io.bisq.common.wire.Payload; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.wire.Payload; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; import org.bitcoinj.core.Coin; import org.bitcoinj.core.Utils; import org.bitcoinj.utils.Fiat; @@ -41,7 +41,7 @@ public final class Contract implements Payload { @JsonExclude public static final long serialVersionUID = Version.P2P_NETWORK_VERSION; - public final Offer offer; + public final OfferPayload offer; private final long tradeAmount; private final long tradePrice; public final String takeOfferFeeTxID; @@ -66,7 +66,7 @@ public final class Contract implements Payload { @JsonExclude private final byte[] takerMultiSigPubKey; - public Contract(Offer offer, + public Contract(OfferPayload offer, Coin tradeAmount, Fiat tradePrice, String takeOfferFeeTxID, diff --git a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/DepositTxPublishedMessage.java b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/DepositTxPublishedMessage.java similarity index 92% rename from network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/DepositTxPublishedMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/DepositTxPublishedMessage.java index 5bcef040cd..fb0c6e9c49 100644 --- a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/DepositTxPublishedMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/DepositTxPublishedMessage.java @@ -15,15 +15,15 @@ * along with bisq. If not, see . */ -package io.bisq.messages.trade.protocol.trade.messages; +package io.bisq.network_messages.trade.protocol.trade.messages; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.util.ProtoBufferUtils; import javax.annotation.concurrent.Immutable; import java.util.Arrays; diff --git a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/FiatTransferStartedMessage.java b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/FiatTransferStartedMessage.java similarity index 92% rename from network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/FiatTransferStartedMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/FiatTransferStartedMessage.java index 0b60020749..dca4718b22 100644 --- a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/FiatTransferStartedMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/FiatTransferStartedMessage.java @@ -15,14 +15,14 @@ * along with bisq. If not, see . */ -package io.bisq.messages.trade.protocol.trade.messages; +package io.bisq.network_messages.trade.protocol.trade.messages; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.util.ProtoBufferUtils; import javax.annotation.concurrent.Immutable; import java.util.UUID; diff --git a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/FinalizePayoutTxRequest.java b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/FinalizePayoutTxRequest.java similarity index 94% rename from network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/FinalizePayoutTxRequest.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/FinalizePayoutTxRequest.java index 68c15ed39a..853c1d1887 100644 --- a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/FinalizePayoutTxRequest.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/FinalizePayoutTxRequest.java @@ -15,15 +15,15 @@ * along with bisq. If not, see . */ -package io.bisq.messages.trade.protocol.trade.messages; +package io.bisq.network_messages.trade.protocol.trade.messages; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.util.ProtoBufferUtils; import javax.annotation.concurrent.Immutable; import java.util.Arrays; diff --git a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PayDepositRequest.java b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PayDepositRequest.java similarity index 95% rename from network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PayDepositRequest.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PayDepositRequest.java index feff03eacd..89f8289306 100644 --- a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PayDepositRequest.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PayDepositRequest.java @@ -15,18 +15,18 @@ * along with bisq. If not, see . */ -package io.bisq.messages.trade.protocol.trade.messages; +package io.bisq.network_messages.trade.protocol.trade.messages; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.crypto.PubKeyRing; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.btc.data.RawTransactionInput; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.util.ProtoBufferUtils; import org.bitcoinj.core.Coin; import javax.annotation.Nullable; diff --git a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PayoutTxFinalizedMessage.java b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PayoutTxFinalizedMessage.java similarity index 92% rename from network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PayoutTxFinalizedMessage.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PayoutTxFinalizedMessage.java index e79e644b40..2efb1749e9 100644 --- a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PayoutTxFinalizedMessage.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PayoutTxFinalizedMessage.java @@ -15,15 +15,15 @@ * along with bisq. If not, see . */ -package io.bisq.messages.trade.protocol.trade.messages; +package io.bisq.network_messages.trade.protocol.trade.messages; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.protocol.trade.TradeMessage; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.util.ProtoBufferUtils; import javax.annotation.concurrent.Immutable; import java.util.Arrays; diff --git a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PublishDepositTxRequest.java b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PublishDepositTxRequest.java similarity index 93% rename from network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PublishDepositTxRequest.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PublishDepositTxRequest.java index df2d47409b..172fa4e854 100644 --- a/network/src/main/java/io/bisq/messages/trade/protocol/trade/messages/PublishDepositTxRequest.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/protocol/trade/messages/PublishDepositTxRequest.java @@ -15,16 +15,16 @@ * along with bisq. If not, see . */ -package io.bisq.messages.trade.protocol.trade.messages; +package io.bisq.network_messages.trade.protocol.trade.messages; import com.google.protobuf.ByteString; import io.bisq.app.Version; -import io.bisq.common.util.ProtoBufferUtils; import io.bisq.common.util.Utilities; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.btc.data.RawTransactionInput; -import io.bisq.messages.payment.payload.PaymentAccountContractData; -import io.bisq.messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.payment.payload.PaymentAccountContractData; +import io.bisq.network_messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.util.ProtoBufferUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/trade/statistics/payload/TradeStatistics.java b/network-messages/src/main/java/io/bisq/network_messages/trade/statistics/payload/TradeStatistics.java similarity index 91% rename from network/src/main/java/io/bisq/messages/trade/statistics/payload/TradeStatistics.java rename to network-messages/src/main/java/io/bisq/network_messages/trade/statistics/payload/TradeStatistics.java index 9ebec8b10d..4725c4b6c5 100644 --- a/network/src/main/java/io/bisq/messages/trade/statistics/payload/TradeStatistics.java +++ b/network-messages/src/main/java/io/bisq/network_messages/trade/statistics/payload/TradeStatistics.java @@ -1,14 +1,14 @@ -package io.bisq.messages.trade.statistics.payload; +package io.bisq.network_messages.trade.statistics.payload; import io.bisq.app.Capabilities; import io.bisq.app.Version; -import io.bisq.common.crypto.PubKeyRing; import io.bisq.common.util.JsonExclude; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.storage.payload.CapabilityRequiringPayload; -import io.bisq.p2p.storage.payload.LazyProcessedStoragePayload; -import io.bisq.p2p.storage.payload.PersistedStoragePayload; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.payload.CapabilityRequiringPayload; +import io.bisq.network_messages.payload.LazyProcessedStoragePayload; +import io.bisq.network_messages.payload.PersistedStoragePayload; import org.bitcoinj.core.Coin; import org.bitcoinj.utils.ExchangeRate; import org.bitcoinj.utils.Fiat; @@ -32,7 +32,7 @@ public final class TradeStatistics implements LazyProcessedStoragePayload, Capab public static final long TTL = TimeUnit.DAYS.toMillis(30); public final String currency; - public final Offer.Direction direction; + public final OfferPayload.Direction direction; public final long tradePrice; public final long tradeAmount; public final long tradeDate; @@ -47,14 +47,14 @@ public final class TradeStatistics implements LazyProcessedStoragePayload, Capab @JsonExclude public final PubKeyRing pubKeyRing; - public TradeStatistics(Offer offer, Fiat tradePrice, Coin tradeAmount, Date tradeDate, String depositTxId, PubKeyRing pubKeyRing) { + public TradeStatistics(OfferPayload offer, Fiat tradePrice, Coin tradeAmount, Date tradeDate, String depositTxId, PubKeyRing pubKeyRing) { this(offer.getDirection(), offer.getCurrencyCode(), offer.getPaymentMethod().getId(), offer.getDate().getTime() - , offer.getUseMarketBasedPrice(), offer.getMarketPriceMargin(), offer.getAmount().value, + , offer.isUseMarketBasedPrice(), offer.getMarketPriceMargin(), offer.getAmount().value, offer.getMinAmount().value, offer.getId(), tradePrice.longValue(), tradeAmount.value, tradeDate.getTime(), depositTxId, pubKeyRing); } - public TradeStatistics(Offer.Direction direction, String offerCurrency, String offerPaymentMethod, + public TradeStatistics(OfferPayload.Direction direction, String offerCurrency, String offerPaymentMethod, long offerDate, boolean offerUseMarketBasedPrice, double offerMarketPriceMargin, long offerAmount, long offerMinAmount, String offerId, long tradePrice, long tradeAmount, long tradeDate, diff --git a/common/src/main/java/io/bisq/common/util/ProtoBufferUtils.java b/network-messages/src/main/java/io/bisq/network_messages/util/ProtoBufferUtils.java similarity index 79% rename from common/src/main/java/io/bisq/common/util/ProtoBufferUtils.java rename to network-messages/src/main/java/io/bisq/network_messages/util/ProtoBufferUtils.java index 81f4703d7d..214814ad10 100644 --- a/common/src/main/java/io/bisq/common/util/ProtoBufferUtils.java +++ b/network-messages/src/main/java/io/bisq/network_messages/util/ProtoBufferUtils.java @@ -1,10 +1,10 @@ -package io.bisq.common.util; +package io.bisq.network_messages.util; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; /** - * Created by mike on 07/02/2017. + * Created by mike on 14/03/2017. */ public class ProtoBufferUtils { public static Messages.Envelope.Builder getBaseEnvelope() { diff --git a/network/src/main/java/io/bisq/messages/util/Validator.java b/network-messages/src/main/java/io/bisq/network_messages/util/Validator.java similarity index 94% rename from network/src/main/java/io/bisq/messages/util/Validator.java rename to network-messages/src/main/java/io/bisq/network_messages/util/Validator.java index 30dd8acc28..c18e251ba1 100644 --- a/network/src/main/java/io/bisq/messages/util/Validator.java +++ b/network-messages/src/main/java/io/bisq/network_messages/util/Validator.java @@ -15,9 +15,9 @@ * along with bisq. If not, see . */ -package io.bisq.messages.util; +package io.bisq.network_messages.util; -import io.bisq.messages.protocol.trade.TradeMessage; +import io.bisq.network_messages.protocol.trade.TradeMessage; import org.bitcoinj.core.Coin; import static com.google.common.base.Preconditions.checkArgument; diff --git a/common/src/main/java/io/bisq/common/wire/Payload.java b/network-messages/src/main/java/io/bisq/network_messages/wire/Payload.java similarity index 72% rename from common/src/main/java/io/bisq/common/wire/Payload.java rename to network-messages/src/main/java/io/bisq/network_messages/wire/Payload.java index 7b18966b67..2055de5cfb 100644 --- a/common/src/main/java/io/bisq/common/wire/Payload.java +++ b/network-messages/src/main/java/io/bisq/network_messages/wire/Payload.java @@ -1,7 +1,7 @@ -package io.bisq.common.wire; +package io.bisq.network_messages.wire; import com.google.protobuf.Message; -import io.bisq.messages.ToProtoBuffer; +import io.bisq.network_messages.ToProtoBuffer; import java.io.Serializable; diff --git a/common/src/main/proto/bsmessage.proto b/network-messages/src/main/proto/bsmessage.proto similarity index 100% rename from common/src/main/proto/bsmessage.proto rename to network-messages/src/main/proto/bsmessage.proto diff --git a/network/src/test/java/io/bisq/messages/alert/AlertTest.java b/network-messages/src/test/java/io/bisq/network_messages/alert/AlertTest.java similarity index 97% rename from network/src/test/java/io/bisq/messages/alert/AlertTest.java rename to network-messages/src/test/java/io/bisq/network_messages/alert/AlertTest.java index b4435718bd..7b26bd1b34 100644 --- a/network/src/test/java/io/bisq/messages/alert/AlertTest.java +++ b/network-messages/src/test/java/io/bisq/network_messages/alert/AlertTest.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.alert; +package io.bisq.network_messages.alert; import org.junit.Test; import org.slf4j.Logger; diff --git a/common/src/test/java/io/bisq/common/crypto/EncryptionTest.java b/network-messages/src/test/java/io/bisq/network_messages/crypto/EncryptionTest.java similarity index 92% rename from common/src/test/java/io/bisq/common/crypto/EncryptionTest.java rename to network-messages/src/test/java/io/bisq/network_messages/crypto/EncryptionTest.java index 2b8b3dc5d0..416279b1ca 100644 --- a/common/src/test/java/io/bisq/common/crypto/EncryptionTest.java +++ b/network-messages/src/test/java/io/bisq/network_messages/crypto/EncryptionTest.java @@ -1,5 +1,6 @@ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; +import io.bisq.common.crypto.CryptoException; import io.bisq.storage.FileUtil; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.After; diff --git a/common/src/test/java/io/bisq/common/crypto/SigTest.java b/network-messages/src/test/java/io/bisq/network_messages/crypto/SigTest.java similarity index 94% rename from common/src/test/java/io/bisq/common/crypto/SigTest.java rename to network-messages/src/test/java/io/bisq/network_messages/crypto/SigTest.java index 629a8ff7dc..4a13634481 100644 --- a/common/src/test/java/io/bisq/common/crypto/SigTest.java +++ b/network-messages/src/test/java/io/bisq/network_messages/crypto/SigTest.java @@ -1,5 +1,7 @@ -package io.bisq.common.crypto; +package io.bisq.network_messages.crypto; +import io.bisq.common.crypto.CryptoException; +import io.bisq.common.crypto.Sig; import io.bisq.storage.FileUtil; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.After; diff --git a/network/src/test/java/io/bisq/messages/payment/payload/OKPayAccountContractDataTest.java b/network-messages/src/test/java/io/bisq/network_messages/payment/payload/OKPayAccountContractDataTest.java similarity index 89% rename from network/src/test/java/io/bisq/messages/payment/payload/OKPayAccountContractDataTest.java rename to network-messages/src/test/java/io/bisq/network_messages/payment/payload/OKPayAccountContractDataTest.java index 773064a38c..a2f315b57d 100644 --- a/network/src/test/java/io/bisq/messages/payment/payload/OKPayAccountContractDataTest.java +++ b/network-messages/src/test/java/io/bisq/network_messages/payment/payload/OKPayAccountContractDataTest.java @@ -1,7 +1,8 @@ -package io.bisq.messages.payment.payload; +package io.bisq.network_messages.payment.payload; import com.google.protobuf.util.JsonFormat; import io.bisq.common.wire.proto.Messages; +import io.bisq.network_messages.payment.payload.OKPayAccountContractData; import org.junit.Test; import java.io.IOException; diff --git a/common/src/test/java/io/bisq/common/wire/proto/ProtoBufferTest.java b/network-messages/src/test/java/io/bisq/proto/ProtoBufferTest.java similarity index 96% rename from common/src/test/java/io/bisq/common/wire/proto/ProtoBufferTest.java rename to network-messages/src/test/java/io/bisq/proto/ProtoBufferTest.java index 7c85ebdbdc..376737d3e1 100644 --- a/common/src/test/java/io/bisq/common/wire/proto/ProtoBufferTest.java +++ b/network-messages/src/test/java/io/bisq/proto/ProtoBufferTest.java @@ -1,5 +1,6 @@ -package io.bisq.common.wire.proto; +package io.bisq.proto; +import io.bisq.common.wire.proto.Messages; import lombok.extern.slf4j.Slf4j; import org.junit.Test; diff --git a/network/pom.xml b/network/pom.xml index ab14b27491..bb1c2285fd 100644 --- a/network/pom.xml +++ b/network/pom.xml @@ -17,6 +17,11 @@ common ${project.parent.version} + + io.bisq + network-messages + ${project.parent.version} + io.bisq diff --git a/network/src/main/java/io/bisq/app/BisqEnvironment.java b/network/src/main/java/io/bisq/app/BisqEnvironment.java index fabd5ca73b..aefa36d83c 100644 --- a/network/src/main/java/io/bisq/app/BisqEnvironment.java +++ b/network/src/main/java/io/bisq/app/BisqEnvironment.java @@ -20,12 +20,12 @@ package io.bisq.app; import ch.qos.logback.classic.Level; import io.bisq.BisqException; import io.bisq.common.CommonOptionKeys; -import io.bisq.common.crypto.KeyStorage; import io.bisq.common.util.Utilities; -import io.bisq.messages.btc.BitcoinNetwork; -import io.bisq.messages.btc.BtcOptionKeys; -import io.bisq.messages.btc.UserAgent; -import io.bisq.messages.dao.blockchain.RpcOptionKeys; +import io.bisq.network_messages.btc.BitcoinNetwork; +import io.bisq.network_messages.btc.BtcOptionKeys; +import io.bisq.network_messages.btc.UserAgent; +import io.bisq.network_messages.crypto.KeyStorage; +import io.bisq.network_messages.dao.blockchain.RpcOptionKeys; import io.bisq.network.NetworkOptionKeys; import io.bisq.storage.Storage; import joptsimple.OptionSet; diff --git a/network/src/main/java/io/bisq/crypto/EncryptionService.java b/network/src/main/java/io/bisq/crypto/EncryptionService.java index ba1a93fd64..16c193b4bf 100644 --- a/network/src/main/java/io/bisq/crypto/EncryptionService.java +++ b/network/src/main/java/io/bisq/crypto/EncryptionService.java @@ -18,17 +18,19 @@ package io.bisq.crypto; import com.google.protobuf.InvalidProtocolBufferException; -import io.bisq.common.crypto.*; +import io.bisq.common.crypto.CryptoException; +import io.bisq.common.crypto.Sig; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.Message; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.crypto.*; import io.bisq.p2p.network.ProtoBufferUtilities; import javax.crypto.SecretKey; import javax.inject.Inject; import java.security.PrivateKey; -import static io.bisq.common.crypto.Encryption.decryptPayloadWithHmac; -import static io.bisq.common.crypto.Encryption.decryptSecretKey; +import static io.bisq.network_messages.crypto.Encryption.decryptSecretKey; public class EncryptionService { private final KeyRing keyRing; @@ -59,7 +61,7 @@ public class EncryptionService { Message decryptedPayload = null; try { decryptedPayload = ProtoBufferUtilities - .fromProtoBuf(Messages.Envelope.parseFrom(decryptPayloadWithHmac(sealedAndSigned.encryptedPayloadWithHmac, secretKey))).get(); + .fromProtoBuf(Messages.Envelope.parseFrom(Encryption.decryptPayloadWithHmac(sealedAndSigned.encryptedPayloadWithHmac, secretKey))).get(); } catch (InvalidProtocolBufferException e) { throw new CryptoException("Unable to parse protobuffer message.", e); } diff --git a/network/src/main/java/io/bisq/messages/locale/CountryUtil.java b/network/src/main/java/io/bisq/locale/CountryUtil.java similarity index 83% rename from network/src/main/java/io/bisq/messages/locale/CountryUtil.java rename to network/src/main/java/io/bisq/locale/CountryUtil.java index 1a911eeff0..e4398ccd91 100644 --- a/network/src/main/java/io/bisq/messages/locale/CountryUtil.java +++ b/network/src/main/java/io/bisq/locale/CountryUtil.java @@ -15,11 +15,11 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; import com.google.common.collect.Collections2; import com.google.common.collect.Lists; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,19 +29,23 @@ import java.util.stream.Collectors; public class CountryUtil { private static final Logger log = LoggerFactory.getLogger(CountryUtil.class); - public static List getAllSepaEuroCountries() { + public static List getAllSepaEuroCountries(Locale locale) { List list = new ArrayList<>(); String[] codes = {"AT", "BE", "CY", "DE", "EE", "FI", "FR", "GR", "IE", "IT", "LV", "LT", "LU", "MC", "MT", "NL", "PT", "SK", "SI", "ES"}; - populateCountryListByCodes(list, codes); + populateCountryListByCodes(list, codes, locale); list.sort((a, b) -> a.name.compareTo(b.name)); return list; } private static void populateCountryListByCodes(List list, String[] codes) { + + } + + private static void populateCountryListByCodes(List list, String[] codes, Locale defaultLocale) { for (String code : codes) { - Locale locale = new Locale(LanguageUtil.getDefaultLanguage(), code, ""); + Locale locale = new Locale(LanguageUtil.getDefaultLanguage(defaultLocale), code, ""); String regionCode = getRegionCode(locale.getCountry()); final Region region = new Region(regionCode, getRegionName(regionCode)); final Country country = new Country(locale.getCountry(), locale.getDisplayCountry(), region); @@ -49,49 +53,56 @@ public class CountryUtil { } } - public static boolean containsAllSepaEuroCountries(List countryCodesToCompare) { + public static boolean containsAllSepaEuroCountries(List countryCodesToCompare, Locale locale) { countryCodesToCompare.sort(String::compareTo); - List countryCodesBase = getAllSepaEuroCountries().stream().map(c -> c.code).collect(Collectors.toList()); + List countryCodesBase = getAllSepaEuroCountries(locale).stream().map(c -> c.code).collect(Collectors.toList()); return countryCodesToCompare.toString().equals(countryCodesBase.toString()); } - public static List getAllSepaNonEuroCountries() { + public static List getAllSepaNonEuroCountries(Locale locale) { List list = new ArrayList<>(); String[] codes = {"BG", "HR", "CZ", "DK", "GB", "HU", "PL", "RO", "SE", "IS", "NO", "LI", "CH"}; - populateCountryListByCodes(list, codes); + populateCountryListByCodes(list, codes, locale); list.sort((a, b) -> a.name.compareTo(b.name)); return list; } - public static List getAllSepaCountries() { + public static List getAllSepaCountries(Locale locale) { List list = new ArrayList<>(); - list.addAll(getAllSepaEuroCountries()); - list.addAll(getAllSepaNonEuroCountries()); + list.addAll(getAllSepaEuroCountries(locale)); + list.addAll(getAllSepaNonEuroCountries(locale)); return list; } - public static Country getDefaultCountry() { - final Locale locale = Preferences.getDefaultLocale(); + public static Country getDefaultCountry(final Locale locale) { String regionCode = getRegionCode(locale.getCountry()); final Region region = new Region(regionCode, getRegionName(regionCode)); return new Country(locale.getCountry(), locale.getDisplayCountry(), region); } public static String getNameByCode(String countryCode) { - return new Locale(LanguageUtil.getDefaultLanguage(), countryCode).getDisplayCountry(); + return getNameByCode(countryCode, Preferences.getDefaultLocale()); + } + + public static String getNameByCode(String countryCode, Locale locale) { + return new Locale(LanguageUtil.getDefaultLanguage(locale), countryCode).getDisplayCountry(); } public static String getNameAndCode(String countryCode) { - return getNameByCode(countryCode) + " (" + countryCode + ")"; + return getNameByCode(countryCode, Preferences.getDefaultLocale()); + } + + public static String getNameAndCode(String countryCode, Locale locale) { + return getNameByCode(countryCode, locale) + " (" + countryCode + ")"; } public static String getCodesString(List countryCodes) { return countryCodes.stream().collect(Collectors.joining(", ")); } - public static String getNamesByCodesString(List countryCodes) { - return getNamesByCodes(countryCodes).stream().collect(Collectors.joining(",\n")); + public static String getNamesByCodesString(List countryCodes, Locale locale) { + return getNamesByCodes(countryCodes, locale).stream().collect(Collectors.joining(",\n")); } public static List getAllRegions() { @@ -159,8 +170,8 @@ public class CountryUtil { return allCountryLocales; } - private static List getNamesByCodes(List countryCodes) { - return countryCodes.stream().map(CountryUtil::getNameByCode).collect(Collectors.toList()); + private static List getNamesByCodes(List countryCodes, Locale locale) { + return countryCodes.stream().map(s -> CountryUtil.getNameByCode(s, locale)).collect(Collectors.toList()); } // other source of countries: https://developers.braintreepayments.com/reference/general/countries/java @@ -202,8 +213,8 @@ public class CountryUtil { } } - public static String getDefaultCountryCode() { + public static String getDefaultCountryCode(Locale locale) { // might be set later in pref or config, so not use Preferences.getDefaultLocale() anywhere in the code - return Preferences.getDefaultLocale().getCountry(); + return locale.getCountry(); } } diff --git a/network/src/main/java/io/bisq/messages/locale/CryptoCurrency.java b/network/src/main/java/io/bisq/locale/CryptoCurrency.java similarity index 98% rename from network/src/main/java/io/bisq/messages/locale/CryptoCurrency.java rename to network/src/main/java/io/bisq/locale/CryptoCurrency.java index 0105150648..329b91778d 100644 --- a/network/src/main/java/io/bisq/messages/locale/CryptoCurrency.java +++ b/network/src/main/java/io/bisq/locale/CryptoCurrency.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; import io.bisq.app.Version; diff --git a/common/src/main/java/io/bisq/locale/CurrencyTuple.java b/network/src/main/java/io/bisq/locale/CurrencyTuple.java similarity index 100% rename from common/src/main/java/io/bisq/locale/CurrencyTuple.java rename to network/src/main/java/io/bisq/locale/CurrencyTuple.java diff --git a/network/src/main/java/io/bisq/messages/locale/CurrencyUtil.java b/network/src/main/java/io/bisq/locale/CurrencyUtil.java similarity index 81% rename from network/src/main/java/io/bisq/messages/locale/CurrencyUtil.java rename to network/src/main/java/io/bisq/locale/CurrencyUtil.java index fa4bb1d8d6..91744dd6b1 100644 --- a/network/src/main/java/io/bisq/messages/locale/CurrencyUtil.java +++ b/network/src/main/java/io/bisq/locale/CurrencyUtil.java @@ -15,9 +15,9 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,11 +27,15 @@ import java.util.stream.Collectors; public class CurrencyUtil { private static final Logger log = LoggerFactory.getLogger(CurrencyUtil.class); - private static final List allSortedFiatCurrencies = createAllSortedFiatCurrenciesList(); + private static List allSortedFiatCurrencies; private static List createAllSortedFiatCurrenciesList() { + return createAllSortedFiatCurrenciesList(Preferences.getDefaultLocale()); + } + + private static List createAllSortedFiatCurrenciesList(Locale locale) { Set set = CountryUtil.getAllCountries().stream() - .map(country -> getCurrencyByCountryCode(country.code)) + .map(country -> getCurrencyByCountryCode(country.code, locale)) .collect(Collectors.toSet()); List list = new ArrayList<>(set); list.sort(TradeCurrency::compareTo); @@ -39,23 +43,33 @@ public class CurrencyUtil { } public static List getAllSortedFiatCurrencies() { + return getAllSortedFiatCurrencies(Preferences.getDefaultLocale()); + } + + public static List getAllSortedFiatCurrencies(Locale locale) { + if(Objects.isNull(allSortedFiatCurrencies)) { + allSortedFiatCurrencies = createAllSortedFiatCurrenciesList(locale); + } return allSortedFiatCurrencies; } public static List getAllMainFiatCurrencies() { + return getAllMainFiatCurrencies(Preferences.getDefaultLocale(), Preferences.getDefaultTradeCurrency()); + } + + public static List getAllMainFiatCurrencies(Locale locale, TradeCurrency defaultTradeCurrency) { List list = new ArrayList<>(); // Top traded currencies - list.add(new FiatCurrency("USD")); - list.add(new FiatCurrency("EUR")); - list.add(new FiatCurrency("GBP")); - list.add(new FiatCurrency("CAD")); - list.add(new FiatCurrency("AUD")); - list.add(new FiatCurrency("RUB")); - list.add(new FiatCurrency("INR")); + list.add(new FiatCurrency("USD", locale)); + list.add(new FiatCurrency("EUR", locale)); + list.add(new FiatCurrency("GBP", locale)); + list.add(new FiatCurrency("CAD", locale)); + list.add(new FiatCurrency("AUD", locale)); + list.add(new FiatCurrency("RUB", locale)); + list.add(new FiatCurrency("INR", locale)); list.sort(TradeCurrency::compareTo); - TradeCurrency defaultTradeCurrency = getDefaultTradeCurrency(); FiatCurrency defaultFiatCurrency = defaultTradeCurrency instanceof FiatCurrency ? (FiatCurrency) defaultTradeCurrency : null; if (defaultFiatCurrency != null && list.contains(defaultFiatCurrency)) { list.remove(defaultTradeCurrency); @@ -241,36 +255,36 @@ public class CurrencyUtil { /** * @return Sorted list of SEPA currencies with EUR as first item */ - private static Set getSortedSEPACurrencyCodes() { - return CountryUtil.getAllSepaCountries().stream() - .map(country -> getCurrencyByCountryCode(country.code)) + private static Set getSortedSEPACurrencyCodes(Locale locale) { + return CountryUtil.getAllSepaCountries(locale).stream() + .map(country -> getCurrencyByCountryCode(country.code, locale)) .collect(Collectors.toSet()); } // At OKPay you can exchange internally those currencies - public static List getAllOKPayCurrencies() { + public static List getAllOKPayCurrencies(Locale locale) { ArrayList currencies = new ArrayList<>(Arrays.asList( - new FiatCurrency("EUR"), - new FiatCurrency("USD"), - new FiatCurrency("GBP"), - new FiatCurrency("CHF"), - new FiatCurrency("RUB"), - new FiatCurrency("PLN"), - new FiatCurrency("JPY"), - new FiatCurrency("CAD"), - new FiatCurrency("AUD"), - new FiatCurrency("CZK"), - new FiatCurrency("NOK"), - new FiatCurrency("SEK"), - new FiatCurrency("DKK"), - new FiatCurrency("HRK"), - new FiatCurrency("HUF"), - new FiatCurrency("NZD"), - new FiatCurrency("RON"), - new FiatCurrency("TRY"), - new FiatCurrency("ZAR"), - new FiatCurrency("HKD"), - new FiatCurrency("CNY") + new FiatCurrency("EUR", locale), + new FiatCurrency("USD", locale), + new FiatCurrency("GBP", locale), + new FiatCurrency("CHF", locale), + new FiatCurrency("RUB", locale), + new FiatCurrency("PLN", locale), + new FiatCurrency("JPY", locale), + new FiatCurrency("CAD", locale), + new FiatCurrency("AUD", locale), + new FiatCurrency("CZK", locale), + new FiatCurrency("NOK", locale), + new FiatCurrency("SEK", locale), + new FiatCurrency("DKK", locale), + new FiatCurrency("HRK", locale), + new FiatCurrency("HUF", locale), + new FiatCurrency("NZD", locale), + new FiatCurrency("RON", locale), + new FiatCurrency("TRY", locale), + new FiatCurrency("ZAR", locale), + new FiatCurrency("HKD", locale), + new FiatCurrency("CNY", locale) )); currencies.sort(TradeCurrency::compareTo); return currencies; @@ -285,7 +299,7 @@ public class CurrencyUtil { } public static Optional getFiatCurrency(String currencyCode) { - return allSortedFiatCurrencies.stream().filter(e -> e.getCode().equals(currencyCode)).findAny(); + return getAllSortedFiatCurrencies().stream().filter(e -> e.getCode().equals(currencyCode)).findAny(); } @SuppressWarnings("WeakerAccess") @@ -312,16 +326,24 @@ public class CurrencyUtil { } public static FiatCurrency getCurrencyByCountryCode(String countryCode) { - return new FiatCurrency(Currency.getInstance(new Locale(LanguageUtil.getDefaultLanguage(), countryCode)).getCurrencyCode()); + return getCurrencyByCountryCode(countryCode, Preferences.getDefaultLocale()); + } + + public static FiatCurrency getCurrencyByCountryCode(String countryCode, Locale locale) { + return new FiatCurrency(Currency.getInstance(new Locale(LanguageUtil.getDefaultLanguage(locale), countryCode)).getCurrencyCode(), locale); } public static String getNameByCode(String currencyCode) { + return getNameAndCode(currencyCode, Preferences.getDefaultLocale()); + } + + public static String getNameByCode(String currencyCode, Locale locale) { if (isCryptoCurrency(currencyCode)) return getCryptoCurrency(currencyCode).get().getName(); else try { - return Currency.getInstance(currencyCode).getDisplayName(Preferences.getDefaultLocale()); + return Currency.getInstance(currencyCode).getDisplayName(locale); } catch (Throwable t) { log.debug("No currency name available " + t.getMessage()); return currencyCode; @@ -329,11 +351,10 @@ public class CurrencyUtil { } public static String getNameAndCode(String currencyCode) { - return getNameByCode(currencyCode) + " (" + currencyCode + ")"; + return getNameAndCode(currencyCode, Preferences.getDefaultLocale()); } - public static TradeCurrency getDefaultTradeCurrency() { - return Preferences.getDefaultTradeCurrency(); + public static String getNameAndCode(String currencyCode, Locale locale) { + return getNameByCode(currencyCode, locale) + " (" + currencyCode + ")"; } - } diff --git a/network/src/main/java/io/bisq/messages/locale/FiatCurrency.java b/network/src/main/java/io/bisq/locale/FiatCurrency.java similarity index 79% rename from network/src/main/java/io/bisq/messages/locale/FiatCurrency.java rename to network/src/main/java/io/bisq/locale/FiatCurrency.java index 0fe9fdcef4..bb47c7d912 100644 --- a/network/src/main/java/io/bisq/messages/locale/FiatCurrency.java +++ b/network/src/main/java/io/bisq/locale/FiatCurrency.java @@ -15,12 +15,13 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; import io.bisq.app.Version; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import java.util.Currency; +import java.util.Locale; public final class FiatCurrency extends TradeCurrency { // That object is saved to disc. We need to take care of changes to not break deserialization. @@ -32,12 +33,21 @@ public final class FiatCurrency extends TradeCurrency { private final Currency currency; public FiatCurrency(String currencyCode) { - this(Currency.getInstance(currencyCode)); + this(currencyCode, Preferences.getDefaultLocale()); + } + + public FiatCurrency(String currencyCode, Locale locale) { + this(Currency.getInstance(currencyCode), locale); } @SuppressWarnings("WeakerAccess") public FiatCurrency(Currency currency) { - super(currency.getCurrencyCode(), currency.getDisplayName(Preferences.getDefaultLocale()), currency.getSymbol()); + this(currency, Preferences.getDefaultLocale()); + } + + @SuppressWarnings("WeakerAccess") + public FiatCurrency(Currency currency, Locale locale) { + super(currency.getCurrencyCode(), currency.getDisplayName(locale), currency.getSymbol()); this.currency = currency; } diff --git a/network/src/main/java/io/bisq/messages/locale/LanguageUtil.java b/network/src/main/java/io/bisq/locale/LanguageUtil.java similarity index 87% rename from network/src/main/java/io/bisq/messages/locale/LanguageUtil.java rename to network/src/main/java/io/bisq/locale/LanguageUtil.java index e8f59809d4..c10b0ad35f 100644 --- a/network/src/main/java/io/bisq/messages/locale/LanguageUtil.java +++ b/network/src/main/java/io/bisq/locale/LanguageUtil.java @@ -15,9 +15,9 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -96,13 +96,17 @@ public class LanguageUtil { return allLanguageCodes; } - public static String getDefaultLanguage() { + public static String getDefaultLanguage(Locale locale) { // might be set later in pref or config, so not use Preferences.getDefaultLocale() anywhere in the code - return Preferences.getDefaultLocale().getLanguage(); + return locale.getLanguage(); } public static String getDefaultLanguageLocaleAsCode() { - return new Locale(LanguageUtil.getDefaultLanguage(), "").getLanguage(); + return getDefaultLanguageLocaleAsCode(Preferences.getDefaultLocale()); + } + + public static String getDefaultLanguageLocaleAsCode(Locale locale) { + return new Locale(LanguageUtil.getDefaultLanguage(locale), "").getLanguage(); } public static String getEnglishLanguageLocaleCode() { @@ -110,7 +114,8 @@ public class LanguageUtil { } public static String getDisplayName(String code) { - return new Locale(code.toUpperCase()).getDisplayName(Preferences.getDefaultLocale()); + Locale locale = new Locale(code.toUpperCase()); + return locale.getDisplayName(locale); } public static List getUserLanguageCodes() { diff --git a/network/src/main/java/io/bisq/messages/locale/LocaleUtil.java b/network/src/main/java/io/bisq/locale/LocaleUtil.java similarity index 99% rename from network/src/main/java/io/bisq/messages/locale/LocaleUtil.java rename to network/src/main/java/io/bisq/locale/LocaleUtil.java index 02983fb635..ad9dca8280 100644 --- a/network/src/main/java/io/bisq/messages/locale/LocaleUtil.java +++ b/network/src/main/java/io/bisq/locale/LocaleUtil.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/locale/TradeCurrency.java b/network/src/main/java/io/bisq/locale/TradeCurrency.java similarity index 94% rename from network/src/main/java/io/bisq/messages/locale/TradeCurrency.java rename to network/src/main/java/io/bisq/locale/TradeCurrency.java index f5353ca345..0b180469cd 100644 --- a/network/src/main/java/io/bisq/messages/locale/TradeCurrency.java +++ b/network/src/main/java/io/bisq/locale/TradeCurrency.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.locale; +package io.bisq.locale; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; @@ -29,12 +29,6 @@ public abstract class TradeCurrency implements Persistable, Comparable= MSG_THROTTLE_PER_SEC) { // check if we got more than 70 (MSG_THROTTLE_PER_SEC) msg per sec. long compareValue = messageTimeStamps.get(messageTimeStamps.size() - MSG_THROTTLE_PER_SEC).first; - // if duration < 1 sec we received too much messages + // if duration < 1 sec we received too much network_messages violated = now - compareValue < TimeUnit.SECONDS.toMillis(1); if (violated) { log.error("violatesThrottleLimit MSG_THROTTLE_PER_SEC "); @@ -339,7 +339,7 @@ public class Connection implements MessageListener { if (!violated) { // check if we got more than 50 msg per 10 sec. long compareValue = messageTimeStamps.get(messageTimeStamps.size() - MSG_THROTTLE_PER_10_SEC).first; - // if duration < 10 sec we received too much messages + // if duration < 10 sec we received too much network_messages violated = now - compareValue < TimeUnit.SECONDS.toMillis(10); if (violated) { @@ -362,7 +362,7 @@ public class Connection implements MessageListener { // MessageListener implementation /////////////////////////////////////////////////////////////////////////////////////////// - // Only receive non - CloseConnectionMessage messages + // Only receive non - CloseConnectionMessage network_messages @Override public void onMessage(Message message, Connection connection) { checkArgument(connection.equals(this)); @@ -737,13 +737,13 @@ public class Connection implements MessageListener { } Connection connection = sharedModel.connection; - log.trace("InputHandler waiting for incoming messages.\n\tConnection=" + connection); + log.trace("InputHandler waiting for incoming network_messages.\n\tConnection=" + connection); - // Throttle inbound messages + // Throttle inbound network_messages long now = System.currentTimeMillis(); long elapsed = now - lastReadTimeStamp; if (elapsed < 10) { - log.debug("We got 2 messages received in less than 10 ms. We set the thread to sleep " + + log.debug("We got 2 network_messages received in less than 10 ms. We set the thread to sleep " + "for 20 ms to avoid getting flooded by our peer. lastReadTimeStamp={}, now={}, elapsed={}", lastReadTimeStamp, now, elapsed); Thread.sleep(20); @@ -802,7 +802,7 @@ public class Connection implements MessageListener { Utilities.toTruncatedString(envelope.toString()), size); } else if (message instanceof Message) { - // We want to log all incoming messages (except Pong and RefreshTTLMessage) + // We want to log all incoming network_messages (except Pong and RefreshTTLMessage) // so we log before the data type checks //log.info("size={}; object={}", size, Utilities.toTruncatedString(rawInputObject.toString(), 100)); log.debug("\n\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n" + @@ -824,7 +824,7 @@ public class Connection implements MessageListener { // We want to track the size of each object even if it is invalid data connection.statistic.addReceivedBytes(size); - // We want to track the messages also before the checks, so do it early... + // We want to track the network_messages also before the checks, so do it early... if (message instanceof Message) { connection.statistic.addReceivedMessage(message); } @@ -890,12 +890,12 @@ public class Connection implements MessageListener { // First a seed node gets a message from a peer (PreliminaryDataRequest using // AnonymousMessage interface) which does not have its hidden service // published, so it does not know its address. As the IncomingConnection does not have the - // peersNodeAddress set that connection cannot be used for outgoing messages until we + // peersNodeAddress set that connection cannot be used for outgoing network_messages until we // get the address set. // At the data update message (DataRequest using SendersNodeAddressMessage interface) // after the HS is published we get the peer's address set. - // There are only those messages used for new connections to a peer: + // There are only those network_messages used for new connections to a peer: // 1. PreliminaryDataRequest // 2. DataRequest (implements SendersNodeAddressMessage) // 3. GetPeersRequest (implements SendersNodeAddressMessage) diff --git a/network/src/main/java/io/bisq/p2p/network/LocalhostNetworkNode.java b/network/src/main/java/io/bisq/p2p/network/LocalhostNetworkNode.java index c4b327a1a9..ec787031a2 100644 --- a/network/src/main/java/io/bisq/p2p/network/LocalhostNetworkNode.java +++ b/network/src/main/java/io/bisq/p2p/network/LocalhostNetworkNode.java @@ -9,7 +9,7 @@ import com.msopentech.thali.java.toronionproxy.JavaOnionProxyManager; import io.bisq.app.Log; import io.bisq.common.UserThread; import io.bisq.common.util.Utilities; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import io.nucleo.net.HiddenServiceDescriptor; import io.nucleo.net.TorNode; import org.jetbrains.annotations.NotNull; diff --git a/network/src/main/java/io/bisq/p2p/network/MessageListener.java b/network/src/main/java/io/bisq/p2p/network/MessageListener.java index fe5ce55e87..92cc8e2a02 100644 --- a/network/src/main/java/io/bisq/p2p/network/MessageListener.java +++ b/network/src/main/java/io/bisq/p2p/network/MessageListener.java @@ -1,6 +1,6 @@ package io.bisq.p2p.network; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; public interface MessageListener { void onMessage(Message message, Connection connection); diff --git a/network/src/main/java/io/bisq/p2p/network/NetworkNode.java b/network/src/main/java/io/bisq/p2p/network/NetworkNode.java index 8f9f65c335..5c466e276f 100644 --- a/network/src/main/java/io/bisq/p2p/network/NetworkNode.java +++ b/network/src/main/java/io/bisq/p2p/network/NetworkNode.java @@ -5,8 +5,8 @@ import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; import io.bisq.app.Log; import io.bisq.common.UserThread; import io.bisq.common.util.Utilities; -import io.bisq.messages.Message; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; import javafx.beans.property.ObjectProperty; import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; diff --git a/network/src/main/java/io/bisq/p2p/network/OutboundConnection.java b/network/src/main/java/io/bisq/p2p/network/OutboundConnection.java index 214f996e0c..ea500eca68 100644 --- a/network/src/main/java/io/bisq/p2p/network/OutboundConnection.java +++ b/network/src/main/java/io/bisq/p2p/network/OutboundConnection.java @@ -1,6 +1,6 @@ package io.bisq.p2p.network; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import java.net.Socket; diff --git a/network/src/main/java/io/bisq/p2p/network/ProtoBufferUtilities.java b/network/src/main/java/io/bisq/p2p/network/ProtoBufferUtilities.java index bb47dd3b69..3f2ab42b9a 100644 --- a/network/src/main/java/io/bisq/p2p/network/ProtoBufferUtilities.java +++ b/network/src/main/java/io/bisq/p2p/network/ProtoBufferUtilities.java @@ -1,47 +1,48 @@ package io.bisq.p2p.network; import com.google.protobuf.ByteString; -import io.bisq.common.crypto.PubKeyRing; -import io.bisq.common.crypto.SealedAndSigned; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.Message; -import io.bisq.messages.alert.Alert; -import io.bisq.messages.alert.PrivateNotification; -import io.bisq.messages.alert.PrivateNotificationMessage; -import io.bisq.messages.arbitration.*; -import io.bisq.messages.arbitration.payload.Attachment; -import io.bisq.messages.availability.AvailabilityResult; -import io.bisq.messages.availability.OfferAvailabilityRequest; -import io.bisq.messages.availability.OfferAvailabilityResponse; -import io.bisq.messages.btc.data.RawTransactionInput; -import io.bisq.messages.dao.compensation.payload.CompensationRequestPayload; -import io.bisq.messages.filter.payload.Filter; -import io.bisq.messages.filter.payload.PaymentAccountFilter; -import io.bisq.messages.payment.payload.*; -import io.bisq.messages.provider.price.PriceFeedService; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.trade.payload.Contract; -import io.bisq.messages.trade.protocol.trade.messages.*; -import io.bisq.messages.trade.statistics.payload.TradeStatistics; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.PrefixedSealedAndSignedMessage; -import io.bisq.p2p.network.messages.CloseConnectionMessage; -import io.bisq.p2p.peers.getdata.messages.GetDataResponse; -import io.bisq.p2p.peers.getdata.messages.GetUpdatedDataRequest; -import io.bisq.p2p.peers.getdata.messages.PreliminaryGetDataRequest; -import io.bisq.p2p.peers.keepalive.messages.Ping; -import io.bisq.p2p.peers.keepalive.messages.Pong; -import io.bisq.p2p.peers.peerexchange.Peer; -import io.bisq.p2p.peers.peerexchange.messages.GetPeersRequest; -import io.bisq.p2p.peers.peerexchange.messages.GetPeersResponse; -import io.bisq.p2p.storage.messages.AddDataMessage; -import io.bisq.p2p.storage.messages.RefreshTTLMessage; -import io.bisq.p2p.storage.messages.RemoveDataMessage; -import io.bisq.p2p.storage.messages.RemoveMailboxDataMessage; -import io.bisq.p2p.storage.payload.MailboxStoragePayload; -import io.bisq.p2p.storage.payload.StoragePayload; -import io.bisq.p2p.storage.storageentry.ProtectedMailboxStorageEntry; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.locale.CountryUtil; +import io.bisq.network_messages.CloseConnectionMessage; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.alert.Alert; +import io.bisq.network_messages.alert.PrivateNotification; +import io.bisq.network_messages.alert.PrivateNotificationMessage; +import io.bisq.network_messages.arbitration.*; +import io.bisq.network_messages.arbitration.payload.Attachment; +import io.bisq.network_messages.availability.AvailabilityResult; +import io.bisq.network_messages.availability.OfferAvailabilityRequest; +import io.bisq.network_messages.availability.OfferAvailabilityResponse; +import io.bisq.network_messages.btc.data.RawTransactionInput; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.crypto.SealedAndSigned; +import io.bisq.network_messages.dao.compensation.payload.CompensationRequestPayload; +import io.bisq.network_messages.filter.payload.Filter; +import io.bisq.network_messages.filter.payload.PaymentAccountFilter; +import io.bisq.network_messages.p2p.messaging.PrefixedSealedAndSignedMessage; +import io.bisq.network_messages.payment.payload.*; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.trade.payload.Contract; +import io.bisq.network_messages.trade.protocol.trade.messages.*; +import io.bisq.network_messages.trade.statistics.payload.TradeStatistics; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetDataResponse; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetUpdatedDataRequest; +import io.bisq.network_messages.p2p.peers.getdata.messages.PreliminaryGetDataRequest; +import io.bisq.network_messages.p2p.peers.keepalive.messages.Ping; +import io.bisq.network_messages.p2p.peers.keepalive.messages.Pong; +import io.bisq.network_messages.p2p.peers.peerexchange.Peer; +import io.bisq.network_messages.p2p.peers.peerexchange.messages.GetPeersRequest; +import io.bisq.network_messages.p2p.peers.peerexchange.messages.GetPeersResponse; +import io.bisq.network_messages.p2p.storage.messages.AddDataMessage; +import io.bisq.network_messages.p2p.storage.messages.RefreshTTLMessage; +import io.bisq.network_messages.p2p.storage.messages.RemoveDataMessage; +import io.bisq.network_messages.p2p.storage.messages.RemoveMailboxDataMessage; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedMailboxStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.payload.MailboxStoragePayload; +import io.bisq.network_messages.payload.StoragePayload; +import io.bisq.user.Preferences; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.output.WriterOutputStream; import org.bitcoinj.core.Coin; @@ -346,7 +347,7 @@ public class ProtoBufferUtilities { break; case SEPA_ACCOUNT_CONTRACT_DATA: SepaAccountContractData sepaAccountContractData = new SepaAccountContractData(protoEntry.getPaymentMethodName(), protoEntry.getId(), - protoEntry.getMaxTradePeriod()); + protoEntry.getMaxTradePeriod(), CountryUtil.getAllSepaCountries(Preferences.getDefaultLocale())); fillInCountryBasedPaymentAccountContractData(protoEntry, sepaAccountContractData); result = sepaAccountContractData; break; @@ -418,9 +419,8 @@ public class ProtoBufferUtilities { return Fiat.valueOf(currencyCode, tradePrice); } - public static Offer getOffer(Messages.Offer offer) { + public static OfferPayload getOffer(Messages.Offer offer) { List arbitratorNodeAddresses = offer.getArbitratorNodeAddressesList().stream().map(nodeAddress -> getNodeAddress(nodeAddress)).collect(Collectors.toList()); - PriceFeedService priceFeedService = null; // TODO refactor Offer, this should not be passed in the constructor, or we need to inject it in ProtoBufferUtilities // convert these lists because otherwise when they're empty they are lazyStringArrayList objects and NOT serializable, // which is needed for the P2PStorage getHash() operation List acceptedCountryCodes = offer.getAcceptedCountryCodesList().stream().collect(Collectors.toList()); @@ -432,9 +432,9 @@ public class ProtoBufferUtilities { } else { extraDataMapMap = offer.getExtraDataMapMap(); } - return new Offer(offer.getId(), offer.getDate(), getNodeAddress(offer.getOffererNodeAddress()), getPubKeyRing(offer.getPubKeyRing()), getDirection(offer.getDirection()), + return new OfferPayload(offer.getId(), offer.getDate(), getNodeAddress(offer.getOffererNodeAddress()), getPubKeyRing(offer.getPubKeyRing()), getDirection(offer.getDirection()), offer.getFiatPrice(), offer.getMarketPriceMargin(), offer.getUseMarketBasedPrice(), offer.getAmount(), offer.getMinAmount(), offer.getCurrencyCode(), arbitratorNodeAddresses, - offer.getPaymentMethodName(), offer.getOffererPaymentAccountId(), offer.getOfferFeePaymentTxID(), offer.getCountryCode(), acceptedCountryCodes, offer.getBankId(), acceptedBankIds, priceFeedService, + offer.getPaymentMethodName(), offer.getOffererPaymentAccountId(), offer.getOfferFeePaymentTxID(), offer.getCountryCode(), acceptedCountryCodes, offer.getBankId(), acceptedBankIds, offer.getVersionNr(), offer.getBlockHeightAtOfferCreation(), offer.getTxFee(), offer.getCreateOfferFee(), offer.getSecurityDeposit(), offer.getMaxTradeLimit(), offer.getMaxTradePeriod(), offer.getUseAutoClose(), offer.getUseReOpenAfterAutoClose(), offer.getLowerClosePrice(), offer.getUpperClosePrice(), offer.getIsPrivateOffer(), offer.getHashOfChallenge(), extraDataMapMap); } @@ -571,8 +571,8 @@ public class ProtoBufferUtilities { } @NotNull - public static Offer.Direction getDirection(Messages.Offer.Direction direction) { - return Offer.Direction.valueOf(direction.name()); + public static OfferPayload.Direction getDirection(Messages.Offer.Direction direction) { + return OfferPayload.Direction.valueOf(direction.name()); } @NotNull @@ -708,4 +708,5 @@ public class ProtoBufferUtilities { .stream() .map(ByteString::toByteArray).collect(Collectors.toList())); } + } diff --git a/network/src/main/java/io/bisq/p2p/network/Statistic.java b/network/src/main/java/io/bisq/p2p/network/Statistic.java index 7e5542c07b..c4d3fcb4e4 100644 --- a/network/src/main/java/io/bisq/p2p/network/Statistic.java +++ b/network/src/main/java/io/bisq/p2p/network/Statistic.java @@ -1,7 +1,7 @@ package io.bisq.p2p.network; import io.bisq.common.UserThread; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; import javafx.beans.property.IntegerProperty; import javafx.beans.property.LongProperty; import javafx.beans.property.SimpleIntegerProperty; diff --git a/network/src/main/java/io/bisq/p2p/network/TorNetworkNode.java b/network/src/main/java/io/bisq/p2p/network/TorNetworkNode.java index c12a1a710a..4b9cd191b4 100644 --- a/network/src/main/java/io/bisq/p2p/network/TorNetworkNode.java +++ b/network/src/main/java/io/bisq/p2p/network/TorNetworkNode.java @@ -11,7 +11,7 @@ import io.bisq.app.Log; import io.bisq.common.Timer; import io.bisq.common.UserThread; import io.bisq.common.util.Utilities; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.Utils; import io.nucleo.net.HiddenServiceDescriptor; import io.nucleo.net.JavaTorNode; diff --git a/network/src/main/java/io/bisq/p2p/network/messages/AnonymousMessage.java b/network/src/main/java/io/bisq/p2p/network/messages/AnonymousMessage.java deleted file mode 100644 index f7618823f5..0000000000 --- a/network/src/main/java/io/bisq/p2p/network/messages/AnonymousMessage.java +++ /dev/null @@ -1,6 +0,0 @@ -package io.bisq.p2p.network.messages; - -import io.bisq.messages.Message; - -public interface AnonymousMessage extends Message { -} diff --git a/network/src/main/java/io/bisq/p2p/peers/BanList.java b/network/src/main/java/io/bisq/p2p/peers/BanList.java index 2d8cbf1efc..f22b66466d 100644 --- a/network/src/main/java/io/bisq/p2p/peers/BanList.java +++ b/network/src/main/java/io/bisq/p2p/peers/BanList.java @@ -1,6 +1,6 @@ package io.bisq.p2p.peers; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/peers/BroadcastHandler.java b/network/src/main/java/io/bisq/p2p/peers/BroadcastHandler.java index 1e5b20cc8f..32142aec0f 100644 --- a/network/src/main/java/io/bisq/p2p/peers/BroadcastHandler.java +++ b/network/src/main/java/io/bisq/p2p/peers/BroadcastHandler.java @@ -7,10 +7,10 @@ import io.bisq.app.Log; import io.bisq.common.Timer; import io.bisq.common.UserThread; import io.bisq.common.util.Utilities; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.network.Connection; import io.bisq.p2p.network.NetworkNode; -import io.bisq.p2p.storage.messages.BroadcastMessage; +import io.bisq.network_messages.p2p.storage.messages.BroadcastMessage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; diff --git a/network/src/main/java/io/bisq/p2p/peers/Broadcaster.java b/network/src/main/java/io/bisq/p2p/peers/Broadcaster.java index 8ba2fc220d..8c650f99d2 100644 --- a/network/src/main/java/io/bisq/p2p/peers/Broadcaster.java +++ b/network/src/main/java/io/bisq/p2p/peers/Broadcaster.java @@ -2,9 +2,9 @@ package io.bisq.p2p.peers; import io.bisq.app.Log; import io.bisq.common.util.Utilities; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.network.NetworkNode; -import io.bisq.p2p.storage.messages.BroadcastMessage; +import io.bisq.network_messages.p2p.storage.messages.BroadcastMessage; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/peers/PeerManager.java b/network/src/main/java/io/bisq/p2p/peers/PeerManager.java index 6b1319393a..da7cbea6ee 100644 --- a/network/src/main/java/io/bisq/p2p/peers/PeerManager.java +++ b/network/src/main/java/io/bisq/p2p/peers/PeerManager.java @@ -4,9 +4,9 @@ import io.bisq.app.Log; import io.bisq.common.Clock; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.network.*; -import io.bisq.p2p.peers.peerexchange.Peer; +import io.bisq.network_messages.p2p.peers.peerexchange.Peer; import io.bisq.storage.Storage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/peers/getdata/GetDataRequestHandler.java b/network/src/main/java/io/bisq/p2p/peers/getdata/GetDataRequestHandler.java index baa0e394fe..57d56d78ac 100644 --- a/network/src/main/java/io/bisq/p2p/peers/getdata/GetDataRequestHandler.java +++ b/network/src/main/java/io/bisq/p2p/peers/getdata/GetDataRequestHandler.java @@ -10,13 +10,13 @@ import io.bisq.common.util.Utilities; import io.bisq.p2p.network.CloseConnectionReason; import io.bisq.p2p.network.Connection; import io.bisq.p2p.network.NetworkNode; -import io.bisq.p2p.peers.getdata.messages.GetDataRequest; -import io.bisq.p2p.peers.getdata.messages.GetDataResponse; -import io.bisq.p2p.peers.getdata.messages.GetUpdatedDataRequest; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetDataRequest; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetDataResponse; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetUpdatedDataRequest; import io.bisq.p2p.storage.P2PDataStorage; -import io.bisq.p2p.storage.payload.CapabilityRequiringPayload; -import io.bisq.p2p.storage.payload.StoragePayload; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.payload.CapabilityRequiringPayload; +import io.bisq.network_messages.payload.StoragePayload; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/peers/getdata/RequestDataHandler.java b/network/src/main/java/io/bisq/p2p/peers/getdata/RequestDataHandler.java index 9ca9e12693..2f454dc28c 100644 --- a/network/src/main/java/io/bisq/p2p/peers/getdata/RequestDataHandler.java +++ b/network/src/main/java/io/bisq/p2p/peers/getdata/RequestDataHandler.java @@ -6,22 +6,22 @@ import com.google.common.util.concurrent.SettableFuture; import io.bisq.app.Log; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.messages.Message; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.network.CloseConnectionReason; import io.bisq.p2p.network.Connection; import io.bisq.p2p.network.MessageListener; import io.bisq.p2p.network.NetworkNode; import io.bisq.p2p.peers.PeerManager; -import io.bisq.p2p.peers.getdata.messages.GetDataRequest; -import io.bisq.p2p.peers.getdata.messages.GetDataResponse; -import io.bisq.p2p.peers.getdata.messages.GetUpdatedDataRequest; -import io.bisq.p2p.peers.getdata.messages.PreliminaryGetDataRequest; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetDataRequest; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetDataResponse; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetUpdatedDataRequest; +import io.bisq.network_messages.p2p.peers.getdata.messages.PreliminaryGetDataRequest; import io.bisq.p2p.storage.P2PDataStorage; -import io.bisq.p2p.storage.payload.LazyProcessedStoragePayload; -import io.bisq.p2p.storage.payload.PersistedStoragePayload; -import io.bisq.p2p.storage.payload.StoragePayload; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.payload.LazyProcessedStoragePayload; +import io.bisq.network_messages.payload.PersistedStoragePayload; +import io.bisq.network_messages.payload.StoragePayload; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; diff --git a/network/src/main/java/io/bisq/p2p/peers/getdata/RequestDataManager.java b/network/src/main/java/io/bisq/p2p/peers/getdata/RequestDataManager.java index f87e75bc67..a4eda65f60 100644 --- a/network/src/main/java/io/bisq/p2p/peers/getdata/RequestDataManager.java +++ b/network/src/main/java/io/bisq/p2p/peers/getdata/RequestDataManager.java @@ -3,12 +3,12 @@ package io.bisq.p2p.peers.getdata; import io.bisq.app.Log; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.messages.Message; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.network.*; import io.bisq.p2p.peers.PeerManager; -import io.bisq.p2p.peers.getdata.messages.GetDataRequest; -import io.bisq.p2p.peers.peerexchange.Peer; +import io.bisq.network_messages.p2p.peers.getdata.messages.GetDataRequest; +import io.bisq.network_messages.p2p.peers.peerexchange.Peer; import io.bisq.p2p.storage.P2PDataStorage; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; diff --git a/network/src/main/java/io/bisq/p2p/peers/keepalive/KeepAliveHandler.java b/network/src/main/java/io/bisq/p2p/peers/keepalive/KeepAliveHandler.java index c605ca58e4..d483ea4a3d 100644 --- a/network/src/main/java/io/bisq/p2p/peers/keepalive/KeepAliveHandler.java +++ b/network/src/main/java/io/bisq/p2p/peers/keepalive/KeepAliveHandler.java @@ -6,13 +6,13 @@ import com.google.common.util.concurrent.SettableFuture; import io.bisq.app.Log; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; import io.bisq.p2p.network.Connection; import io.bisq.p2p.network.MessageListener; import io.bisq.p2p.network.NetworkNode; import io.bisq.p2p.peers.PeerManager; -import io.bisq.p2p.peers.keepalive.messages.Ping; -import io.bisq.p2p.peers.keepalive.messages.Pong; +import io.bisq.network_messages.p2p.peers.keepalive.messages.Ping; +import io.bisq.network_messages.p2p.peers.keepalive.messages.Pong; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/peers/keepalive/KeepAliveManager.java b/network/src/main/java/io/bisq/p2p/peers/keepalive/KeepAliveManager.java index b2734c944c..0e202707ab 100644 --- a/network/src/main/java/io/bisq/p2p/peers/keepalive/KeepAliveManager.java +++ b/network/src/main/java/io/bisq/p2p/peers/keepalive/KeepAliveManager.java @@ -6,11 +6,11 @@ import com.google.common.util.concurrent.SettableFuture; import io.bisq.app.Log; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; import io.bisq.p2p.network.*; import io.bisq.p2p.peers.PeerManager; -import io.bisq.p2p.peers.keepalive.messages.Ping; -import io.bisq.p2p.peers.keepalive.messages.Pong; +import io.bisq.network_messages.p2p.peers.keepalive.messages.Ping; +import io.bisq.network_messages.p2p.peers.keepalive.messages.Pong; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/peers/peerexchange/GetPeersRequestHandler.java b/network/src/main/java/io/bisq/p2p/peers/peerexchange/GetPeersRequestHandler.java index 422f2e0bee..ab913372a8 100644 --- a/network/src/main/java/io/bisq/p2p/peers/peerexchange/GetPeersRequestHandler.java +++ b/network/src/main/java/io/bisq/p2p/peers/peerexchange/GetPeersRequestHandler.java @@ -10,8 +10,8 @@ import io.bisq.p2p.network.CloseConnectionReason; import io.bisq.p2p.network.Connection; import io.bisq.p2p.network.NetworkNode; import io.bisq.p2p.peers.PeerManager; -import io.bisq.p2p.peers.peerexchange.messages.GetPeersRequest; -import io.bisq.p2p.peers.peerexchange.messages.GetPeersResponse; +import io.bisq.network_messages.p2p.peers.peerexchange.messages.GetPeersRequest; +import io.bisq.network_messages.p2p.peers.peerexchange.messages.GetPeersResponse; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/peers/peerexchange/PeerExchangeHandler.java b/network/src/main/java/io/bisq/p2p/peers/peerexchange/PeerExchangeHandler.java index 7c894e11e2..ec7cde51ae 100644 --- a/network/src/main/java/io/bisq/p2p/peers/peerexchange/PeerExchangeHandler.java +++ b/network/src/main/java/io/bisq/p2p/peers/peerexchange/PeerExchangeHandler.java @@ -6,15 +6,15 @@ import com.google.common.util.concurrent.SettableFuture; import io.bisq.app.Log; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.messages.Message; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.network.CloseConnectionReason; import io.bisq.p2p.network.Connection; import io.bisq.p2p.network.MessageListener; import io.bisq.p2p.network.NetworkNode; import io.bisq.p2p.peers.PeerManager; -import io.bisq.p2p.peers.peerexchange.messages.GetPeersRequest; -import io.bisq.p2p.peers.peerexchange.messages.GetPeersResponse; +import io.bisq.network_messages.p2p.peers.peerexchange.messages.GetPeersRequest; +import io.bisq.network_messages.p2p.peers.peerexchange.messages.GetPeersResponse; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/peers/peerexchange/PeerExchangeManager.java b/network/src/main/java/io/bisq/p2p/peers/peerexchange/PeerExchangeManager.java index 464d303ebc..450fd8d321 100644 --- a/network/src/main/java/io/bisq/p2p/peers/peerexchange/PeerExchangeManager.java +++ b/network/src/main/java/io/bisq/p2p/peers/peerexchange/PeerExchangeManager.java @@ -4,11 +4,12 @@ import com.google.common.base.Preconditions; import io.bisq.app.Log; import io.bisq.common.Timer; import io.bisq.common.UserThread; -import io.bisq.messages.Message; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.peers.peerexchange.Peer; import io.bisq.p2p.network.*; import io.bisq.p2p.peers.PeerManager; -import io.bisq.p2p.peers.peerexchange.messages.GetPeersRequest; +import io.bisq.network_messages.p2p.peers.peerexchange.messages.GetPeersRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/protocol/availability/Offer.java b/network/src/main/java/io/bisq/p2p/protocol/availability/Offer.java new file mode 100644 index 0000000000..4b1161f9d0 --- /dev/null +++ b/network/src/main/java/io/bisq/p2p/protocol/availability/Offer.java @@ -0,0 +1,330 @@ +package io.bisq.p2p.protocol.availability; + +import io.bisq.common.handlers.ErrorMessageHandler; +import io.bisq.common.handlers.ResultHandler; +import io.bisq.common.util.JsonExclude; +import io.bisq.common.util.MathUtils; +import io.bisq.locale.CurrencyUtil; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.payment.PaymentMethod; +import io.bisq.network_messages.trade.exceptions.MarketPriceNotAvailableException; +import io.bisq.network_messages.trade.exceptions.TradePriceOutOfToleranceException; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.provider.price.MarketPrice; +import io.bisq.provider.price.PriceFeedService; +import javafx.beans.property.*; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.bitcoinj.core.Coin; +import org.bitcoinj.utils.ExchangeRate; +import org.bitcoinj.utils.Fiat; + +import javax.annotation.Nullable; +import java.io.Serializable; +import java.text.DecimalFormat; +import java.util.Date; +import java.util.List; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; + +@Slf4j +public class Offer implements Serializable { + + @Getter + private OfferPayload offerPayload; + @JsonExclude + transient private OfferPayload.State state = OfferPayload.State.UNDEFINED; + // Those state properties are transient and only used at runtime! + // don't access directly as it might be null; use getStateProperty() which creates an object if not instantiated + @JsonExclude + @Getter + transient private ObjectProperty stateProperty = new SimpleObjectProperty<>(state); + @JsonExclude + @Nullable + transient private OfferAvailabilityProtocol availabilityProtocol; + @JsonExclude + @Getter + transient private StringProperty errorMessageProperty = new SimpleStringProperty(); + @JsonExclude + @Getter + @Setter + transient private PriceFeedService priceFeedService; + @JsonExclude + transient private DecimalFormat decimalFormat; + + public Offer(OfferPayload offerPayload) { + this.offerPayload = offerPayload; + setState(OfferPayload.State.UNDEFINED); + init(); + } + + private void init() { + stateProperty = new SimpleObjectProperty<>(OfferPayload.State.UNDEFINED); + + // we don't need to fill it as the error message is only relevant locally, so we don't store it in the transmitted object + errorMessageProperty = new SimpleStringProperty(); + decimalFormat = new DecimalFormat("#.#"); + decimalFormat.setMaximumFractionDigits(Fiat.SMALLEST_UNIT_EXPONENT); + } + + public OfferPayload.State getState() { + return state; + } + + public void setState(OfferPayload.State state) { + this.state = state; + stateProperty().set(state); + } + + public ObjectProperty stateProperty() { + return stateProperty; + } + + //TODO update with new properties + public void validate() { + offerPayload.validate(); + checkNotNull(getPrice(), "Price is null"); + checkArgument(getPrice().isPositive(), "Price is not a positive value"); + } + + public void resetState() { + setState(OfferPayload.State.UNDEFINED); + } + + public ReadOnlyStringProperty errorMessageProperty() { + return errorMessageProperty; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessageProperty.set(errorMessage); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Availability + /////////////////////////////////////////////////////////////////////////////////////////// + + // TODO refactor those out of OfferPayload, offerPayload should be pure value object + public void checkOfferAvailability(OfferAvailabilityModel model, ResultHandler resultHandler, + ErrorMessageHandler errorMessageHandler) { + availabilityProtocol = new OfferAvailabilityProtocol(model, + () -> { + cancelAvailabilityRequest(); + resultHandler.handleResult(); + }, + (errorMessage) -> { + if (availabilityProtocol != null) + availabilityProtocol.cancel(); + log.error(errorMessage); + errorMessageHandler.handleErrorMessage(errorMessage); + }); + availabilityProtocol.sendOfferAvailabilityRequest(); + } + + // TODO refactor those out of OfferPayload, offerPayload should be pure value object + public void cancelAvailabilityRequest() { + if (availabilityProtocol != null) + availabilityProtocol.cancel(); + } + + // TODO refactor those out of OfferPayload, offerPayload should be pure value object + @Nullable + public Fiat getPrice() { + if (offerPayload.isUseMarketBasedPrice()) { + checkNotNull(priceFeedService, "priceFeed must not be null"); + MarketPrice marketPrice = priceFeedService.getMarketPrice(offerPayload.getCurrencyCode()); + if (marketPrice != null) { + PriceFeedService.Type priceFeedType; + double factor; + if (CurrencyUtil.isCryptoCurrency(offerPayload.getCurrencyCode())) { + priceFeedType = offerPayload.getDirection() == OfferPayload.Direction.BUY ? PriceFeedService.Type.ASK : PriceFeedService.Type.BID; + factor = offerPayload.getDirection() == OfferPayload.Direction.SELL ? 1 - offerPayload.getMarketPriceMargin() : 1 + offerPayload.getMarketPriceMargin(); + } else { + priceFeedType = offerPayload.getDirection() == OfferPayload.Direction.SELL ? PriceFeedService.Type.ASK : PriceFeedService.Type.BID; + factor = offerPayload.getDirection() == OfferPayload.Direction.BUY ? 1 - offerPayload.getMarketPriceMargin() : 1 + offerPayload.getMarketPriceMargin(); + } + double marketPriceAsDouble = marketPrice.getPrice(priceFeedType); + double targetPrice = marketPriceAsDouble * factor; + if (CurrencyUtil.isCryptoCurrency(offerPayload.getCurrencyCode())) + targetPrice = targetPrice != 0 ? 1d / targetPrice : 0; + try { + final double rounded = MathUtils.roundDouble(targetPrice, Fiat.SMALLEST_UNIT_EXPONENT); + return Fiat.parseFiat(offerPayload.getCurrencyCode(), decimalFormat.format(rounded).replace(",", ".")); + } catch (Exception e) { + log.error("Exception at getPrice / parseToFiat: " + e.toString() + "\n" + + "That case should never happen."); + return null; + } + } else { + log.debug("We don't have a market price.\n" + + "That case could only happen if you don't have a price feed."); + return null; + } + } else { + return Fiat.valueOf(offerPayload.getCurrencyCode(), offerPayload.getFiatPrice()); + } + } + + // TODO refactor those out of OfferPayload, offerPayload should be pure value object + public void checkTradePriceTolerance(long takersTradePrice) throws TradePriceOutOfToleranceException, MarketPriceNotAvailableException, IllegalArgumentException { + checkArgument(takersTradePrice > 0, "takersTradePrice must be positive"); + Fiat tradePriceAsFiat = Fiat.valueOf(offerPayload.getCurrencyCode(), takersTradePrice); + Fiat offerPriceAsFiat = getPrice(); + + if (offerPriceAsFiat == null) + throw new MarketPriceNotAvailableException("Market price required for calculating trade price is not available."); + + double factor = (double) takersTradePrice / (double) offerPriceAsFiat.value; + // We allow max. 2 % difference between own offerPayload price calculation and takers calculation. + // Market price might be different at offerer's and takers side so we need a bit of tolerance. + // The tolerance will get smaller once we have multiple price feeds avoiding fast price fluctuations + // from one provider. + if (Math.abs(1 - factor) > 0.02) { + String msg = "Taker's trade price is too far away from our calculated price based on the market price.\n" + + "tradePriceAsFiat=" + tradePriceAsFiat.toFriendlyString() + "\n" + + "offerPriceAsFiat=" + offerPriceAsFiat.toFriendlyString(); + log.warn(msg); + throw new TradePriceOutOfToleranceException(msg); + } + } + + // TODO + @Nullable + public Fiat getVolumeByAmount(Coin amount) { + Fiat price = getPrice(); + if (price != null && amount != null) { + try { + return new ExchangeRate(price).coinToFiat(amount); + } catch (Throwable t) { + log.error("getVolumeByAmount failed. Error=" + t.getMessage()); + return null; + } + } else { + return null; + } + } + + @Nullable + public Fiat getOfferVolume() { + return getVolumeByAmount(offerPayload.getAmount()); + } + + @Nullable + public Fiat getMinOfferVolume() { + return getVolumeByAmount(offerPayload.getMinAmount()); + } + + public boolean isMyOffer(KeyRing keyRing) { + return getPubKeyRing().equals(keyRing.getPubKeyRing()); + } + + /////////////////////////////////// Decorator methods /////////////////////////////////////////// + + public String getShortId() { + return offerPayload.getShortId(); + } + + public String getId() { + return offerPayload.getId(); + } + + public OfferPayload.Direction getDirection() { + return offerPayload.getDirection(); + } + + public String getCurrencyCode() { + return offerPayload.getCurrencyCode(); + } + + public Coin getMinAmount() { + return offerPayload.getMinAmount(); + } + + public Coin getAmount() { + return offerPayload.getAmount(); + } + + public boolean isUseMarketBasedPrice() { + return offerPayload.isUseMarketBasedPrice(); + } + + public Date getDate() { + return offerPayload.getDate(); + } + + public double getMarketPriceMargin() { + return offerPayload.getMarketPriceMargin(); + } + + public PaymentMethod getPaymentMethod() { + return offerPayload.getPaymentMethod(); + } + + public String getOfferFeePaymentTxID() { + return offerPayload.getOfferFeePaymentTxID(); + } + + public PubKeyRing getPubKeyRing() { + return offerPayload.getPubKeyRing(); + } + + public NodeAddress getOffererNodeAddress() { + return offerPayload.getOffererNodeAddress(); + } + + public String getOffererPaymentAccountId() { + return offerPayload.getOffererPaymentAccountId(); + } + + public Coin getCreateOfferFee() { + return offerPayload.getCreateOfferFee(); + } + + public Coin getTxFee() { + return offerPayload.getTxFee(); + } + + public void setOfferFeePaymentTxID(String offerFeePaymentTxID) { + offerPayload.setOfferFeePaymentTxID(offerFeePaymentTxID); + } + + public Coin getSecurityDeposit() { + return offerPayload.getSecurityDeposit(); + } + + public NodeAddress getOwnerNodeAddress() { + return offerPayload.getOwnerNodeAddress(); + } + + public String getCountryCode() { + return offerPayload.getCountryCode(); + } + + public String getBankId() { + return offerPayload.getBankId(); + } + + public List getAcceptedCountryCodes() { + return offerPayload.getAcceptedCountryCodes(); + } + + public List getAcceptedBankIds() { + return offerPayload.getAcceptedBankIds(); + } + + public List getArbitratorNodeAddresses() { + return offerPayload.getArbitratorNodeAddresses(); + } + + public OfferPayload.Direction getMirroredDirection() { + return offerPayload.getMirroredDirection(); + } + + public long getProtocolVersion() { + return offerPayload.getProtocolVersion(); + } +} diff --git a/network/src/main/java/io/bisq/messages/protocol/availability/OfferAvailabilityModel.java b/network/src/main/java/io/bisq/p2p/protocol/availability/OfferAvailabilityModel.java similarity index 88% rename from network/src/main/java/io/bisq/messages/protocol/availability/OfferAvailabilityModel.java rename to network/src/main/java/io/bisq/p2p/protocol/availability/OfferAvailabilityModel.java index 187b0f8976..6152b763c0 100644 --- a/network/src/main/java/io/bisq/messages/protocol/availability/OfferAvailabilityModel.java +++ b/network/src/main/java/io/bisq/p2p/protocol/availability/OfferAvailabilityModel.java @@ -15,14 +15,13 @@ * along with bisq. If not, see . */ -package io.bisq.messages.protocol.availability; +package io.bisq.p2p.protocol.availability; -import io.bisq.common.crypto.PubKeyRing; import io.bisq.common.taskrunner.Model; -import io.bisq.messages.availability.OfferAvailabilityResponse; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.availability.OfferAvailabilityResponse; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.p2p.storage.P2PService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/protocol/availability/OfferAvailabilityProtocol.java b/network/src/main/java/io/bisq/p2p/protocol/availability/OfferAvailabilityProtocol.java similarity index 88% rename from network/src/main/java/io/bisq/messages/protocol/availability/OfferAvailabilityProtocol.java rename to network/src/main/java/io/bisq/p2p/protocol/availability/OfferAvailabilityProtocol.java index 4d946bcef9..37406b247f 100644 --- a/network/src/main/java/io/bisq/messages/protocol/availability/OfferAvailabilityProtocol.java +++ b/network/src/main/java/io/bisq/p2p/protocol/availability/OfferAvailabilityProtocol.java @@ -15,21 +15,21 @@ * along with bisq. If not, see . */ -package io.bisq.messages.protocol.availability; +package io.bisq.p2p.protocol.availability; import io.bisq.common.Timer; import io.bisq.common.UserThread; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.common.handlers.ResultHandler; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.Message; -import io.bisq.messages.availability.OfferAvailabilityResponse; -import io.bisq.messages.availability.OfferMessage; -import io.bisq.messages.protocol.availability.tasks.ProcessOfferAvailabilityResponse; -import io.bisq.messages.protocol.availability.tasks.SendOfferAvailabilityRequest; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.messages.util.Validator; -import io.bisq.p2p.messaging.DecryptedDirectMessageListener; +import io.bisq.network_messages.DecryptedDirectMessageListener; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.availability.OfferAvailabilityResponse; +import io.bisq.network_messages.availability.OfferMessage; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.network_messages.util.Validator; +import io.bisq.protocol.availability.tasks.ProcessOfferAvailabilityResponse; +import io.bisq.protocol.availability.tasks.SendOfferAvailabilityRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -82,7 +82,7 @@ public class OfferAvailabilityProtocol { public void sendOfferAvailabilityRequest() { // reset - model.offer.setState(Offer.State.UNDEFINED); + model.offer.setState(OfferPayload.State.UNDEFINED); model.p2PService.addDecryptedDirectMessageListener(decryptedDirectMessageListener); model.setPeerNodeAddress(model.offer.getOffererNodeAddress()); @@ -135,7 +135,7 @@ public class OfferAvailabilityProtocol { if (timeoutTimer == null) { timeoutTimer = UserThread.runAfter(() -> { log.debug("Timeout reached at " + this); - model.offer.setState(Offer.State.OFFERER_OFFLINE); + model.offer.setState(OfferPayload.State.OFFERER_OFFLINE); errorMessageHandler.handleErrorMessage("Timeout reached: Peer has not responded."); }, TIMEOUT_SEC); } else { diff --git a/network/src/main/java/io/bisq/p2p/seed/SeedNodesRepository.java b/network/src/main/java/io/bisq/p2p/seed/SeedNodesRepository.java index c9daab0398..632e4ad719 100644 --- a/network/src/main/java/io/bisq/p2p/seed/SeedNodesRepository.java +++ b/network/src/main/java/io/bisq/p2p/seed/SeedNodesRepository.java @@ -2,7 +2,7 @@ package io.bisq.p2p.seed; import com.google.common.collect.Sets; import io.bisq.app.DevEnv; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/p2p/storage/HashMapChangedListener.java b/network/src/main/java/io/bisq/p2p/storage/HashMapChangedListener.java index 4b5905131c..e4f3945ac9 100644 --- a/network/src/main/java/io/bisq/p2p/storage/HashMapChangedListener.java +++ b/network/src/main/java/io/bisq/p2p/storage/HashMapChangedListener.java @@ -1,6 +1,6 @@ package io.bisq.p2p.storage; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; public interface HashMapChangedListener { void onAdded(ProtectedStorageEntry data); diff --git a/network/src/main/java/io/bisq/p2p/storage/P2PDataStorage.java b/network/src/main/java/io/bisq/p2p/storage/P2PDataStorage.java index 64573966dc..36be21a24e 100644 --- a/network/src/main/java/io/bisq/p2p/storage/P2PDataStorage.java +++ b/network/src/main/java/io/bisq/p2p/storage/P2PDataStorage.java @@ -6,22 +6,22 @@ import io.bisq.app.Version; import io.bisq.common.Timer; import io.bisq.common.UserThread; import io.bisq.common.crypto.CryptoException; -import io.bisq.common.crypto.Hash; import io.bisq.common.crypto.Sig; import io.bisq.common.persistance.Persistable; import io.bisq.common.util.Tuple2; import io.bisq.common.util.Utilities; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.Message; -import io.bisq.messages.ToProtoBuffer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.ToProtoBuffer; +import io.bisq.network_messages.crypto.Hash; +import io.bisq.network_messages.payload.*; import io.bisq.p2p.network.*; import io.bisq.p2p.peers.BroadcastHandler; import io.bisq.p2p.peers.Broadcaster; -import io.bisq.p2p.storage.messages.*; -import io.bisq.p2p.storage.payload.*; -import io.bisq.p2p.storage.storageentry.ProtectedMailboxStorageEntry; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.storage.messages.*; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedMailboxStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import io.bisq.storage.FileUtil; import io.bisq.storage.ResourceNotFoundException; import io.bisq.storage.Storage; @@ -125,7 +125,7 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { removeExpiredEntriesTimer = UserThread.runPeriodically(() -> { log.trace("removeExpiredEntries"); // The moment when an object becomes expired will not be synchronous in the network and we could - // get add messages after the object has expired. To avoid repeated additions of already expired + // get add network_messages after the object has expired. To avoid repeated additions of already expired // object when we get it sent from new peers, we don’t remove the sequence number from the map. // That way an ADD message for an already expired data will fail because the sequence number // is equal and not larger as expected. @@ -197,7 +197,7 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { // We have a RequiresLiveOwnerData data object with the node address of the // disconnected peer. We remove that data from our map. - // Check if we have the data (e.g. Offer) + // Check if we have the data (e.g. OfferPayload) ByteArray hashOfPayload = getHashAsByteArray(expirablePayload); boolean containsKey = map.containsKey(hashOfPayload); if (containsKey) { @@ -497,7 +497,7 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { String msg; if (newSequenceNumber == 0) { msg = "Sequence number is equal to the stored one and both are 0." + - "That is expected for messages which never got updated (mailbox msg)."; + "That is expected for network_messages which never got updated (mailbox msg)."; } else { msg = "Sequence number is equal to the stored one. sequenceNumber = " + newSequenceNumber + " / storedSequenceNumber=" + storedSequenceNumber; @@ -536,7 +536,7 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { } // Check that the pubkey of the storage entry matches the allowed pubkey for the addition or removal operation - // in the contained mailbox message, or the pubkey of other kinds of messages. + // in the contained mailbox message, or the pubkey of other kinds of network_messages. boolean checkPublicKeys(ProtectedStorageEntry protectedStorageEntry, boolean isAddOperation) { boolean result; if (protectedStorageEntry.getStoragePayload() instanceof MailboxStoragePayload) { @@ -549,7 +549,7 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { payload.receiverPubKeyForRemoveOperation.equals(protectedStorageEntry.ownerPubKey); } else { // TODO We got sometimes a nullpointer at protectedStorageEntry.ownerPubKey - // Probably caused by an exception at deserialization: Offer: Cannot be deserialized.null + // Probably caused by an exception at deserialization: OfferPayload: Cannot be deserialized.null result = protectedStorageEntry != null && protectedStorageEntry.ownerPubKey != null && protectedStorageEntry.getStoragePayload() != null && protectedStorageEntry.ownerPubKey.equals(protectedStorageEntry.getStoragePayload().getOwnerPubKey()); diff --git a/network/src/main/java/io/bisq/p2p/P2PService.java b/network/src/main/java/io/bisq/p2p/storage/P2PService.java similarity index 97% rename from network/src/main/java/io/bisq/p2p/P2PService.java rename to network/src/main/java/io/bisq/p2p/storage/P2PService.java index caabd0248d..6b84d2bc93 100644 --- a/network/src/main/java/io/bisq/p2p/P2PService.java +++ b/network/src/main/java/io/bisq/p2p/storage/P2PService.java @@ -1,5 +1,6 @@ -package io.bisq.p2p; +package io.bisq.p2p.storage; +import io.bisq.p2p.NetworkNotReadyException; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; @@ -10,15 +11,18 @@ import io.bisq.app.Log; import io.bisq.common.Clock; import io.bisq.common.UserThread; import io.bisq.common.crypto.CryptoException; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.PubKeyRing; import io.bisq.common.util.Utilities; -import io.bisq.crypto.DecryptedMsgWithPubKey; import io.bisq.crypto.EncryptionService; -import io.bisq.messages.Message; +import io.bisq.network_messages.DecryptedDirectMessageListener; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.p2p.messaging.*; import io.bisq.network.NetworkOptionKeys; import io.bisq.network.Socks5ProxyProvider; -import io.bisq.p2p.messaging.*; +import io.bisq.p2p.P2PServiceListener; import io.bisq.p2p.network.*; import io.bisq.p2p.peers.BanList; import io.bisq.p2p.peers.BroadcastHandler; @@ -28,15 +32,13 @@ import io.bisq.p2p.peers.getdata.RequestDataManager; import io.bisq.p2p.peers.keepalive.KeepAliveManager; import io.bisq.p2p.peers.peerexchange.PeerExchangeManager; import io.bisq.p2p.seed.SeedNodesRepository; -import io.bisq.p2p.storage.HashMapChangedListener; -import io.bisq.p2p.storage.P2PDataStorage; -import io.bisq.p2p.storage.messages.AddDataMessage; -import io.bisq.p2p.storage.messages.BroadcastMessage; -import io.bisq.p2p.storage.messages.RefreshTTLMessage; -import io.bisq.p2p.storage.payload.MailboxStoragePayload; -import io.bisq.p2p.storage.payload.StoragePayload; -import io.bisq.p2p.storage.storageentry.ProtectedMailboxStorageEntry; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.storage.messages.AddDataMessage; +import io.bisq.network_messages.p2p.storage.messages.BroadcastMessage; +import io.bisq.network_messages.p2p.storage.messages.RefreshTTLMessage; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedMailboxStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.payload.MailboxStoragePayload; +import io.bisq.network_messages.payload.StoragePayload; import io.bisq.storage.FileUtil; import io.bisq.storage.Storage; import javafx.beans.property.*; @@ -55,6 +57,7 @@ import java.util.*; import java.util.concurrent.CopyOnWriteArraySet; import java.util.stream.Collectors; + import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -529,7 +532,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis private void processProtectedMailboxStorageEntry(ProtectedMailboxStorageEntry protectedMailboxStorageEntry) { Log.traceCall(); final NodeAddress nodeAddress = networkNode.getNodeAddress(); - // Seed nodes don't receive mailbox messages + // Seed nodes don't receive mailbox network_messages if (optionalEncryptionService.isPresent() && nodeAddress != null && !seedNodesRepository.isSeedNode(nodeAddress)) { Log.traceCall(); MailboxStoragePayload mailboxStoragePayload = protectedMailboxStorageEntry.getMailboxStoragePayload(); @@ -541,7 +544,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis if (decryptedMsgWithPubKey.message instanceof MailboxMessage) { MailboxMessage mailboxMessage = (MailboxMessage) decryptedMsgWithPubKey.message; NodeAddress senderNodeAddress = mailboxMessage.getSenderNodeAddress(); - checkNotNull(senderNodeAddress, "senderAddress must not be null for mailbox messages"); + checkNotNull(senderNodeAddress, "senderAddress must not be null for mailbox network_messages"); mailboxMap.put(mailboxMessage.getUID(), protectedMailboxStorageEntry); log.trace("Decryption of SealedAndSignedMessage succeeded. senderAddress=" @@ -656,7 +659,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis // does not arrive. // We could use onBroadcastCompleted instead but it might take too long if one peer // is very badly connected. - // TODO We could check for a certain threshold of no. of incoming messages of the same msg + // TODO We could check for a certain threshold of no. of incoming network_messages of the same msg // to see how well it is propagated. BitcoinJ uses such an approach for tx propagation. UserThread.runAfter(() -> { log.info("Broadcasted to first peer (with 3 sec. delayed): Message = {}", Utilities.toTruncatedString(message)); @@ -702,7 +705,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis public void removeEntryFromMailbox(DecryptedMsgWithPubKey decryptedMsgWithPubKey) { // We need to delay a bit to avoid that we remove our msg then get it from other peers again and reapply it again. - // If we delay the removal we have better chances that repeated messages we got from other peers are already filtered + // If we delay the removal we have better chances that repeated network_messages we got from other peers are already filtered // at the P2PService layer. // Though we have to check in the client classes to not apply the same message again as there is no guarantee // when we would get a message again from the network. diff --git a/network/src/main/java/io/bisq/messages/protocol/availability/tasks/ProcessOfferAvailabilityResponse.java b/network/src/main/java/io/bisq/protocol/availability/tasks/ProcessOfferAvailabilityResponse.java similarity index 79% rename from network/src/main/java/io/bisq/messages/protocol/availability/tasks/ProcessOfferAvailabilityResponse.java rename to network/src/main/java/io/bisq/protocol/availability/tasks/ProcessOfferAvailabilityResponse.java index c904a3f287..41c069c271 100644 --- a/network/src/main/java/io/bisq/messages/protocol/availability/tasks/ProcessOfferAvailabilityResponse.java +++ b/network/src/main/java/io/bisq/protocol/availability/tasks/ProcessOfferAvailabilityResponse.java @@ -15,14 +15,14 @@ * along with bisq. If not, see . */ -package io.bisq.messages.protocol.availability.tasks; +package io.bisq.protocol.availability.tasks; import io.bisq.common.taskrunner.Task; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.availability.AvailabilityResult; -import io.bisq.messages.availability.OfferAvailabilityResponse; -import io.bisq.messages.protocol.availability.OfferAvailabilityModel; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.availability.AvailabilityResult; +import io.bisq.network_messages.availability.OfferAvailabilityResponse; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.OfferAvailabilityModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,12 +39,12 @@ public class ProcessOfferAvailabilityResponse extends Task. */ -package io.bisq.messages.protocol.availability.tasks; +package io.bisq.protocol.availability.tasks; import io.bisq.common.taskrunner.Task; import io.bisq.common.taskrunner.TaskRunner; -import io.bisq.messages.availability.OfferAvailabilityRequest; -import io.bisq.messages.protocol.availability.OfferAvailabilityModel; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.messaging.SendDirectMessageListener; +import io.bisq.network_messages.availability.OfferAvailabilityRequest; +import io.bisq.network_messages.p2p.messaging.SendDirectMessageListener; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; +import io.bisq.p2p.protocol.availability.OfferAvailabilityModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,7 +49,7 @@ public class SendOfferAvailabilityRequest extends Task { @Override public void onFault() { - model.offer.setState(Offer.State.OFFERER_OFFLINE); + model.offer.setState(OfferPayload.State.OFFERER_OFFLINE); } } ); diff --git a/network/src/main/java/io/bisq/messages/btc/provider/HttpClientProvider.java b/network/src/main/java/io/bisq/provider/HttpClientProvider.java similarity index 93% rename from network/src/main/java/io/bisq/messages/btc/provider/HttpClientProvider.java rename to network/src/main/java/io/bisq/provider/HttpClientProvider.java index cfe7767c30..5f233b6a7e 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/HttpClientProvider.java +++ b/network/src/main/java/io/bisq/provider/HttpClientProvider.java @@ -1,4 +1,4 @@ -package io.bisq.messages.btc.provider; +package io.bisq.provider; import io.bisq.http.HttpClient; diff --git a/network/src/main/java/io/bisq/messages/btc/provider/ProvidersRepository.java b/network/src/main/java/io/bisq/provider/ProvidersRepository.java similarity index 98% rename from network/src/main/java/io/bisq/messages/btc/provider/ProvidersRepository.java rename to network/src/main/java/io/bisq/provider/ProvidersRepository.java index 414efdb4f5..289908aa38 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/ProvidersRepository.java +++ b/network/src/main/java/io/bisq/provider/ProvidersRepository.java @@ -1,4 +1,4 @@ -package io.bisq.messages.btc.provider; +package io.bisq.provider; import com.google.inject.Inject; import io.bisq.app.AppOptionKeys; diff --git a/network/src/main/java/io/bisq/messages/btc/provider/fee/FeeData.java b/network/src/main/java/io/bisq/provider/fee/FeeData.java similarity index 87% rename from network/src/main/java/io/bisq/messages/btc/provider/fee/FeeData.java rename to network/src/main/java/io/bisq/provider/fee/FeeData.java index e10461cd7d..c77c33cd13 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/fee/FeeData.java +++ b/network/src/main/java/io/bisq/provider/fee/FeeData.java @@ -1,4 +1,4 @@ -package io.bisq.messages.btc.provider.fee; +package io.bisq.provider.fee; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/btc/provider/fee/FeeProvider.java b/network/src/main/java/io/bisq/provider/fee/FeeProvider.java similarity index 93% rename from network/src/main/java/io/bisq/messages/btc/provider/fee/FeeProvider.java rename to network/src/main/java/io/bisq/provider/fee/FeeProvider.java index 2b6ad25c8e..99799cd667 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/fee/FeeProvider.java +++ b/network/src/main/java/io/bisq/provider/fee/FeeProvider.java @@ -1,4 +1,4 @@ -package io.bisq.messages.btc.provider.fee; +package io.bisq.provider.fee; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; @@ -6,7 +6,7 @@ import io.bisq.app.Version; import io.bisq.common.util.Tuple2; import io.bisq.http.HttpClient; import io.bisq.http.HttpException; -import io.bisq.messages.btc.provider.HttpClientProvider; +import io.bisq.provider.HttpClientProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/btc/provider/fee/FeeRequest.java b/network/src/main/java/io/bisq/provider/fee/FeeRequest.java similarity index 97% rename from network/src/main/java/io/bisq/messages/btc/provider/fee/FeeRequest.java rename to network/src/main/java/io/bisq/provider/fee/FeeRequest.java index 4d482728ca..86b25a427f 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/fee/FeeRequest.java +++ b/network/src/main/java/io/bisq/provider/fee/FeeRequest.java @@ -1,4 +1,4 @@ -package io.bisq.messages.btc.provider.fee; +package io.bisq.provider.fee; import com.google.common.util.concurrent.*; import io.bisq.common.util.Tuple2; diff --git a/network/src/main/java/io/bisq/messages/btc/provider/fee/FeeService.java b/network/src/main/java/io/bisq/provider/fee/FeeService.java similarity index 98% rename from network/src/main/java/io/bisq/messages/btc/provider/fee/FeeService.java rename to network/src/main/java/io/bisq/provider/fee/FeeService.java index 24e973955f..55332d5fbf 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/fee/FeeService.java +++ b/network/src/main/java/io/bisq/provider/fee/FeeService.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.btc.provider.fee; +package io.bisq.provider.fee; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; @@ -25,7 +25,7 @@ import io.bisq.common.UserThread; import io.bisq.common.handlers.FaultHandler; import io.bisq.common.util.Tuple2; import io.bisq.http.HttpClient; -import io.bisq.messages.btc.provider.ProvidersRepository; +import io.bisq.provider.ProvidersRepository; import org.bitcoinj.core.Coin; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; diff --git a/network/src/main/java/io/bisq/messages/provider/price/MarketPrice.java b/network/src/main/java/io/bisq/provider/price/MarketPrice.java similarity index 98% rename from network/src/main/java/io/bisq/messages/provider/price/MarketPrice.java rename to network/src/main/java/io/bisq/provider/price/MarketPrice.java index ea43387048..2fffc53232 100644 --- a/network/src/main/java/io/bisq/messages/provider/price/MarketPrice.java +++ b/network/src/main/java/io/bisq/provider/price/MarketPrice.java @@ -1,4 +1,4 @@ -package io.bisq.messages.provider.price; +package io.bisq.provider.price; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/provider/price/PriceFeedService.java b/network/src/main/java/io/bisq/provider/price/PriceFeedService.java similarity index 96% rename from network/src/main/java/io/bisq/messages/provider/price/PriceFeedService.java rename to network/src/main/java/io/bisq/provider/price/PriceFeedService.java index 54756e9ce1..d05c7264a7 100644 --- a/network/src/main/java/io/bisq/messages/provider/price/PriceFeedService.java +++ b/network/src/main/java/io/bisq/provider/price/PriceFeedService.java @@ -1,4 +1,4 @@ -package io.bisq.messages.provider.price; +package io.bisq.provider.price; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; @@ -10,10 +10,7 @@ import io.bisq.common.handlers.FaultHandler; import io.bisq.common.util.Tuple2; import io.bisq.http.HttpClient; import io.bisq.locale.Res; -import io.bisq.messages.btc.provider.ProvidersRepository; -import io.bisq.messages.btc.provider.price.PriceProvider; -import io.bisq.messages.btc.provider.price.PriceRequest; -import io.bisq.messages.btc.provider.price.PriceRequestException; +import io.bisq.provider.ProvidersRepository; import javafx.beans.property.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/btc/provider/price/PriceProvider.java b/network/src/main/java/io/bisq/provider/price/PriceProvider.java similarity index 92% rename from network/src/main/java/io/bisq/messages/btc/provider/price/PriceProvider.java rename to network/src/main/java/io/bisq/provider/price/PriceProvider.java index 94a5600056..062216c603 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/price/PriceProvider.java +++ b/network/src/main/java/io/bisq/provider/price/PriceProvider.java @@ -1,4 +1,4 @@ -package io.bisq.messages.btc.provider.price; +package io.bisq.provider.price; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; @@ -6,8 +6,7 @@ import io.bisq.app.Version; import io.bisq.common.util.Tuple2; import io.bisq.http.HttpClient; import io.bisq.http.HttpException; -import io.bisq.messages.btc.provider.HttpClientProvider; -import io.bisq.messages.provider.price.MarketPrice; +import io.bisq.provider.HttpClientProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/btc/provider/price/PriceRequest.java b/network/src/main/java/io/bisq/provider/price/PriceRequest.java similarity index 94% rename from network/src/main/java/io/bisq/messages/btc/provider/price/PriceRequest.java rename to network/src/main/java/io/bisq/provider/price/PriceRequest.java index 10a629d53c..a00288d50c 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/price/PriceRequest.java +++ b/network/src/main/java/io/bisq/provider/price/PriceRequest.java @@ -1,9 +1,8 @@ -package io.bisq.messages.btc.provider.price; +package io.bisq.provider.price; import com.google.common.util.concurrent.*; import io.bisq.common.util.Tuple2; import io.bisq.common.util.Utilities; -import io.bisq.messages.provider.price.MarketPrice; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/main/java/io/bisq/messages/btc/provider/price/PriceRequestException.java b/network/src/main/java/io/bisq/provider/price/PriceRequestException.java similarity index 75% rename from network/src/main/java/io/bisq/messages/btc/provider/price/PriceRequestException.java rename to network/src/main/java/io/bisq/provider/price/PriceRequestException.java index 2234c000cf..4248e2c5cb 100644 --- a/network/src/main/java/io/bisq/messages/btc/provider/price/PriceRequestException.java +++ b/network/src/main/java/io/bisq/provider/price/PriceRequestException.java @@ -1,4 +1,4 @@ -package io.bisq.messages.btc.provider.price; +package io.bisq.provider.price; public class PriceRequestException extends Exception { public PriceRequestException(String message) { diff --git a/network/src/main/java/io/bisq/messages/user/BlockChainExplorer.java b/network/src/main/java/io/bisq/user/BlockChainExplorer.java similarity index 97% rename from network/src/main/java/io/bisq/messages/user/BlockChainExplorer.java rename to network/src/main/java/io/bisq/user/BlockChainExplorer.java index a9547a3eba..c06b13baf1 100644 --- a/network/src/main/java/io/bisq/messages/user/BlockChainExplorer.java +++ b/network/src/main/java/io/bisq/user/BlockChainExplorer.java @@ -15,7 +15,7 @@ * along with bisq. If not, see . */ -package io.bisq.messages.user; +package io.bisq.user; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; diff --git a/network/src/main/java/io/bisq/messages/user/Preferences.java b/network/src/main/java/io/bisq/user/Preferences.java similarity index 96% rename from network/src/main/java/io/bisq/messages/user/Preferences.java rename to network/src/main/java/io/bisq/user/Preferences.java index 352f8ab9d4..b73766386c 100644 --- a/network/src/main/java/io/bisq/messages/user/Preferences.java +++ b/network/src/main/java/io/bisq/user/Preferences.java @@ -15,19 +15,18 @@ * along with bisq. If not, see . */ -package io.bisq.messages.user; +package io.bisq.user; import io.bisq.app.BisqEnvironment; import io.bisq.app.DevEnv; import io.bisq.app.Version; import io.bisq.common.persistance.Persistable; import io.bisq.common.util.Utilities; -import io.bisq.locale.Res; -import io.bisq.messages.btc.BitcoinNetwork; -import io.bisq.messages.btc.BtcOptionKeys; -import io.bisq.messages.btc.Restrictions; -import io.bisq.messages.btc.provider.fee.FeeService; -import io.bisq.messages.locale.*; +import io.bisq.locale.*; +import io.bisq.network_messages.btc.BitcoinNetwork; +import io.bisq.network_messages.btc.BtcOptionKeys; +import io.bisq.network_messages.btc.Restrictions; +import io.bisq.provider.fee.FeeService; import io.bisq.storage.Storage; import javafx.beans.property.*; import javafx.collections.FXCollections; @@ -95,7 +94,7 @@ public final class Preferences implements Persistable { return defaultLocale; } - private static TradeCurrency defaultTradeCurrency = new FiatCurrency(CurrencyUtil.getCurrencyByCountryCode(CountryUtil.getDefaultCountryCode()).getCurrency().getCurrencyCode()); + private static TradeCurrency defaultTradeCurrency = CurrencyUtil.getCurrencyByCountryCode(CountryUtil.getDefaultCountryCode(defaultLocale), defaultLocale); public static TradeCurrency getDefaultTradeCurrency() { return defaultTradeCurrency; @@ -109,8 +108,8 @@ public final class Preferences implements Persistable { transient private BitcoinNetwork bitcoinNetwork; // Persisted fields - private String userLanguage = LanguageUtil.getDefaultLanguage(); - private Country userCountry = CountryUtil.getDefaultCountry(); + private String userLanguage = LanguageUtil.getDefaultLanguage(Preferences.getDefaultLocale()); + private Country userCountry = CountryUtil.getDefaultCountry(Preferences.getDefaultLocale()); private String btcDenomination = MonetaryFormat.CODE_BTC; private boolean useAnimations = DevEnv.STRESS_TEST_MODE ? false : true; private final ArrayList fiatCurrencies; @@ -130,11 +129,11 @@ public final class Preferences implements Persistable { private boolean useCustomWithdrawalTxFee = false; private double maxPriceDistanceInPercent; - private String offerBookChartScreenCurrencyCode = CurrencyUtil.getDefaultTradeCurrency().getCode(); - private String tradeChartsScreenCurrencyCode = CurrencyUtil.getDefaultTradeCurrency().getCode(); + private String offerBookChartScreenCurrencyCode = Preferences.getDefaultTradeCurrency().getCode(); + private String tradeChartsScreenCurrencyCode = Preferences.getDefaultTradeCurrency().getCode(); - private String buyScreenCurrencyCode = CurrencyUtil.getDefaultTradeCurrency().getCode(); - private String sellScreenCurrencyCode = CurrencyUtil.getDefaultTradeCurrency().getCode(); + private String buyScreenCurrencyCode = Preferences.getDefaultTradeCurrency().getCode(); + private String sellScreenCurrencyCode = Preferences.getDefaultTradeCurrency().getCode(); private int tradeStatisticsTickUnitIndex = 3; private boolean useStickyMarketPrice = false; @@ -235,10 +234,10 @@ public final class Preferences implements Persistable { userLanguage = persisted.getUserLanguage(); if (userLanguage == null) - userLanguage = LanguageUtil.getDefaultLanguage(); + userLanguage = LanguageUtil.getDefaultLanguage(Preferences.getDefaultLocale()); userCountry = persisted.getUserCountry(); if (userCountry == null) - userCountry = CountryUtil.getDefaultCountry(); + userCountry = CountryUtil.getDefaultCountry(Preferences.getDefaultLocale()); updateDefaultLocale(); preferredTradeCurrency = persisted.getPreferredTradeCurrency(); defaultTradeCurrency = preferredTradeCurrency; @@ -272,7 +271,7 @@ public final class Preferences implements Persistable { securityDepositAsLong = persisted.getSecurityDepositAsLong(); } else { - setFiatCurrencies(CurrencyUtil.getAllMainFiatCurrencies()); + setFiatCurrencies(CurrencyUtil.getAllMainFiatCurrencies(Preferences.getDefaultLocale(), Preferences.getDefaultTradeCurrency())); setCryptoCurrencies(CurrencyUtil.getMainCryptoCurrencies()); setBlockChainExplorerTestNet(blockChainExplorersTestNet.get(0)); diff --git a/network/src/test/java/io/bisq/crypto/EncryptionServiceTests.java b/network/src/test/java/io/bisq/crypto/EncryptionServiceTests.java index b64f93946a..e56883e9a3 100644 --- a/network/src/test/java/io/bisq/crypto/EncryptionServiceTests.java +++ b/network/src/test/java/io/bisq/crypto/EncryptionServiceTests.java @@ -19,13 +19,15 @@ package io.bisq.crypto; import io.bisq.app.Version; -import io.bisq.common.crypto.*; +import io.bisq.common.crypto.CryptoException; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.Message; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; -import io.bisq.p2p.messaging.PrefixedSealedAndSignedMessage; -import io.bisq.p2p.peers.keepalive.messages.Ping; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.*; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.p2p.messaging.PrefixedSealedAndSignedMessage; +import io.bisq.network_messages.p2p.peers.keepalive.messages.Ping; import io.bisq.storage.FileUtil; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.After; diff --git a/network/src/test/java/io/bisq/p2p/DummySeedNode.java b/network/src/test/java/io/bisq/p2p/DummySeedNode.java index 9e8bb68beb..529c39b249 100644 --- a/network/src/test/java/io/bisq/p2p/DummySeedNode.java +++ b/network/src/test/java/io/bisq/p2p/DummySeedNode.java @@ -8,9 +8,11 @@ import io.bisq.common.Clock; import io.bisq.common.CommonOptionKeys; import io.bisq.common.UserThread; import io.bisq.common.util.Utilities; +import io.bisq.network_messages.NodeAddress; import io.bisq.network.NetworkOptionKeys; import io.bisq.p2p.peers.BanList; import io.bisq.p2p.seed.SeedNodesRepository; +import io.bisq.p2p.storage.P2PService; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/test/java/io/bisq/p2p/PeerServiceTest.java b/network/src/test/java/io/bisq/p2p/PeerServiceTest.java index 6880d3c4bf..e2950e7275 100644 --- a/network/src/test/java/io/bisq/p2p/PeerServiceTest.java +++ b/network/src/test/java/io/bisq/p2p/PeerServiceTest.java @@ -1,6 +1,8 @@ package io.bisq.p2p; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.network.LocalhostNetworkNode; +import io.bisq.p2p.storage.P2PService; import org.junit.After; import org.junit.Before; import org.junit.Ignore; diff --git a/network/src/test/java/io/bisq/p2p/TestUtils.java b/network/src/test/java/io/bisq/p2p/TestUtils.java index 5916a60107..0a69cbb58f 100644 --- a/network/src/test/java/io/bisq/p2p/TestUtils.java +++ b/network/src/test/java/io/bisq/p2p/TestUtils.java @@ -1,9 +1,11 @@ package io.bisq.p2p; import io.bisq.common.Clock; -import io.bisq.common.crypto.KeyRing; import io.bisq.crypto.EncryptionService; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.KeyRing; import io.bisq.p2p.seed.SeedNodesRepository; +import io.bisq.p2p.storage.P2PService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/network/src/test/java/io/bisq/p2p/mocks/MockMailboxPayload.java b/network/src/test/java/io/bisq/p2p/mocks/MockMailboxPayload.java index a86f9b40c6..e4c761864e 100644 --- a/network/src/test/java/io/bisq/p2p/mocks/MockMailboxPayload.java +++ b/network/src/test/java/io/bisq/p2p/mocks/MockMailboxPayload.java @@ -2,9 +2,9 @@ package io.bisq.p2p.mocks; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.MailboxMessage; -import io.bisq.p2p.storage.payload.ExpirablePayload; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.p2p.messaging.MailboxMessage; +import io.bisq.network_messages.payload.ExpirablePayload; import sun.reflect.generics.reflectiveObjects.NotImplementedException; import java.util.UUID; diff --git a/network/src/test/java/io/bisq/p2p/mocks/MockPayload.java b/network/src/test/java/io/bisq/p2p/mocks/MockPayload.java index 1f24b9dec1..c060643e5b 100644 --- a/network/src/test/java/io/bisq/p2p/mocks/MockPayload.java +++ b/network/src/test/java/io/bisq/p2p/mocks/MockPayload.java @@ -2,8 +2,8 @@ package io.bisq.p2p.mocks; import io.bisq.app.Version; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.Message; -import io.bisq.p2p.storage.payload.ExpirablePayload; +import io.bisq.network_messages.Message; +import io.bisq.network_messages.payload.ExpirablePayload; import sun.reflect.generics.reflectiveObjects.NotImplementedException; public final class MockPayload implements Message, ExpirablePayload { diff --git a/network/src/test/java/io/bisq/p2p/network/NetworkStressTest.java b/network/src/test/java/io/bisq/p2p/network/NetworkStressTest.java index 8b6ccab9bd..b6e41f7faf 100644 --- a/network/src/test/java/io/bisq/p2p/network/NetworkStressTest.java +++ b/network/src/test/java/io/bisq/p2p/network/NetworkStressTest.java @@ -3,16 +3,21 @@ package io.bisq.p2p.network; import io.bisq.app.Version; import io.bisq.common.Clock; import io.bisq.common.UserThread; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.KeyStorage; -import io.bisq.common.crypto.PubKeyRing; import io.bisq.common.util.Tuple3; import io.bisq.common.wire.proto.Messages; -import io.bisq.crypto.DecryptedMsgWithPubKey; import io.bisq.crypto.EncryptionService; -import io.bisq.p2p.*; -import io.bisq.p2p.messaging.*; +import io.bisq.network_messages.DecryptedDirectMessageListener; +import io.bisq.network_messages.DecryptedMsgWithPubKey; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; +import io.bisq.network_messages.crypto.PubKeyRing; +import io.bisq.network_messages.p2p.messaging.*; +import io.bisq.p2p.DummySeedNode; +import io.bisq.p2p.P2PServiceListener; +import io.bisq.p2p.Utils; import io.bisq.p2p.seed.SeedNodesRepository; +import io.bisq.p2p.storage.P2PService; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import org.bouncycastle.jce.provider.BouncyCastleProvider; @@ -55,7 +60,7 @@ public class NetworkStressTest { // Test parameters /** - * Whether to log messages less important than warnings. + * Whether to log network_messages less important than warnings. */ private static final boolean USE_DETAILED_LOGGING = false; @@ -70,11 +75,11 @@ public class NetworkStressTest { */ private static final String TEST_DIR_ENVVAR = "STRESS_TEST_DIR"; /** - * Environment variable to specify the number of direct messages sent per peer. + * Environment variable to specify the number of direct network_messages sent per peer. */ private static final String DIRECT_COUNT_ENVVAR = "STRESS_TEST_NDIRECT"; /** - * Environment variable to specify the number of mailbox messages sent per peer. + * Environment variable to specify the number of mailbox network_messages sent per peer. */ private static final String MAILBOX_COUNT_ENVVAR = "STRESS_TEST_NMAILBOX"; @@ -88,15 +93,15 @@ public class NetworkStressTest { */ private static final int NPEERS_DEFAULT = 4; /** - * Minimum number of peers for the test to work (2 for direct messages, 3 for mailbox messages). + * Minimum number of peers for the test to work (2 for direct network_messages, 3 for mailbox network_messages). */ private static final int NPEERS_MIN = 3; /** - * Default number of direct messages to be sent by each peer. + * Default number of direct network_messages to be sent by each peer. */ private static final int DIRECT_COUNT_DEFAULT = 100; /** - * Default number of mailbox messages to be sent by each peer. + * Default number of mailbox network_messages to be sent by each peer. */ private static final int MAILBOX_COUNT_DEFAULT = 100; @@ -113,11 +118,11 @@ public class NetworkStressTest { */ private static long MAX_SHUTDOWN_DELAY_SECS = 2; /** - * Minimum delay between direct messages in milliseconds, 25% larger than throttle limit. + * Minimum delay between direct network_messages in milliseconds, 25% larger than throttle limit. */ private static long MIN_DIRECT_DELAY_MILLIS = Math.round(1.25 * (1.0 / Connection.MSG_THROTTLE_PER_SEC) * 1000); /** - * Maximum delay between direct messages in milliseconds, 10 times larger than minimum. + * Maximum delay between direct network_messages in milliseconds, 10 times larger than minimum. */ private static long MAX_DIRECT_DELAY_MILLIS = 10 * MIN_DIRECT_DELAY_MILLIS; /** @@ -161,11 +166,11 @@ public class NetworkStressTest { private List peerPKRings = new ArrayList<>(); /** - * Number of direct messages to be sent by each peer. + * Number of direct network_messages to be sent by each peer. */ private int directCount = DIRECT_COUNT_DEFAULT; /** - * Number of mailbox messages to be sent by each peer. + * Number of mailbox network_messages to be sent by each peer. */ private int mailboxCount = MAILBOX_COUNT_DEFAULT; @@ -554,7 +559,7 @@ public class NetworkStressTest { for (final P2PService srcPeer : peerNodes) { final NodeAddress srcPeerAddress = srcPeer.getAddress(); - // Make the peer ready for receiving direct messages. + // Make the peer ready for receiving direct network_messages. srcPeer.addDecryptedDirectMessageListener((decryptedMsgWithPubKey, peerNodeAddress) -> { if (!(decryptedMsgWithPubKey.message instanceof StressTestDirectMessage)) return; @@ -601,23 +606,23 @@ public class NetworkStressTest { ); } } - print("%d direct messages scheduled to be sent by each of %d peers", directCount, nPeers); + print("%d direct network_messages scheduled to be sent by each of %d peers", directCount, nPeers); // Since receiving is completed before sending is reported to be complete, // all receiving checks should end before all sending checks to avoid deadlocking. - /** Time to transmit all messages in the worst random case, and with no computation delays. */ + /** Time to transmit all network_messages in the worst random case, and with no computation delays. */ final long idealMaxDirectDelay = MAX_DIRECT_DELAY_MILLIS * directCount; // Wait for peers to complete receiving. We are generous here. - assertLatch("timed out while receiving direct messages", + assertLatch("timed out while receiving direct network_messages", receivedDirectLatch, 25 * idealMaxDirectDelay, TimeUnit.MILLISECONDS); final long recvMillis = System.currentTimeMillis() - sendStartMillis; - print("receiving %d direct messages per peer took %ss (%.2f x ideal max)", + print("receiving %d direct network_messages per peer took %ss (%.2f x ideal max)", directCount, recvMillis / 1000.0, recvMillis / (float) idealMaxDirectDelay); // Wait for peers to complete sending. // This should be nearly instantaneous after waiting for reception is completed. - assertLatch("timed out while sending direct messages", + assertLatch("timed out while sending direct network_messages", sentDirectLatch, idealMaxDirectDelay / 10, TimeUnit.MILLISECONDS); Tuple3 mma = minMaxAvg(sentDelays); - print("sending %d direct messages per peer took %ss (min/max/avg %s/%s/%s ms)", + print("sending %d direct network_messages per peer took %ss (min/max/avg %s/%s/%s ms)", directCount, (System.currentTimeMillis() - sendStartMillis) / 1000.0, mma.first, mma.second, mma.third); org.junit.Assert.assertFalse("some peer(s) failed to send a direct message", sentDirectFailed.get()); @@ -627,16 +632,16 @@ public class NetworkStressTest { // # DIRECT + MAILBOX SENDING AND RECEIVING /** - * Test sending and receiving mailbox messages. + * Test sending and receiving mailbox network_messages. */ @Test public void test_mailbox() throws InterruptedException { // We start by putting the first half of peers online and the second one offline. - // Then the first online peer sends a number of messages to random peers (regardless of their state), - // so that some messages are delivered directly and others into a mailbox. + // Then the first online peer sends a number of network_messages to random peers (regardless of their state), + // so that some network_messages are delivered directly and others into a mailbox. // Then the first online peer is put offline and the last offline peer is put online - // (so it can get its mailbox messages), - // and the new first online node sends messages. + // (so it can get its mailbox network_messages), + // and the new first online node sends network_messages. // This is repeated until all nodes have been online and offline. final int nPeers = peerNodes.size(); @@ -644,7 +649,7 @@ public class NetworkStressTest { // depending on whether the message goes direct or via mailbox. final CountDownLatch receivedMailboxLatch = new CountDownLatch(mailboxCount * nPeers); - // Configure the first half of peers to receive messages... + // Configure the first half of peers to receive network_messages... int firstPeerDown = (int) Math.ceil(nPeers / 2.0); for (P2PService peer : peerNodes.subList(0, firstPeerDown)) { addMailboxListeners(peer, receivedMailboxLatch); @@ -660,13 +665,13 @@ public class NetworkStressTest { // Cycle through peers sending to others, stopping the peer // and starting one of the stopped peers. - print("%d mailbox messages to be sent by each of %d peers", mailboxCount, nPeers); + print("%d mailbox network_messages to be sent by each of %d peers", mailboxCount, nPeers); BooleanProperty sentMailboxFailed = new SimpleBooleanProperty(false); final long sendStartMillis = System.currentTimeMillis(); for (int firstOnline = 0, firstOffline = firstPeerDown; firstOnline < nPeers; firstOnline++, firstOffline = ++firstOffline % nPeers) { - // The first online peer sends messages to random other peers. + // The first online peer sends network_messages to random other peers. final P2PService onlinePeer = peerNodes.get(firstOnline); final NodeAddress onlinePeerAddress = onlinePeer.getAddress(); final CountDownLatch sendLatch = new CountDownLatch(mailboxCount); @@ -724,12 +729,12 @@ public class NetworkStressTest { TimeUnit.SECONDS); //print("put peer %d online", firstOffline); } - /** Time to transmit all messages with the estimated per-message delay, with no computation delays. */ + /** Time to transmit all network_messages with the estimated per-message delay, with no computation delays. */ final long idealMaxMailboxDelay = 2 * MAILBOX_DELAY_SECS * 1000 * nPeers * mailboxCount; - assertLatch("timed out while receiving mailbox messages", + assertLatch("timed out while receiving mailbox network_messages", receivedMailboxLatch, idealMaxMailboxDelay, TimeUnit.MILLISECONDS); final long recvMillis = System.currentTimeMillis() - sendStartMillis; - print("receiving %d mailbox messages per peer took %ss (%.2f x ideal max)", + print("receiving %d mailbox network_messages per peer took %ss (%.2f x ideal max)", mailboxCount, recvMillis / 1000.0, recvMillis / (float) idealMaxMailboxDelay); org.junit.Assert.assertFalse("some peer(s) failed to send a message", sentMailboxFailed.get()); } diff --git a/network/src/test/java/io/bisq/p2p/network/ProtoBufferUtilitiesTest.java b/network/src/test/java/io/bisq/p2p/network/ProtoBufferUtilitiesTest.java index 78bd0552d2..0deaa7a152 100644 --- a/network/src/test/java/io/bisq/p2p/network/ProtoBufferUtilitiesTest.java +++ b/network/src/test/java/io/bisq/p2p/network/ProtoBufferUtilitiesTest.java @@ -1,7 +1,7 @@ package io.bisq.p2p.network; import io.bisq.common.wire.proto.Messages; -import io.bisq.messages.trade.offer.payload.Offer; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -15,8 +15,8 @@ public class ProtoBufferUtilitiesTest { public void testEnum() { Messages.Offer.Direction direction = Messages.Offer.Direction.SELL; Messages.Offer.Direction direction2 = Messages.Offer.Direction.BUY; - Offer.Direction realDirection = ProtoBufferUtilities.getDirection(direction); - Offer.Direction realDirection2 = ProtoBufferUtilities.getDirection(direction2); + OfferPayload.Direction realDirection = ProtoBufferUtilities.getDirection(direction); + OfferPayload.Direction realDirection2 = ProtoBufferUtilities.getDirection(direction2); assertEquals("SELL", realDirection.name()); assertEquals("BUY", realDirection2.name()); } diff --git a/network/src/test/java/io/bisq/p2p/network/TorNetworkNodeTest.java b/network/src/test/java/io/bisq/p2p/network/TorNetworkNodeTest.java index 5b63a77338..337a5eb75d 100644 --- a/network/src/test/java/io/bisq/p2p/network/TorNetworkNodeTest.java +++ b/network/src/test/java/io/bisq/p2p/network/TorNetworkNodeTest.java @@ -3,7 +3,7 @@ package io.bisq.p2p.network; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.SettableFuture; -import io.bisq.messages.Message; +import io.bisq.network_messages.Message; import io.bisq.p2p.mocks.MockPayload; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.jetbrains.annotations.NotNull; diff --git a/network/src/test/java/io/bisq/p2p/routing/PeerManagerTest.java b/network/src/test/java/io/bisq/p2p/routing/PeerManagerTest.java index 76f98d14b6..f96448df0b 100644 --- a/network/src/test/java/io/bisq/p2p/routing/PeerManagerTest.java +++ b/network/src/test/java/io/bisq/p2p/routing/PeerManagerTest.java @@ -1,10 +1,10 @@ package io.bisq.p2p.routing; +import io.bisq.network_messages.NodeAddress; import io.bisq.p2p.DummySeedNode; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; import io.bisq.p2p.P2PServiceListener; import io.bisq.p2p.network.LocalhostNetworkNode; +import io.bisq.p2p.storage.P2PService; import org.junit.After; import org.junit.Before; import org.junit.Ignore; diff --git a/network/src/test/java/io/bisq/p2p/storage/P2PDataStorageTest.java b/network/src/test/java/io/bisq/p2p/storage/P2PDataStorageTest.java index 58fec4481f..2052fddba9 100644 --- a/network/src/test/java/io/bisq/p2p/storage/P2PDataStorageTest.java +++ b/network/src/test/java/io/bisq/p2p/storage/P2PDataStorageTest.java @@ -3,21 +3,25 @@ package io.bisq.p2p.storage; import com.google.common.collect.Lists; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.util.JsonFormat; -import io.bisq.common.crypto.*; +import io.bisq.common.crypto.CryptoException; +import io.bisq.common.crypto.Sig; import io.bisq.common.util.Utilities; import io.bisq.common.wire.proto.Messages; import io.bisq.crypto.EncryptionService; -import io.bisq.messages.alert.Alert; -import io.bisq.messages.trade.offer.payload.Offer; -import io.bisq.p2p.NodeAddress; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.alert.Alert; +import io.bisq.network_messages.crypto.Hash; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; +import io.bisq.network_messages.trade.offer.payload.OfferPayload; import io.bisq.p2p.TestUtils; import io.bisq.p2p.network.NetworkNode; import io.bisq.p2p.network.ProtoBufferUtilities; import io.bisq.p2p.peers.Broadcaster; import io.bisq.p2p.storage.mocks.MockData; -import io.bisq.p2p.storage.payload.StoragePayload; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; import io.bisq.storage.FileUtil; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.payload.StoragePayload; import lombok.extern.slf4j.Slf4j; import mockit.Mocked; import mockit.integration.junit4.JMockit; @@ -129,10 +133,10 @@ public class P2PDataStorageTest { @Test public void testOfferRoundtrip() throws InvalidProtocolBufferException { - Offer offer1 = getDummyOffer(); + OfferPayload offer1 = getDummyOffer(); byte[] serialize = Utilities.serialize(offer1); byte[] serialize2 = Utilities.serialize(offer1); - Offer offer1des = Utilities.deserialize(serialize); + OfferPayload offer1des = Utilities.deserialize(serialize); assertTrue(Arrays.equals(serialize, serialize2)); assertTrue(Arrays.equals(Utilities.serialize(offer1des), serialize)); @@ -141,7 +145,7 @@ public class P2PDataStorageTest { JsonFormat.Parser parser = JsonFormat.parser(); Messages.Offer.Builder builder = Messages.Offer.newBuilder(); parser.merge(buffer, builder); - Offer offer2 = ProtoBufferUtilities.getOffer(builder.build()); + OfferPayload offer2 = ProtoBufferUtilities.getOffer(builder.build()); assertEquals(offer1, offer2); for (int i = 0; i < offer1.getArbitratorNodeAddresses().size(); i++) { if (!offer1.getArbitratorNodeAddresses().get(i).equals(offer2.getArbitratorNodeAddresses().get(i))) @@ -179,22 +183,50 @@ public class P2PDataStorageTest { } @NotNull - private Offer getDummyOffer() { + private OfferPayload getDummyOffer() { NodeAddress nodeAddress = new NodeAddress("host", 1000); NodeAddress nodeAddress2 = new NodeAddress("host1", 1001); NodeAddress nodeAddress3 = new NodeAddress("host2", 1002); NodeAddress nodeAddress4 = new NodeAddress("host3", 1002); - return new Offer("id", System.currentTimeMillis(), nodeAddress4, keyRing1.getPubKeyRing(), Offer.Direction.BUY, 1200, 1.5, true, 100, - 50, "USD", Lists.newArrayList(nodeAddress, nodeAddress2, nodeAddress3), "SEPA", "accountid", - "feetxId", "BE", Lists.newArrayList("BE", "AU"), "bankid", Lists.newArrayList("BANK1", "BANK2"), null, - "version", 100, 100, 100, 100, 1000, 1000, false, - false, 1000, 1000, false, "hash", null); + return new OfferPayload("id", + System.currentTimeMillis(), + nodeAddress4, + keyRing1.getPubKeyRing(), + OfferPayload.Direction.BUY, + 1200L, + 1.5, + true, + 100, + 50, + "USD", + Lists.newArrayList(nodeAddress, nodeAddress2, nodeAddress3), + "SEPA", + "accountid", + "feetxId", + "BE", + Lists.newArrayList("BE", "AU"), + "bankid", + Lists.newArrayList("BANK1", "BANK2"), + "versionNr", + 100, + 100, + 100, + 100, + 100, + 1000, + true, + true, + 1000, + 10000, + false, + "hash", + null); } @Test public void testProtectedStorageEntryRoundtrip() throws InvalidProtocolBufferException { NodeAddress nodeAddress = new NodeAddress("host", 1000); - Offer offer = getDummyOffer(); + OfferPayload offer = getDummyOffer(); try { String buffer = JsonFormat.printer().print(offer.toProtoBuf().getOffer()); JsonFormat.Parser parser = JsonFormat.parser(); diff --git a/network/src/test/java/io/bisq/p2p/storage/ProtectedDataStorageTest.java b/network/src/test/java/io/bisq/p2p/storage/ProtectedDataStorageTest.java index f1d89470ce..c335e8c426 100644 --- a/network/src/test/java/io/bisq/p2p/storage/ProtectedDataStorageTest.java +++ b/network/src/test/java/io/bisq/p2p/storage/ProtectedDataStorageTest.java @@ -1,17 +1,20 @@ package io.bisq.p2p.storage; import io.bisq.common.UserThread; -import io.bisq.common.crypto.*; +import io.bisq.common.crypto.CryptoException; +import io.bisq.common.crypto.Sig; import io.bisq.crypto.EncryptionService; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.P2PService; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.Hash; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; import io.bisq.p2p.TestUtils; import io.bisq.p2p.network.NetworkNode; import io.bisq.p2p.peers.PeerManager; -import io.bisq.p2p.storage.messages.RefreshTTLMessage; +import io.bisq.network_messages.p2p.storage.messages.RefreshTTLMessage; import io.bisq.p2p.storage.mocks.MockData; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; import io.bisq.storage.FileUtil; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.*; import org.slf4j.Logger; diff --git a/network/src/test/java/io/bisq/p2p/storage/messages/AddDataMessageTest.java b/network/src/test/java/io/bisq/p2p/storage/messages/AddDataMessageTest.java index 2a0b0ec468..6c3d9cc18e 100644 --- a/network/src/test/java/io/bisq/p2p/storage/messages/AddDataMessageTest.java +++ b/network/src/test/java/io/bisq/p2p/storage/messages/AddDataMessageTest.java @@ -1,16 +1,17 @@ package io.bisq.p2p.storage.messages; import io.bisq.common.crypto.CryptoException; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.KeyStorage; -import io.bisq.common.crypto.SealedAndSigned; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.NodeAddress; -import io.bisq.p2p.messaging.PrefixedSealedAndSignedMessage; +import io.bisq.network_messages.NodeAddress; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; +import io.bisq.network_messages.crypto.SealedAndSigned; +import io.bisq.network_messages.p2p.messaging.PrefixedSealedAndSignedMessage; +import io.bisq.network_messages.p2p.storage.messages.AddDataMessage; import io.bisq.p2p.network.ProtoBufferUtilities; -import io.bisq.p2p.storage.payload.MailboxStoragePayload; -import io.bisq.p2p.storage.storageentry.ProtectedMailboxStorageEntry; -import io.bisq.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedMailboxStorageEntry; +import io.bisq.network_messages.p2p.storage.storageentry.ProtectedStorageEntry; +import io.bisq.network_messages.payload.MailboxStoragePayload; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.RandomUtils; import org.bouncycastle.jce.provider.BouncyCastleProvider; diff --git a/network/src/test/java/io/bisq/p2p/storage/mocks/MockData.java b/network/src/test/java/io/bisq/p2p/storage/mocks/MockData.java index 97e33294a2..10455563ec 100644 --- a/network/src/test/java/io/bisq/p2p/storage/mocks/MockData.java +++ b/network/src/test/java/io/bisq/p2p/storage/mocks/MockData.java @@ -1,7 +1,7 @@ package io.bisq.p2p.storage.mocks; import io.bisq.common.wire.proto.Messages; -import io.bisq.p2p.storage.payload.StoragePayload; +import io.bisq.network_messages.payload.StoragePayload; import sun.reflect.generics.reflectiveObjects.NotImplementedException; import java.security.PublicKey; diff --git a/pom.xml b/pom.xml index fb7b02171a..6aa743e7d8 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,7 @@ jsocks jtorctl jtorproxy + network-messages network gui headless @@ -230,6 +231,11 @@ ${spring.version} test + + org.apache.httpcomponents + httpcore + 4.4.1 + @@ -252,14 +258,14 @@ - + - - + + diff --git a/provider/src/main/java/io/bisq/provider/fee/FeeRequestService.java b/provider/src/main/java/io/bisq/provider/fee/FeeRequestService.java index c31219b1ca..3fd6fcf1e2 100644 --- a/provider/src/main/java/io/bisq/provider/fee/FeeRequestService.java +++ b/provider/src/main/java/io/bisq/provider/fee/FeeRequestService.java @@ -19,7 +19,7 @@ package io.bisq.provider.fee; import io.bisq.common.util.Utilities; import io.bisq.http.HttpException; -import io.bisq.messages.btc.provider.fee.FeeService; +import io.bisq.provider.fee.FeeService; import io.bisq.provider.fee.providers.BtcFeesProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/provider/src/main/java/io/bisq/provider/fee/providers/BtcFeesProvider.java b/provider/src/main/java/io/bisq/provider/fee/providers/BtcFeesProvider.java index c0161a3f67..1dc85deac8 100644 --- a/provider/src/main/java/io/bisq/provider/fee/providers/BtcFeesProvider.java +++ b/provider/src/main/java/io/bisq/provider/fee/providers/BtcFeesProvider.java @@ -4,7 +4,7 @@ import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import io.bisq.http.HttpClient; import io.bisq.http.HttpException; -import io.bisq.messages.btc.provider.fee.FeeService; +import io.bisq.provider.fee.FeeService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/provider/src/main/java/io/bisq/provider/price/providers/CoinmarketcapProvider.java b/provider/src/main/java/io/bisq/provider/price/providers/CoinmarketcapProvider.java index f76262610e..5233a1bf27 100644 --- a/provider/src/main/java/io/bisq/provider/price/providers/CoinmarketcapProvider.java +++ b/provider/src/main/java/io/bisq/provider/price/providers/CoinmarketcapProvider.java @@ -4,8 +4,8 @@ import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import io.bisq.http.HttpClient; import io.bisq.http.HttpException; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.TradeCurrency; import io.bisq.provider.price.PriceData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/provider/src/main/java/io/bisq/provider/price/providers/PoloniexProvider.java b/provider/src/main/java/io/bisq/provider/price/providers/PoloniexProvider.java index f996268545..03d29ca80a 100644 --- a/provider/src/main/java/io/bisq/provider/price/providers/PoloniexProvider.java +++ b/provider/src/main/java/io/bisq/provider/price/providers/PoloniexProvider.java @@ -4,8 +4,8 @@ import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import io.bisq.http.HttpClient; import io.bisq.http.HttpException; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.locale.TradeCurrency; +import io.bisq.locale.CurrencyUtil; +import io.bisq.locale.TradeCurrency; import io.bisq.provider.price.PriceData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/seednode/src/main/java/io/bisq/seednode/SeedNode.java b/seednode/src/main/java/io/bisq/seednode/SeedNode.java index 8d808238e6..9a49073877 100644 --- a/seednode/src/main/java/io/bisq/seednode/SeedNode.java +++ b/seednode/src/main/java/io/bisq/seednode/SeedNode.java @@ -17,7 +17,7 @@ import io.bisq.common.handlers.ResultHandler; import io.bisq.common.util.LimitedKeyStrengthException; import io.bisq.common.util.Utilities; import io.bisq.p2p.BootstrapListener; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.storage.P2PService; import io.bisq.trade.offer.OpenOfferManager; import io.bisq.trade.statistics.TradeStatisticsManager; import org.apache.commons.lang3.exception.ExceptionUtils; diff --git a/seednode/src/main/java/io/bisq/seednode/SeedNodeModule.java b/seednode/src/main/java/io/bisq/seednode/SeedNodeModule.java index b2a7509382..8ffccf1b98 100644 --- a/seednode/src/main/java/io/bisq/seednode/SeedNodeModule.java +++ b/seednode/src/main/java/io/bisq/seednode/SeedNodeModule.java @@ -24,12 +24,12 @@ import io.bisq.app.BisqEnvironment; import io.bisq.arbitration.ArbitratorModule; import io.bisq.btc.BitcoinModule; import io.bisq.common.Clock; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.KeyStorage; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; import io.bisq.crypto.EncryptionServiceModule; import io.bisq.dao.DaoModule; import io.bisq.filter.FilterModule; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.p2p.P2PModule; import io.bisq.storage.Storage; import io.bisq.trade.TradeModule; diff --git a/statistics/src/main/java/io/bisq/statistics/Statistics.java b/statistics/src/main/java/io/bisq/statistics/Statistics.java index ee6dfbca80..adde8b837e 100644 --- a/statistics/src/main/java/io/bisq/statistics/Statistics.java +++ b/statistics/src/main/java/io/bisq/statistics/Statistics.java @@ -16,13 +16,13 @@ import io.bisq.common.UserThread; import io.bisq.common.handlers.ResultHandler; import io.bisq.common.util.LimitedKeyStrengthException; import io.bisq.common.util.Utilities; -import io.bisq.messages.locale.CurrencyUtil; -import io.bisq.messages.provider.price.PriceFeedService; import io.bisq.p2p.BootstrapListener; -import io.bisq.p2p.P2PService; +import io.bisq.p2p.storage.P2PService; +import io.bisq.provider.price.PriceFeedService; import io.bisq.trade.offer.OfferBookService; import io.bisq.trade.offer.OpenOfferManager; import io.bisq.trade.statistics.TradeStatisticsManager; +import io.bisq.user.Preferences; import org.apache.commons.lang3.exception.ExceptionUtils; import org.bitcoinj.store.BlockStoreException; import org.bouncycastle.jce.provider.BouncyCastleProvider; @@ -99,7 +99,7 @@ public class Statistics { priceFeedService = injector.getInstance(PriceFeedService.class); // We need the price feed for market based offers - priceFeedService.setCurrencyCode(CurrencyUtil.getDefaultTradeCurrency().getCode()); + priceFeedService.setCurrencyCode(Preferences.getDefaultTradeCurrency().getCode()); priceFeedService.setType(PriceFeedService.Type.LAST); priceFeedService.init(price -> log.debug("price " + price), (errorMessage, throwable) -> log.warn(throwable.getMessage())); diff --git a/statistics/src/main/java/io/bisq/statistics/StatisticsModule.java b/statistics/src/main/java/io/bisq/statistics/StatisticsModule.java index d8d61bf497..d94e14ef2c 100644 --- a/statistics/src/main/java/io/bisq/statistics/StatisticsModule.java +++ b/statistics/src/main/java/io/bisq/statistics/StatisticsModule.java @@ -24,12 +24,12 @@ import io.bisq.app.BisqEnvironment; import io.bisq.arbitration.ArbitratorModule; import io.bisq.btc.BitcoinModule; import io.bisq.common.Clock; -import io.bisq.common.crypto.KeyRing; -import io.bisq.common.crypto.KeyStorage; +import io.bisq.network_messages.crypto.KeyRing; +import io.bisq.network_messages.crypto.KeyStorage; import io.bisq.crypto.EncryptionServiceModule; import io.bisq.dao.DaoModule; import io.bisq.filter.FilterModule; -import io.bisq.messages.user.Preferences; +import io.bisq.user.Preferences; import io.bisq.p2p.P2PModule; import io.bisq.storage.Storage; import io.bisq.trade.TradeModule;