Commit graph

3120 commits

Author SHA1 Message Date
Steven Barclay
57662ae206
Sum merit in outer loop to speed up VoteResultView.getVotingHistoryJson
Avoid needlessly repetitive (once per cycle proposal) signature checking
of each 'Merit' object in the DAO state, when exporting the voting
history JSON, by moving the merit calculations to the outer loop over
each cycle, storing the sums in a map by blind vote txId. As signature
verification is expensive, taking seconds to run just once over every
'Merit' object, this is by far the biggest bottleneck when generating
the JSON.
2024-05-06 20:17:09 +02:00
Steven Barclay
34ed5e0f74
Further optimise cycle list selection in Vote Result view
Remove another hotspot in the proposals table creation for a selected
cycle, by making 'ballotByProposalTxIdMap' a field of 'VoteResultView',
recomputed at the same time the cycle list is populated upon calling
'doFillCycleListAndBallotMap()' (renamed from 'doFillCycleList'), when
the Vote Result view is activated.

Also remove an unnecessary outer loop when determining if the user's
vote is included in the result, upon selecting a cycle list item, to
avoid searching the BSQ wallet repeatedly for the same vote reveal tx.
2024-05-06 16:09:51 +02:00
Steven Barclay
6780d35716
Remove unused tableRow field from ProposalListItem
The 'tableRow' field of each (voted upon) proposal list item is reset
upon selection of a cycle list item in the Vote Result view, but not set
anywhere, so remove the field along with its set/reset methods.
2024-05-06 15:24:51 +02:00
Steven Barclay
6ae9831818
Parallelise signature checking in VoteResultView.doFillCycleList()
Run through the 'DecryptedBallotsWithMerits' list of each cycle in
parallel, when filling the cycle list of the Vote Result view, to speed
up the signature verification of all the 'Merit' objects found in the
DAO state. Checking all the signatures is necessary to correctly compute
the total merit stake and hence the vote weight of each ballot list, and
profiling shows that it is by far the biggest bottleneck during the
initial view load (with all subsequent activations of the view skipping
'doFillCycleList()', when outside of the Vote Result DAO phase).

(Since each signature is checked only once from 'doFillCycleList()' and
skipping the checks could potentially affect the computed vote weights,
we cannot obviously do any better than parallelise the checks, to speed
up this method.)

(Even though it may be a little more efficient to parallelise the outer
loop of the method, over the cycles instead of the decrypted votes of
each cycle, each individual signature check is expensive enough that it
probably wouldn't give much improvement over this one-line change.)
2024-05-05 00:20:09 +02:00
Devin Bileck
5f3f692b2f
Fix SIGSEGV encountered on macOS
When attempting to close the frame grabber from a separate thread,
the application would crash due to a SIGSEGV.
2024-04-01 21:52:40 -07: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
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
e75fc1ce79
Add SEPA QR Code for buyer payment. 2024-02-27 14:23:43 -06:00
Steven Barclay
e584c77f9e
Replace Predicate<Long> with LongPredicate in *ChartDataModel
Use the slightly more efficient primitive type specialisation for the
date filters in 'ChartDataModel' and its subclasses.
2024-02-20 18:32:19 +08:00
Steven Barclay
d97636eaad
Don't ignore BSQ burned by invalid txs in chart data models
Use 'Tx::getBurntBsq' instead of 'Tx::getBurntFee', so as not to exclude
BSQ burned by invalid txs from the supply calculations. There are no
invalid BSQ txs at present on mainchain, but accidentally burned BSQ
should definitely count as a reduction in supply, so this fixes a bug.
2024-02-20 16:21:07 +08:00
Steven Barclay
712c97826b
Clean up & optimise (Dao|Price)ChartDataModel
1. Tidy up the stream pipelines which sum over time intervals, by
   summing directly with a grouping collector, instead of wastefully
   collecting to an intermediate map of lists;

2. Move duplicate 'memoize' static method to the base class;

3. Factor out 'getDateFilteredMap' static method, to replace the
   repeated pattern of filtering date keys by a provided predicate and
   collecting into a new map;

4. Use 'Map::replaceAll' instead of the pattern:

      map.entrySet().forEach(e -> e.setValue(updateFn(e.getValue())));

5. Fix a quadratic time bug in 'getBsqMarketCapByInterval' by passing an
   ordered map to 'issuanceAsOfDate', so that it doesn't have to
   repeatedly sort or linearly scan the entire keyset of time intervals,
   to find the latest one before the provided date.
2024-02-20 15:48:39 +08: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
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
997bf0d6b8
Add BSQ market cap chart. 2024-01-22 14:33:11 -06:00
Alejandro García
5872e9e1d6
Merge pull request #6998 from jmacxx/allow_mediation_failed_closed_trades
Allow mediation of failed and closed trades
2024-01-14 11:48:59 +00:00
Alejandro García
f755efa765
Merge pull request #6994 from jmacxx/resync_popup_change
Change unconfirmed popup to 24h after trade start.
2024-01-14 11:48:08 +00:00
yonson2023
6a146cd4ac
Show prompt if holderName is blank. 2024-01-12 16:08:19 -06:00
yonson2023
9e5fa8f1b1
Add holdername to MoneyBeam account. 2024-01-09 17:50:07 -06:00
jmacxx
ff52c43d4f
Allow mediation of failed and closed trades. 2024-01-09 12:56:30 -06:00
jmacxx
e082a49760
Change unconfirmed popup to 24h after trade start. 2024-01-05 22:13:48 -06:00
Alejandro García
f12069aeeb
Merge pull request #6979 from alvasw/FilterManagerMockedPrivilegeKeysTests
Add FilterManagerMockedPrivilegeKeysTests
2023-12-31 13:45:13 +00:00
Alejandro García
1f072bf774
Merge pull request #6977 from alvasw/FilterManagerAddFilterToNetworkTests
Add FilterManagerAddFilterToNetworkTests
2023-12-31 13:44:07 +00:00
Alejandro García
e5ed806235
Merge pull request #6952 from jmacxx/fee_validation_reason_codes
Display the reason for auto-disabling an open offer.
2023-12-31 13:35:44 +00:00
Alva Swanson
bf98531c46
Config: Make configFile field private and add getter 2023-12-28 08:50:13 +01:00
Alva Swanson
e7cb152e11
DevEnv: Make DEV_PRIVILEGE_PRIV_KEY private and add getter 2023-12-28 08:50:13 +01:00
Alejandro García
70a15ceb06
Merge pull request #6965 from yonson2023/pix_add_holder_name
Update Pix payment account, add HolderName
2023-12-20 05:05:18 +00:00
yonson2023
d899e84ddc
Add HolderName to Pix account. 2023-12-15 15:20:18 -06:00
yonson2023
01dc89edc5
Update Wise (TransferWise) account.
TransferWise has rebranded to Wise, rename user-facing parts.
Add HolderName (mandatory for new accounts).
2023-12-15 15:05:11 -06:00
jmacxx
0ad71fc680
Fee validation refactor. 2023-11-28 12:26:38 -06:00
Alejandro García
95e74937c1
Merge pull request #6947 from djing-chan/fix-initial-data-request-handling
Fix initial data request handling
2023-11-24 08:02:18 +00:00
djing chan
688f4f7977
Increase package name length before it gets shortened 2023-11-19 16:45:36 +07:00
djing chan
c8fd897e54
Merge branch 'improve-logs' into fix-initial-data-request-handling 2023-11-19 14:48:43 +07:00
djing chan
08118e387e
Use onDataReceived instead of onUpdatedDataReceived for considering p2p network state as initialized 2023-11-19 14:47:52 +07:00
djing chan
8ee67e555d
Change log level to debug for non-essential logs
Set loge level for org.berndpruenster.netlayer.tor.Tor to WARN (we get repeated logs about HS announced to network from netlayer - would be better to change in netlayer).
Make data request/response logs more visible with line breaks
2023-11-19 14:40:24 +07:00
Alejandro García
dd3f1341cd
Merge pull request #6931 from jmacxx/refactor_fee_service
Refactor & simplify fee service.
2023-11-15 21:41:41 +00:00
jmacxx
6b42bb9657
Adapt fee service client calls to simplified interface.
Obsolete async requests removed, replaced by getTxFee().
2023-10-25 17:07:03 -05:00
jmacxx
7f4bde8669
Fix deviation in open portfolio offers & history. 2023-10-24 10:43:16 -05:00
Alejandro García
f314bd244c
Revert to SNAPSHOT version 2023-10-16 21:36:17 +02:00
Alejandro García
381e44ee14
Bump version number for v1.9.14 2023-10-09 20:44:41 +02:00
Alejandro García
2f09f8a875
Revert to SNAPSHOT version 2023-10-09 20:41:05 +02:00
HenrikJannsen
d5c08fd3c4
Make confirm and release button text uppercase
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-09 20:37:36 +02:00
HenrikJannsen
48b8eb6231
Add dont show again checkbox
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-09 20:37:36 +02:00
HenrikJannsen
52e9a8cd77
Refactor: Use util method
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-09 20:37:36 +02:00
HenrikJannsen
01bd8bb86e
Delay payout if buyers account got flagged as risky by filter data
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-09 20:37:35 +02:00
HenrikJannsen
57ef8bedc7
Add delayedPayoutPaymentAccounts to Filter
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-09 20:37:35 +02:00
Alejandro García
6726399b54
Bump version number for v1.9.13 2023-09-15 13:52:58 +02:00
Alejandro García
1b26cffe7d
Merge pull request #6872 from jmacxx/add_mercadopago_payment_method
Correct mismatched resource ID (MercadoPago).
2023-09-15 11:27:47 +00:00
jmacxx
de1a71a399
Correct mismatched resource ID (MercadoPago). 2023-09-12 20:54:19 -05:00
Alejandro García
9f5368f0b5
Merge pull request #6851 from jmacxx/add_mercadopago_payment_method
Add MercadoPago payment method.
2023-09-11 21:28:19 +00:00
Alejandro García
d3f60c4a5f
Merge pull request #6848 from jmacxx/streamline_create_take_offer_flow
Improve flow in create/take offer process.
2023-09-06 21:41:12 +00:00