Commit Graph

18433 Commits

Author SHA1 Message Date
Chris Parker
5908d16720
Added 500+ string translations to Russian language file
Minor typographical correction: Added back a blank line to preserve
line number matching during code review. No change to strings.
2024-10-11 03:02:34 -04:00
Chris Parker
ecb09a4bef
Added 500+ string translations to Russian language file
Previously, about 1,585 out of 2,676 strings (59.23%) were
translated into Russian, the rest remained in English.
This meant a native Russian speaker with limited English
ability might have great difficulty using Bisq application
and might not understand or notice the way the system
works and the many important pop-ups that can appear.
Now there are about 2,103 strings in Russian (78.59%) and
most of the messages the end user normally would see are
displayed in Russian, making the application very usable.
2024-10-11 02:36:54 -04:00
HenrikJannsen
22c6f16c9b
Merge pull request #7265 from cparke2/create-sbp-payment-method
Create payment method "Faster Payments System (SBP)" for Russian Ruble
2024-10-03 16:56:15 +07:00
Chris Parker
2ed9abf000
Create payment method "Faster Payments System (SBP)" for Russian Ruble
Removed all caps of "RUSSIA" in new account pop-up and renamed existing
payment method "Faster Payments" which is a similarly named payment
method to "Faster Payment System (UK)", as required follow-up to
to pull request https://github.com/bisq-network/bisq/pull/7255 and
discussed in issue https://github.com/bisq-network/growth/issues/288
2024-10-02 21:37:10 -04:00
HenrikJannsen
f37344bdc6
Merge pull request #7252 from cparke2/phone-number-validator-required-length-option
New option in PhoneNumberValidator to enforce exact number of digits
2024-09-27 16:07:50 +07:00
HenrikJannsen
122faa5c03
Merge pull request #7259 from cparke2/offer-view-currency-blank-bug
Fix randomly blank currency box upon opening the Offer screen
2024-09-27 16:06:26 +07:00
HenrikJannsen
b4c6963407
Merge pull request #7255 from cparke2/create-sbp-payment-method
Create payment method "Faster Payments System (SBP)" for Russian Ruble
2024-09-26 19:43:48 +07:00
HenrikJannsen
2f665fcb2c
Merge pull request #7253 from cparke2/cleanup-displayStrings-inconsistencies
Language strings file cleanup; added missing, applied rename
2024-09-26 19:37:22 +07:00
HenrikJannsen
b9188bd72a
Merge pull request #7257 from cparke2/same-bank-case-insensitive-match
"Transfer Same Bank" & "Transfer Specific Banks" match case-insentitivity
2024-09-26 19:34:00 +07:00
HenrikJannsen
68f5625518
Merge pull request #7258 from cparke2/same-bank-blank-bic
Improve exception msg and handling when 'Same Bank' BIC/SWIFT blank
2024-09-26 19:22:46 +07:00
HenrikJannsen
1480fe2021
Merge pull request #7251 from cparke2/sort-nonlatin-payment-methods-top
Sort foreign alphabet payment methods above the untranslated ones.
2024-09-26 18:35:18 +07:00
Chris Parker
abe3329071
Fix randomly blank currency box upon opening the Offer screen
When clicking Create Buy/Sell Offer, or Edit/Duplicate/Clone an existing
offer, randomly the initial display of "Currency" associated with the
initially selected payment method was displayed as blank. This seems to
have been caused by scheduling the selection of the initial payment
method combobox selection to happen on a different thread rather than
immediately selecting it (apparently, sometimes the secondard event to
select the currency gets lost).
2024-09-25 19:49:24 -04:00
Chris Parker
7aa61fb6b0
Improve exception msg and handling when 'Same Bank' BIC/SWIFT blank
Users in most countries (see BankUtil.useValidation() ) can create a "Transfer Same Bank"
account with no BIC/SWIFT code. However, to create an offer using this account, it must
have a bankId or JAVA will throw a 'null pointer exception', and the app. will become
unhealthy and hang trying on exit. This fix adds a validation check for the condition and
throws a more "friendly" exception which explains the problem and keeps the app. healthy.
2024-09-24 05:12:52 -04:00
Chris Parker
8e32546f02
"Transfer Same Bank" & "Transfer Specific Banks" case-insentitive
Offers match these payment method types only if bank names entered
in the maker and taker accounts are the same. However, if the maker
entered, for example, "BANK OF AMERICA" as bank name in their Bisq
account but the taker entered "Bank of America", the offer account
mismatches without this fix to make the match case-insensitive.
2024-09-23 12:26:13 -04:00
Chris Parker
0bc6e632ec
Add new payment method "Faster Payments System (SBP)" for Russian Ruble
Discovered missing displayStrings that were not included in the previous
commit, and added them.
2024-09-22 19:42:16 -04:00
Chris Parker
a0f24fe5d5
Add new payment method "Faster Payments System (SBP)" for Russian Ruble
Added new displayStrings into other language files as a placeholder for
future translation, minor revision to order of payment method fields
in source code (cosmetic, no impact on functionality)
2024-09-22 18:55:04 -04:00
Chris Parker
a136f79bd1
Add new payment method "Faster Payments System (SBP)" for Russian Ruble
This is the standard P2P payment method in Russia to perform funds transfers and
payments between Russian bank accounts in Russian Rubles. There is no chargeback
risk. Recipient bank account is located using telephone number and bank name,
and sender receives recipients first name, middle name, and initial of last name
to confirm the phone number entered is correct before sending. Adding this new
payment method has been discussed at length on the GitHub 'growth' channel at:
   https://github.com/bisq-network/growth/issues/288
2024-09-22 18:05:19 -04:00
Chris Parker
595044f4cc
Code Review followup: Use Optional<> and create a new Map for length
Created new class PhoneNumberRequiredLengths.java with a Map lookup for the
requiredlength of phone numbers in select countries that are well-known to
have uniform fixed-length phone number throughout. Country codes missing
will continue to use just the previous length-range algorithms.  Lookup
into this Map is integrated into PhoneNumberValidator.java, no longer
needed an overloaded constructor to provide this functionality.
[New .java file was accidentally omitted from previous commit]
2024-09-22 04:48:57 -04:00
Chris Parker
824997d337
Code Review followup: Use Optional<> and create a new Map for length
Created new class PhoneNumberRequiredLengths.java with a Map lookup for the
requiredlength of phone numbers in select countries that are well-known to
have uniform fixed-length phone number throughout. Country codes missing
will continue to use just the previous length-range algorithms.  Lookup
into this Map is integrated into PhoneNumberValidator.java, no longer
needed an overloaded constructor to provide this functionality.
2024-09-22 04:30:31 -04:00
Chris Parker
26fb559380
Language strings file cleanup; added missing, applied rename
The Bisq policy for displayStrings is stated in the comments
at the beginning of the primary (English) file that all string
keys should be present in all language files, even though
fallthrough would otherwise result. In reviewing how well
the language files actually comply with this rule, just 5
strings out 2,670 did not comply; these changes correct that
and restore all language files to have all strings.
2024-09-22 01:10:55 -04:00
Chris Parker
1f3cd6765f
Added missing resource string, added unittest, fixed minor bug
Original commit omitted the new display string used by this new
feature. Additionally, added two unittests to verify the code
changes in this pull request work and do not break existing
functionality.
2024-09-21 14:43:47 -04:00
Chris Parker
9dc338b87a
New option in PhoneNumberValidator to enforce exact number of digits
Until now, national phone numbers worldwide just had to be between
5-12 digits long to pass validation. However, many countries have a
specific number of of digits in all their phone numbers which is
very well known (EX: all USA numbers are 10 digits long). So this
change adds an optional parameter to specify how many digits must
be in the phone number for it to validate. Uncommited changes will
also use this new capability, provided this pull request is adopted.
2024-09-19 07:14:01 -04:00
Chris Parker
c5ffb5c337
Sort foreign alphabet payment methods above the untranslated ones.
By default, JAVA sorts foreign characters below English characters.
However, the payment methods that are translated are also more
likely to be used by someone native to that language, so it makes
better sense to sort as two separate sets and put the foreign
language ones on top. This commit does that for payment methods.
2024-09-19 03:11:42 -04:00
HenrikJannsen
c8c9251f2b
Merge pull request #7248 from devinbileck/update-seednode-bm-oracle-keys
Update seednode burningman oracle keys
2024-09-17 18:41:11 +07:00
HenrikJannsen
4633012398
Merge pull request #7240 from bisq-network/dependabot/github_actions/actions/setup-java-4.3.0
build(deps): bump actions/setup-java from 4.2.2 to 4.3.0
2024-09-17 18:40:21 +07:00
HenrikJannsen
d4568df398
Merge pull request #7245 from suddenwhipvapor/master
Add suddenwhipvapor onion xmr explorer
2024-09-17 18:36:49 +07:00
HenrikJannsen
74bec5351c
Merge pull request #7246 from cparke2/fix-bsq-block-explorer-url
URL was broken with the /bisq path and just redirecting to mempool front page
2024-09-17 18:36:24 +07:00
Devin Bileck
331bb61db0
Update seednode burningman oracle keys
Remove keys for removed seednodes and add keys for
newer seednodes.
2024-09-16 23:24:16 -07:00
Chris Parker
07655dba16
Default URL was broken and redirecting to mempool front page.
The fix is to simply not use /bisq in the URL.
2024-09-16 21:16:55 -04:00
suddenwhipvapor
7a0f33cb4e
Add suddenwhipvapor onion xmr explorer 2024-09-15 16:00:12 +00:00
HenrikJannsen
66f9648eb7
Merge pull request #7242 from stejbac/fix-low-r-signing-key-decryption-bug
Fix broken low-R signing with a password encrypted wallet
2024-09-13 10:57:17 +07:00
Steven Barclay
0bec4824bf
Fix broken low-R signing with a password encrypted wallet
Prevent 'KeyIsEncryptedException' from being thrown when signing with a
'LowRSigningKey'-wrapped, encrypted HD key, due to breakage of the
apparent invariant that the 'keyCrypter' field of 'ECKey' should be null
whenever the key isn't encrypted.

When signing with a wrapped, encrypted HD key, the original key is
decrypted and then re-wrapped as a 'LowRSigningKey' instance. This was
blindly copying the 'keyCrypter' property of the decrypted key. But
'DeterministicKey::getKeyCrypter' returns non-null if its parent does,
even if the actual field is null, and the decrypted HD key has the same
parent as the encrypted original. Thus, blindly copying the property
(rather than the field) breaks the above invariant.

Fixes issue #7241 with blind voting, caused by the earlier PR #7238
which introduced low-R nonce grinding.
2024-09-13 08:59:49 +08:00
dependabot[bot]
3f13192069
build(deps): bump actions/setup-java from 4.2.2 to 4.3.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.2.2 to 4.3.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4.2.2...v4.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 14:42:59 +00:00
Alejandro García
c116022fcb
Merge pull request #7239 from HenrikJannsen/Add-missing-isBmFullNode-option-to-seed-node-setup-docs
Add missing `isBmFullNode` parameter
2024-09-08 21:25:23 +00:00
Alejandro García
7dab669cfb
Merge pull request #7238 from stejbac/grind-for-low-r-signatures
Produce exclusively low-R signatures from wallet keys
2024-09-08 21:24:53 +00:00
Alejandro García
dd08d36c9b
Merge pull request #7231 from runbtc/patch-1
Add 2 new BTC nodes
2024-09-08 21:24:07 +00:00
Alejandro García
b7802d53f3
Merge pull request #7227 from bisq-network/dependabot/github_actions/actions/setup-java-4.2.2
build(deps): bump actions/setup-java from 4.2.1 to 4.2.2
2024-09-08 21:23:10 +00:00
Alejandro García
bc4fe1d2bc
Merge pull request #7222 from HenrikJannsen/filter-bisq.mempool.emzy.de-from-persisted-preferences
Add `bisq.mempool.emzy.de` to filter of persisted preferences
2024-09-08 21:22:31 +00:00
Alejandro García
425db1fe24
Merge pull request #7214 from HenrikJannsen/rename-ProveriderRepository
Rename provider repository
2024-09-08 21:22:06 +00:00
Alejandro García
e9784b6aa5
Merge pull request #7213 from HenrikJannsen/remove-emzy-bsq-explorer
Remove emzy bsq explorer
2024-09-08 21:21:36 +00:00
HenrikJannsen
1d46b02a1d
Add missing isBmFullNode parameter
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-09-06 12:59:22 +07:00
Steven Barclay
408f902d9c
Use LowRSigningKey elsewhere ECKeys are used for signing
To slightly save storage & bandwidth, create low-R signatures in places
besides tx ScriptSigs & witnesses, such as merit lists, proofs of burn,
filter, alert & accounting authentication data.

(Also, to make setup of mock keys a little easier, bypass wrapping of
keys that are already instances of 'LowRSigningKey' in the factory
method, 'LowRSigningKey.from(ECKey)'.)
2024-09-04 23:46:22 +08:00
Steven Barclay
61b06e716d
Use LowRSigningKey for all BTC & BSQ tx signing
Provide a 'BisqWallet' subclass of 'o.b.w.Wallet', in order to override
the 'signTransaction' method used internally by the bitcoinj SendRequest
API, so that it always produces txs with low-R signatures.

Also modify 'WalletService.signTransactionInput' to likewise wrap wallet
keys, so that the provided tx input is given a low-R signature.

Finally, modify the manual signing logic in TradeWalletService to wrap
multisig & deposit input keys, which should cover all tx signing in the
Bisq application.
2024-09-04 16:39:20 +08:00
Steven Barclay
18a0c32708
Add subclass of ECKey which grinds for low-R signatures
Implement low-R nonce grinding with the class 'LowRSigningKey', which
always produces low-R signatures, consistent with the behaviour of
Bitcoin Core/Knots (post-2018), Sparrow, Coldcard and possibly other
wallets with recent updates, for hopefully improved privacy and slightly
lower and more predictable tx fees. Canonical DER-encoded signatures are
usually either 71 or 70 bytes (starting with hex 3045 or 3044 resp.),
with roughly 50-50 odds, depending on whether they are high-R or low-R.
(Less than 1% of the time, they will be shorter than 70 bytes, because
of the variable length bigint R & S encodings.) So trying different
nonces for low-R saves half-a-byte on average, at the cost of doubling
the average signing time.

To this end, provide the class 'CountingHMacDSAKCalculator' to supply a
custom nonce to 'o.b.c.s.ECDSASigner'. The first invocation of the
k-calculator instance matches the output of the RFC 6979 compliant
Bouncy Castle version, but subsequent invocations increment an internal
counter supplied as additional data/entropy to the HMAC, as mentioned in
section 3.6 of the RFC, until a low-R signature results. In this way, a
deterministic signing algorithm exactly matching that of (post-2018
versions of) Bitcoin Core results.

Also add unit tests, with test vectors taken from the RFC (which only
covers the NIST curves, unfortunately, not secp256k1), and test vectors
generated from signed txs created by the 'bitcoin-tx' command.
2024-09-04 14:14:23 +08:00
HenrikJannsen
5d8641031a
Merge pull request #7221 from stejbac/optimise-restapi-stream-filtering
Optimise/simplify some stream filtering for the REST API
2024-08-29 22:00:01 +07:00
RunBTC
4bdc185d46
Add 2 new BTC nodes 2024-08-10 05:09:56 +00:00
dependabot[bot]
a206e2268b
build(deps): bump actions/setup-java from 4.2.1 to 4.2.2
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4.2.1...v4.2.2)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 14:43:07 +00:00
HenrikJannsen
2749e7d41a
Extract code for removing retired nodes to a methods so its easier to spot
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-07-29 10:51:00 +07:00
HenrikJannsen
e2cc3c8627
Add bisq.mempool.emzy.de to filter of persisted preferences as that node is retired (not reflected in that code base but pending PR is submitted)
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-07-29 10:37:51 +07:00
Steven Barclay
66d6530652
Optimise/simplify some stream filtering for the REST API
Replace the streaming of Map entry sets to pick out a single entry by
key equality, and instead do a lookup into the map. Also, optimise the
date range filtering in 'TradeStatisticsManager::getTradeStatisticsList'
by using 'RangeUtils::subSet' to avoid scanning the entire collection.
(This method is applicable, as the trade statistics set is navigable and
naturally sorted by date.)
2024-07-28 22:05:29 +02:00