* Fix various bugs related to Japan Bank Transfer payment method
* Add missing call to addFormForBuyer(), improve BuyerStep2View UI
* Fix Account Creation UI elements width to fill entire pane
* Fix Account Creation UI elements padding to avoid overlap
* Tweak trade display popup text and various strings
* Remove @Deprecated tag
* Remove unnecessary line break
* Improve layout of fields
All methods that are only used in the desktop project are removed from
BSFormatter to DisplayUtils. This reduces the entanglement between the desktop and core
project by reducing the surface area of the coupling.
* Revert "Increase analytics operator bond amount from 1 to 2"
This reverts commit 322fe23ea7.
* Revert "Add new BondedRoleType for Analytics Operator"
This reverts commit a3a3bf2b2a.
The PGP support was envisioned in the KeyRing but never fully
implemented. This removes the (essentially) dead code.
The protobuf message compatibility is implemented with `reserved`.
We still depend on this jar *indirectly* via bouncycastle:bcpg,
which is used for PGP signature verification of Bisq Desktop updates.
This gets us closer to prospect of removing Bounce Castle dependency
entirely in the future.
Rationale for this direction:
* We are really only using Bouncy Castle for PGP sig verification
* Java's builtin cryptography got vastly better since 2000
* We should prefer boring and proven cryptography anyway
* Australian projects should be considered compromised,
and Bouncy Castle is run by Australian non-profit organization
* Bouncy Castle is a heavy dependency totaling 3.6MB
The BitcoinAverage developer plan API keys in use for this node have
recently expired. Given that we already have four other pricenodes
up and running, there's no compelling reason to keep this fifth one in
place and to pay for hosting and API keys for it every month.
Creating the daoStateHash is quite expensive (about 20-30 ms/block).
As this happens while parsing it delays the parsing time (parsing is
very fast). We persist t the hashes so it is only done for new blocks.
For 1 month of blocks (4000) it would take about 80-120 seconds.
It is not blocking the user thread as it is done per block and those
are parsed one after another.
- Add better logs and duration measurements for expensive operations
- Convert debug logs to trace to avoid flooding the output in debug log
mode.
- Cleanups
The updateBsqWalletTransactions method got called at each block for all
transactions. During block download that wasted a lot of cpu and
led to stuck UI thread and lost connections.
The updateBsqBalance is not cheap (a few ms) and called for 100s of txs
at each block was very problematic.
Furthermore the listeners on the walletTransactions observableList got
triggered which made the situation worse.
We changed the observableList to a ArrayList and use a listener which
gets called after the list is updated.
We also make sure the onTransactionConfidenceChanged listener is not
calling updateBsqWalletTransactions if bsq parsing is not complete and
if the depth of the tx is > 1.
In the updateBsqWalletTransactions method we use a flag and a delay
to ensure that the updateBsqBalance is not called more then once
in 100 ms.
We changed also the getter to return a cloned version of the list to
avoid potential concurrent modification exceptions at clients.
Closes#3175
PhoneNumberValidator + Test Changes:
Added no-arg constuctor required for Guice injection.
Added isoCountryCode setter; this field must be set before
validation.
Added validation of isoCountryCode.
Added missing country code test.
SwishValidator Changes:
SwishValidator now extends PhoneValidator.
Added no-arg constuctor required for Guice injection.
Set isoCountryCode = SE in constructor.
SwishForm Changes:
Sets Swish acct phone number to normalized phone number if
phone # validation is successful.
Replaced Logger declaration with @Slf4j annotation.
Formatted source.
Added 'validation.phone.missingCountryCode' property to i18n file.