diff --git a/build.gradle b/build.gradle index 558387ca3a..b0956366d3 100644 --- a/build.gradle +++ b/build.gradle @@ -104,6 +104,16 @@ configure([project(':desktop'), into "${rootProject.projectDir}/lib" } + // edit generated shell scripts such that they expect to be executed in the + // project root dir as opposed to a 'bin' subdirectory + def windowsScriptFile = file("${rootProject.projectDir}/bisq-${applicationName}.bat") + windowsScriptFile.text = windowsScriptFile.text.replace( + 'set APP_HOME=%DIRNAME%..', 'set APP_HOME=%DIRNAME%') + + def unixScriptFile = file("${rootProject.projectDir}/bisq-$applicationName") + unixScriptFile.text = unixScriptFile.text.replace( + 'cd "`dirname \\"$PRG\\"`/.." >/dev/null', 'cd "`dirname \\"$PRG\\"`" >/dev/null') + if (osdetector.os != 'windows') delete fileTree(dir: rootProject.projectDir, include: 'bisq-*.bat') else @@ -114,18 +124,6 @@ configure([project(':desktop'), startScripts { // rename scripts from, e.g. `desktop` to `bisq-desktop` applicationName = "bisq-$applicationName" - - // edit generated shell scripts such that they expect to be executed in the - // project root dir as opposed to a 'bin' subdirectory - doLast { - def windowsScriptFile = file getWindowsScript() - windowsScriptFile.text = windowsScriptFile.text.replace( - 'set APP_HOME=%DIRNAME%..', 'set APP_HOME=%DIRNAME%') - - def unixScriptFile = file getUnixScript() - unixScriptFile.text = unixScriptFile.text.replace( - 'cd "`dirname \\"$PRG\\"`/.." >/dev/null', 'cd "`dirname \\"$PRG\\"`" >/dev/null') - } } } diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 0840a62c09..c341a72af7 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -958,7 +958,7 @@ account.tab.account=Account account.info.headline=Welcome to your Bisq Account account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\n\ An empty Bitcoin wallet was created the first time you started Bisq.\n\ -We recommend that you write down your Bitcoin wallet seed words (see button on the left) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\n\ +We recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\n\ Privacy & Security:\n\ Bisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). @@ -1020,14 +1020,19 @@ If you are not sure about that process visit (https://www.getmonero.org/resource or the Monero forum (https://forum.getmonero.org) to find more information. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill \ the following requirements:\n\n\ -To send BLUR you must use the Blur Network CLI wallet (blur-wallet-cli). After sending a transfer payment, the\n\ -wallet displays a transaction hash (tx ID). You must save this information. You must also use the 'get_tx_key'\n\ -command to retrieve the transaction private key. In the event that arbitration is necessary, you must present\n\ -both the transaction ID and the transaction private key, along with the recipient's public address. The arbitrator\n\ -will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\n\ -If you cannot provide the required data to the arbitrator, you will lose the dispute case.\n\ -The BLUR sender is responsible for the ability to verify BLUR transfers to the arbitrator in case of a dispute.\n\n\ -If you do not understand these requirements, seek help at the Blur Network Discord (https://discord.gg/5rwkU2g). +To send BLUR you must use the Blur Network CLI or GUI Wallet. \n\n\ +If you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save \ +this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the \ +transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\n\ +If you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently \ +in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the \ +lower-right corner of the box containing the transaction. You must save this information. \n\n\ +In the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, \ +2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR \ +transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\n\ +If you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the \ +BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\n\ +If you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). account.altcoin.popup.ccx.msg=If you want to trade CCX on Bisq please be sure you understand the following requirements:\n\n\ To send CCX you must use an official Conceal wallet, either CLI or GUI. After sending a transfer payment, the wallets\n\ display the transaction secret key. You must save it along with the transaction hash (ID) and the recipient's public\n\ diff --git a/desktop/src/main/java/bisq/desktop/app/SystemTray.java b/desktop/src/main/java/bisq/desktop/app/SystemTray.java index 8cb53767ae..6aa2edd929 100644 --- a/desktop/src/main/java/bisq/desktop/app/SystemTray.java +++ b/desktop/src/main/java/bisq/desktop/app/SystemTray.java @@ -52,7 +52,8 @@ public class SystemTray { private static final String ICON_HI_RES = "/images/system_tray_icon@2x.png"; private static final String ICON_LO_RES = "/images/system_tray_icon.png"; - private static final String ICON_WINDOWS = "/images/system_tray_icon_windows.png"; + private static final String ICON_WINDOWS_LO_RES = "/images/system_tray_icon_windows.png"; + private static final String ICON_WINDOWS_HI_RES = "/images/system_tray_icon_windows@2x.png"; private static final String ICON_LINUX = "/images/system_tray_icon_linux.png"; @@ -98,7 +99,7 @@ public class SystemTray { if (Utilities.isOSX()) path = ImageUtil.isRetina() ? ICON_HI_RES : ICON_LO_RES; else if (Utilities.isWindows()) - path = ICON_WINDOWS; + path = ImageUtil.isRetina() ? ICON_WINDOWS_HI_RES : ICON_WINDOWS_LO_RES; else path = ICON_LINUX; diff --git a/desktop/src/main/java/bisq/desktop/components/paymentmethods/BankForm.java b/desktop/src/main/java/bisq/desktop/components/paymentmethods/BankForm.java index a52deac8ed..0c1b303495 100644 --- a/desktop/src/main/java/bisq/desktop/components/paymentmethods/BankForm.java +++ b/desktop/src/main/java/bisq/desktop/components/paymentmethods/BankForm.java @@ -311,11 +311,17 @@ abstract class BankForm extends GeneralBankForm { validateInput(countryCode); holderNameInputTextField.resetValidation(); + holderNameInputTextField.validate(); bankNameInputTextField.resetValidation(); + bankNameInputTextField.validate(); bankIdInputTextField.resetValidation(); + bankIdInputTextField.validate(); branchIdInputTextField.resetValidation(); + branchIdInputTextField.validate(); accountNrInputTextField.resetValidation(); + accountNrInputTextField.validate(); nationalAccountIdInputTextField.resetValidation(); + nationalAccountIdInputTextField.validate(); boolean requiresHolderId = BankUtil.isHolderIdRequired(countryCode); if (requiresHolderId) { diff --git a/desktop/src/main/java/bisq/desktop/components/paymentmethods/CashDepositForm.java b/desktop/src/main/java/bisq/desktop/components/paymentmethods/CashDepositForm.java index 24595a66f9..da7e80ff09 100644 --- a/desktop/src/main/java/bisq/desktop/components/paymentmethods/CashDepositForm.java +++ b/desktop/src/main/java/bisq/desktop/components/paymentmethods/CashDepositForm.java @@ -358,6 +358,14 @@ public class CashDepositForm extends GeneralBankForm { accountNrInputTextField.resetValidation(); nationalAccountIdInputTextField.resetValidation(); + holderNameInputTextField.validate(); + emailInputTextField.validate(); + bankNameInputTextField.validate(); + bankIdInputTextField.validate(); + branchIdInputTextField.validate(); + accountNrInputTextField.validate(); + nationalAccountIdInputTextField.validate(); + boolean requiresHolderId = BankUtil.isHolderIdRequired(countryCode); if (requiresHolderId) { holderNameInputTextField.minWidthProperty().unbind(); diff --git a/desktop/src/main/java/bisq/desktop/components/paymentmethods/GeneralBankForm.java b/desktop/src/main/java/bisq/desktop/components/paymentmethods/GeneralBankForm.java index f12faf1fc7..2e3935d85b 100644 --- a/desktop/src/main/java/bisq/desktop/components/paymentmethods/GeneralBankForm.java +++ b/desktop/src/main/java/bisq/desktop/components/paymentmethods/GeneralBankForm.java @@ -101,7 +101,7 @@ public abstract class GeneralBankForm extends PaymentMethodForm { } void validateInput(String countryCode) { - if (BankUtil.useValidation(countryCode) && !validatorsApplied) { + if (BankUtil.useValidation(countryCode)) { validatorsApplied = true; if (useHolderID) holderIdInputTextField.setValidator(inputValidator); diff --git a/desktop/src/main/java/bisq/desktop/main/account/AccountView.java b/desktop/src/main/java/bisq/desktop/main/account/AccountView.java index e03ef4f171..40bfc802ff 100644 --- a/desktop/src/main/java/bisq/desktop/main/account/AccountView.java +++ b/desktop/src/main/java/bisq/desktop/main/account/AccountView.java @@ -202,6 +202,14 @@ public class AccountView extends ActivatableView { private void loadView(Class viewClass) { View view = viewLoader.load(viewClass); + if (selectedTab != null && selectedTab.getContent() != null) { + if (selectedTab.getContent() instanceof ScrollPane) { + ((ScrollPane) selectedTab.getContent()).setContent(null); + } else { + selectedTab.setContent(null); + } + } + if (view instanceof ArbitratorRegistrationView) { if (arbitratorRegistrationTab != null) { selectedTab = arbitratorRegistrationTab; diff --git a/desktop/src/main/java/bisq/desktop/util/validation/BranchIdValidator.java b/desktop/src/main/java/bisq/desktop/util/validation/BranchIdValidator.java index 45d40c0a0a..0a73cfdf5b 100644 --- a/desktop/src/main/java/bisq/desktop/util/validation/BranchIdValidator.java +++ b/desktop/src/main/java/bisq/desktop/util/validation/BranchIdValidator.java @@ -72,8 +72,7 @@ public final class BranchIdValidator extends BankValidator { } private String getLabel() { - String label = BankUtil.getBranchIdLabel(countryCode); - return label.substring(0, label.length() - 1); + return BankUtil.getBranchIdLabel(countryCode); } } diff --git a/desktop/src/main/resources/images/task_bar_icon_windows@2x.png b/desktop/src/main/resources/images/task_bar_icon_windows@2x.png new file mode 100644 index 0000000000..d795d0ecb5 Binary files /dev/null and b/desktop/src/main/resources/images/task_bar_icon_windows@2x.png differ diff --git a/p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET b/p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET index 5855984273..0c09c0e088 100644 Binary files a/p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET and b/p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET differ diff --git a/p2p/src/main/resources/TradeStatistics2Store_BTC_MAINNET b/p2p/src/main/resources/TradeStatistics2Store_BTC_MAINNET index afbf96a17e..049c4f18f0 100644 Binary files a/p2p/src/main/resources/TradeStatistics2Store_BTC_MAINNET and b/p2p/src/main/resources/TradeStatistics2Store_BTC_MAINNET differ