Commit Graph

7306 Commits

Author SHA1 Message Date
Alejandro García
b89bb3dbde
Merge pull request #7097 from HenrikJannsen/add-check-that-price-is-not-0
Add check that price is not 0.
2024-05-09 19:01:07 +00:00
Alejandro García
f62d8d72ca
Merge pull request #7096 from HenrikJannsen/remove-seed-nodes-of-404State
Remove seed nodes of 404State
2024-05-09 19:00:20 +00:00
Alejandro García
6cef856b57
Merge pull request #7094 from HenrikJannsen/improve-button-text
Improve button text
2024-05-09 18:58:46 +00:00
Alejandro García
0b85e0615d
Merge pull request #7092 from stejbac/speed-up-vote-result-view-load
Speed up Vote Result display, cycle list item selection & JSON export
2024-05-09 18:57:53 +00:00
Alejandro García
0a5a0f316d
Merge pull request #7090 from HenrikJannsen/Improve-export-account-reputation-process-for-Bisq-2
Improve export account reputation process for bisq 2
2024-05-09 18:56:48 +00:00
Alejandro García
dc859e2c2b
Merge pull request #7082 from stejbac/speed-up-bond-repo-update-and-remove-raw-types
Speed up bond repository update and remove some raw types
2024-05-09 18:54:56 +00:00
HenrikJannsen
892db99dcb
Add check that price is not 0.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-08 17:13:33 +07:00
HenrikJannsen
c5f9eb2d9a
Remove seed nodes of 404State
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-08 16:55:25 +07:00
HenrikJannsen
1500837126
Improve button text
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-08 14:26:11 +07:00
Steven Barclay
3a70213d1b
Add new tx-by-id cache to speed up BsqWalletService.isWalletTransaction
Reduce a hotspot searching the BSQ wallet for the user's votes, upon
selecting a list item of the Vote Result view, by optimising the method
'BsqWalletService.isWalletTransaction(String)'. Do this by adding a
lazily initialised Map field, 'walletTransactionsById', kept in sync
with the existing 'walletTransactions' List field, similar to the tx-by-
id cache removed from the base class in the previous commit, so that a
linear scan of that list can be avoided. Don't bother to make the cache
thread safe, however, since 'isWalletTransaction' is only called from
the user thread and wasn't thread safe to begin with -- access to
'walletTransactions' isn't synchronised, and it is updated only on the
user thread, after a 100 ms delay upon any changes to the BSQ wallet.

Also remove the unused methods 'getUnverifiedBsqTransactions()' and
'getBsqWalletTransactions()' from the class.
2024-05-06 00:04:38 +02:00
Steven Barclay
d803a67d0d
Remove unnecessary tx-by-id cache from WalletService
This was added in an earlier commit (57b2b4b8) to speed up the Trade
History view, via the method 'getConfidenceFotTxId(String)', by
replacing a linear scan of the live wallet txs with a lookup into a
lazily initialised map. However, the delegating 'WalletService' method
'getTransaction(Sha256Hash)' already serves this purpose, with
'o.b.w.Wallet' itself maintaining a map of all the wallet txs. Use that
method instead, taking care to exclude dead txs from the lookups, to
exactly preserve the current behaviour.

Also do some minor cleanup of the class, mainly to remove IDE warnings.
2024-05-05 22:37:32 +02:00
HenrikJannsen
13f124566c
Apply patch from @jmacxx (https://github.com/bisq-network/bisq/issues/7066#issuecomment-2087336098)
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-05-02 16:04:20 +07:00
Alejandro García
add2f983f2
Merge pull request #7050 from devinbileck/scan-qr-code
Restore QR code scanner feature for mobile notification pairing
2024-04-30 03:13:31 +00:00
Steven Barclay
3a97953152
Fix cubic time bug in BondedRolesRepository.update()
Alleviate a cubic time bug during the update of the bonded roles
repository, reducing it to quadratic running time. On Mainnet, this
gives a roughly ten-fold speedup and should allow better scaling in the
event that many new bonded roles are added.

Replace calls to 'BondedRolesRepository.findBondedAssetByHash' with a
lookup into a lazily initialised map of bonded assets (Roles) by hash
(reset at the start of each call to 'BondRepository.update()' to prevent
stale caching). This avoids rescanning the roles list for every pair of
roles and lockup tx outputs, thus reducing the number of steps (to
highest order) from:

  #roles * #roles * #lockup-tx-outputs

to:

  #roles * #lockup-tx-outputs

(The logs show 2 or 3 calls to 'BondedRepository.update()' every time a
new block arrives, and while this was only taking around a second or so
on Mainnet, it could potentially grow to something problematic with
cubic scaling in the number of bonded roles.)
2024-04-19 23:49:48 +02:00
Devin Bileck
0f373cee43
Restore QR code scanner feature for mobile notification pairing
This restores the functionality that was removed in b5beea58. However,
this implementation utilizes the JavaCV library rather than the
webcam-capture library as discussed in #4940. As a result, this should
now provide macOS support.
2024-04-01 21:52:40 -07:00
HenrikJannsen
bf6128306f
Increase maxItems from 3000 to 15000.
3000 items are about 180.325 kB.

For nodes not being online for longer the repeated requests consumes quite some time.
With 15k we can expect a 1 MB payload which is still acceptable.

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2024-04-01 11:50:08 +07:00
Alejandro García
0e50d241ee
Merge pull request #7057 from jmacxx/rename_role_community_admin
Rename Keybase admin to Community admin
2024-03-27 09:12:52 +00:00
Alejandro García
85e7f495b5
Merge pull request #7036 from jmacxx/api_confirm_payment_xmr
Add API for payment started with XMR auto conf params
2024-03-27 09:10:00 +00:00
Alejandro García
ee987bef1c
Merge pull request #7005 from jmacxx/sepa_qr_code
Add SEPA QR Code for buyer payment
2024-03-27 09:09:23 +00:00
jmacxx
5c8204ab83
Rename Keybase admin to Community admin fixes #7048. 2024-03-16 09:53:18 -05:00
Steven Barclay
0a1df44daf
Add debug perf logging to BondRepository.update()
This is in anticipation of speedups we wish to make, as JProfiler
reveals it to be a hotspot during new block arrivals (which are tricky
to profile, as they occur at random).
2024-03-09 21:18:24 +08:00
Steven Barclay
7d2e050474
Fix broken PreferencesTest mocks (revealed by strict Mockito stubbing)
Fix the broken stubbing of 'PersistenceManager', which had gone stale as
a result of the conversion of 'Preferences' to asynchronous persistence
in commit 3f4d6e6 (2020/10/12). This caused the assertions in the
'readPersisted' continuation blocks of 3 of the 4 tests not to be
reached. Fix by stubbing the async 'persistenceManager::readPersisted'
method with a callback, instead of stubbing 'getPersisted'.

NOTE: Alternatively, we could add a testing-only 'readPersistedSync'
method to 'Preferences' for consistency, as this is how the other broken
(failing) tests resulting from 3f4d6e6 were fixed (in commit 68583d8).
2024-03-09 20:38:34 +08:00
Steven Barclay
c94fa98417
Generify remaining raw types used by the DAO packages
Fix raw usage of the following types, all of which (apart from
Comparator) touch the DAO packages somewhere:

  Comparable, Comparator, GetStateHashesResponse, NewStateHashMessage,
  RequestStateHashesHandler, PersistenceManager

(Also replace 'Integer.valueOf' with the non-boxing but otherwise
identical method 'Integer.parseInt', in the class 'TxOutputKey'.)
2024-03-09 01:26:36 +08:00
Steven Barclay
e1a8424f12
Generify Bond raw types & rename BondRepository type params
Replace all raw uses of 'Bond<T extends BondedAsset>', mostly with
wildcards (that is, 'Bond<?>'), to prevent compiler/IDE warnings.

Also rename the 'T extends Bond<R>' & 'R extend BondedAsset' type params
of 'BondRepository<..>' to 'B' & 'T' respectively, as this is a little
less confusing.
2024-03-08 21:11:31 +08:00
Steven Barclay
314e976bbc
Cleanup: replace putIfAbsent-then-get with computeIfAbsent
Use the simpler & slightly more efficient 'Map::computeIfAbsent' method
in place of the common pattern:

  map.putIfAbsent(key, newValue());
  V value = map.get();

(Clean up BondRepository + some cases missed from BurningManService.)
2024-03-08 14:40:44 +08:00
jmacxx
e75fc1ce79
Add SEPA QR Code for buyer payment. 2024-02-27 14:23:43 -06:00
jmacxx
9738d5387e
Add API for payment started with XMR auto conf params. 2024-02-26 08:39:39 -06:00
Alejandro García
f941ef300f
Merge pull request #7047 from stejbac/fix-remaining-accounting-store-data-race
Fix remaining data race in BurningManAccountingStore
2024-02-25 14:34:35 +00:00
Alejandro García
42d40e56a1
Merge pull request #7041 from jmacxx/remove_wiz_bsq_explorer
Remove reference to non-functioning BSQ explorer
2024-02-25 14:33:51 +00:00
Alejandro García
e53fb3521f
Merge pull request #7023 from jmacxx/fix_issue_7022
GetTrades should not filter open failed trades
2024-02-25 14:31:39 +00:00
Alejandro García
c86d965b33
Merge pull request #7012 from jmacxx/api_get_dao_status
Add API call to get DAO status
2024-02-25 14:31:06 +00:00
Alejandro García
29c4999f36
Merge pull request #7008 from jmacxx/fix_issue_7006
Refactor detectMultipleHolderNames for efficient use of RAM.
2024-02-25 14:30:31 +00:00
Alejandro García
ebc987b8a4
Merge pull request #7045 from wiz/wiz/20240222-remove-wiz-bitcoin-nodes
Remove 2 more of wiz Bitcoin nodes
2024-02-24 15:15:37 +00:00
Steven Barclay
0214566619
Simplify & optimise BurningManAccountingStore.purgeLastTenBlocks
Remove the last 10 blocks one-by-one from the end of the internal linked
list of blocks, instead of rebuilding a truncated list from scratch.
(This all takes place within a write-lock anyway, so it's atomic.)
2024-02-24 11:26:16 +08:00
Steven Barclay
02ee5bc6ea
Fix remaining data race in BurningManAccountingStore
Add missing synchronisation to the 'toProtoMessage' method, by first
copying the internal list of blocks inside a read-lock, prior to
serialisation (still outside the lock, to maximise concurrency). Since
we only make a shallow copy, this should be fast and take no more than a
MB or so of extra memory.

This prevents a race seen to cause a ConcurrentModificationException
during store persistence, that sometimes occurred when the application
resumed from a long suspension.
2024-02-24 11:12:33 +08:00
Stephan Oeste
79571aa99f
Remove seednodes from jmacxx and add 403State 2024-02-23 17:59:27 +01:00
wiz
8d1aea62fe
Remove 2 more of wiz Bitcoin nodes 2024-02-22 15:09:14 +09:00
jmacxx
b151d11e00
Remove non-available BSQ explorer. 2024-02-17 16:50:38 -06:00
jmacxx
1cad6c86e6
GetTrades should not filter open failed trades.
API add has_failed and error_message properties to TradeInfo.
Code review fixes from @dutu.
2024-02-14 16:59:11 -06:00
Alejandro García
c5a73c0c86
Merge pull request #7007 from jmacxx/bsq_market_cap_chart
Add BSQ market cap chart
2024-02-11 10:05:48 +00:00
Alejandro García
4c1b1cd161
Merge pull request #6986 from yonson2023/fix_transferwise
Wise: fix account summary and add copy icon to form.
2024-02-11 10:04:38 +00:00
jmacxx
0eb50d420b
Expose isDaoStateReadyAndInSync status to API clients. 2024-02-09 13:30:28 -06:00
yonson2023
25a6e08c09
Wise: fix account summary and add copy icon to form.
Add copy icon to Pix form holder name field.
Prompt for holder name if empty.
Optimize form layout.
2024-02-07 20:44:41 -06:00
jmacxx
bc4a46b3df
Refactor detectMultipleHolderNames for efficient use of RAM.
Fixes issue #7006 (Out Of Memory Exception thrown)
2024-02-07 10:32:38 -06:00
Steven Barclay
99f639a589
Replace MockitoSession with the Mockito test extension
Now that 'mockito-junit-jupiter' has been added to the build test
dependencies, we may replace the manual setup & tear down of a Mockito
session with the 'MockitoExtension' JUnit 5 test extension, as the old
Mockito JUnit 4 test runner was no longer available upon upgrading to
Jupiter. This slightly simplifies the tests which use '@Mock', '@Spy',
etc.
2024-02-03 02:36:31 +08:00
Steven Barclay
c41903f7ab
Clean up TxValidatorTest & resource loading in other tests
Fix inspection warnings and other minor defects (unchecked casts, bad
'assert*' usage, unused assignments/declarations, missing null checks,
object equality on enum instances, needless statement lambdas, missing
final, redundant 'toString', needless visibility) in 'TxValidatorTest'.

Also, uniformise and slightly tidy resource loading in other test
classes, replacing 'Files.readAllBytes' with Java 11 'Files.readString'
(which assumes UTF-8 as desired, instead of the default charset).
2024-02-03 01:44:25 +08:00
Steven Barclay
1e3320917c
Use Paths.get(URI) instead of Path.of(String) to fetch test resource
Fix resource loading in 'MakerTxValidatorSanityCheckTests', which breaks
when the working directory has spaces in its absolute path, due to the
fact that the test resource paths are URL encoded.

(This pattern is already used to load resources in a few other tests, so
there hopefully won't be a regression on Windows.)
2024-02-03 00:39:03 +08:00
Alejandro García
66483b4354
Merge pull request #7021 from alvasw/test_all_taker_bsq_cases
Test all Taker BSQ cases
2024-01-31 11:39:52 +00:00
Alejandro García
c5aa473dc3
Merge pull request #7020 from alvasw/test_all_maker_bsq_cases
Test all Maker BSQ Cases
2024-01-31 11:39:01 +00:00
Alejandro García
51e15e3e61
Merge pull request #7019 from alvasw/test_all_taker_btc_cases
Test All Taker BTC Cases
2024-01-31 11:38:03 +00:00