Commit Graph

3784 Commits

Author SHA1 Message Date
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
e9bdee6400
Merge branch 'master' into release/v1.9.14 2023-10-16 19:47:43 +00: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
HenrikJannsen
22766b2ac4
Make confirm and release button text uppercase
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-10 00:10:42 +07:00
HenrikJannsen
65c83ce947
Add dont show again checkbox
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-09 16:55:53 +07:00
HenrikJannsen
9a66ca7281
Refactor: Use util method
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-09 16:55:38 +07:00
HenrikJannsen
ef6335ab62
Delay payout if buyers account got flagged as risky by filter data
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-08 19:08:52 +07:00
HenrikJannsen
91a70d89a4
Add delayedPayoutPaymentAccounts to Filter
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-10-08 19:08:52 +07:00
Alejandro García
33e2dab23b
Remove outdated commands from finalize script 2023-09-25 21:46:13 +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
c64c69b242
Merge pull request #6864 from alvasw/Make_build_reproducible
Make build reproducible
2023-09-11 21:38:29 +00:00
Alejandro García
bbbb567747
Merge pull request #6862 from alvasw/Enforce_same_JDK_in_all_start_scripts
Enforce same JDK in all start scripts
2023-09-11 21:37:39 +00:00
Alejandro García
8a5631c932
Merge pull request #6861 from alvasw/Remove_shadowJar_Plugin
Remove shadowJar Plugin
2023-09-11 21:36:27 +00:00
Alejandro García
11c5242c0d
Merge pull request #6860 from alvasw/Remove_old_packaging_tasks
Remove old packaging tasks
2023-09-11 21:35:40 +00:00
Alejandro García
ab26ec9eb4
Merge pull request #6858 from alvasw/Packaging_Generate_hashes_for_all_jars
Packaging: Generate hashes for all jars
2023-09-11 21:33:31 +00:00
Alejandro García
7d12de555e
Merge pull request #6857 from alvasw/Implement_PackagingPlugin
Implement Packaging Plugin
2023-09-11 21:32:26 +00:00
Alejandro García
0ff2b9d95c
Merge pull request #6855 from alvasw/Remove_broken_DockerFile
Remove broken DockerFile
2023-09-11 21:31:11 +00: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
Alva Swanson
45c4d16a0c
Make build reproducible 2023-09-11 01:20:50 +02:00
Alva Swanson
c8f686ba56
Apply AppStartPlugin to all desktop applications 2023-09-10 22:10:09 +02:00
Alva Swanson
4d98a28151
Remove shadowJar Plugin 2023-09-10 18:31:09 +02:00
Alva Swanson
80c1d0a486
Remove old packaging tasks 2023-09-10 18:31:09 +02:00
Alva Swanson
012288d429
Packaging: Generate hashes for all jars 2023-09-10 18:31:09 +02:00
Alva Swanson
aaaa039b20
Implement PackagingPlugin
Supported packages:
- DEB
- DMG
- EXE
- RPM
2023-09-10 18:31:09 +02:00
Alva Swanson
9d593ae32e
Remove broken DockerFile 2023-09-10 18:28:48 +02:00
Alejandro García
2bad8ea76c
Merge pull request #6849 from HenrikJannsen/add_filter_to_awesome_font_demo_app
Add filter to AwesomeFontDemo
2023-09-06 21:41:55 +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
Alejandro García
f99cd13283
Merge pull request #6843 from jmacxx/arbitration_ticket_manual_close_reopen
Allow arbitration tickets to be manually reopened.
2023-09-06 21:38:45 +00:00
jmacxx
dd1c339432
Add MercadoPago payment method. 2023-09-05 16:27:31 -05:00
HenrikJannsen
a0009a95c3
Add filter to AwesomeFontDemo
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-09-05 15:12:31 +07:00
jmacxx
e9ec3d72e1
Improve flow in create/take offer process.
When creating or taking an offer the user gets the choice to fund the
trade from an external wallet for potentially better privacy (avoid
coin merge if inputs from ext. wallet are kept separated). From
feedback it seems that most users are not using that option and then
they need to do that extra click on the "Fund from internal Bisq
wallet" button.
We offer a way to avoid that extra step if the user chooses
to use the internal wallet. We show at the first time a popup
with background info why funding from an external wallet could
improve privacy and if the user prefers to not use that to give them
an option to skip that step in future. In the settings we could add
a toggle to re-enable it again.
The review screen can be skipped if user chooses this feature,
leading to data entry > confirm rather than
data entry > fund > review > confirm.
2023-09-04 13:35:46 -05:00
jmacxx
1bc6a9fc90
Allow arbitration tickets to be manually reopened.
This is useful in cases where a user did not receive the ticket
closure message:
The user messages the arbitrator asking for clarification.
Arbitrator re-opens the ticket and re-sends the closing message.
2023-09-01 10:36:24 -05:00
jmacxx
4bc5494ce9
Add info popup about ARS market prices. 2023-08-30 14:33:35 -05:00
jmacxx
1a184a2e4f
Arbitration broadcast DPT and dispute message in parallel.
Previously the dispute message would only be sent once the DPT had
finished propagation.  To a user it would appear as if nothing
happened and they would attempt to initiate the process again.
That would cause the DPT logic to fail (we already have an
open timer etc..) and the logic failing would result in no
happy path therefore no Dispute message being sent.

Testing confirmed there is no requirement for the dispute to be
chained on the successful propagation of the DPT to nodes.
Both the DPT and the dispute can be attempted again by the user
if necessary.  Rebroadcasting an already published DPT causes
no harm.  Re-sending the dispute message also causes no harm
as there is logic to detect if it already exists and handle it
gracefully.
2023-08-18 17:51:54 -05:00
Alva Swanson
4464a2db3d
desktop: Move JVM args definition to build.gradle 2023-08-05 19:42:12 +02:00
Alva Swanson
44ab029c7e
Gradle: Apply shadow plugin only to desktop module 2023-08-05 15:18:59 +02:00
Alva Swanson
9ce8f83719
Gradle: Centralize application setup 2023-08-05 15:14:04 +02:00
Alva Swanson
af6b664548
desktop: Switch to 'bisq.javafx' Gradle Plugin 2023-08-04 13:31:10 +02:00
Alva Swanson
41eafd2b31
desktop: Move build configuration to its own build.gradle 2023-08-04 13:30:46 +02:00
Alejandro García
85a457c6f1
Merge branch 'master' into release/v1.9.12 2023-07-13 15:11:38 +00:00
Alejandro García
3f2d55a356
Revert to SNAPSHOT version 2023-07-13 17:06:14 +02:00
Gabriel Bernard
02e87d545d
Merge pull request #6767 from bisq-network/release/v1.9.11
Release/v1.9.11
2023-07-13 11:32:14 +00:00
jmacxx
089d4e9237
Show more available UTXOs in Send Funds screen. 2023-07-03 13:44:07 -05:00
Alejandro García
67182ca41f
Merge pull request #6738 from HenrikJannsen/add_bm_accounting_preferences
Add reset buttons for BM accounting
2023-07-01 21:52:41 +00:00
Alejandro García
323399647c
Merge pull request #6679 from napoly/fix_hide_edit_button_bsq_offer
Remove edit button for BSQ offers
2023-07-01 21:51:08 +00:00
HenrikJannsen
1ebc92e5b8
Add reset buttons for BM accounting 2023-07-01 14:25:43 +02:00
Alejandro García
d95dc58a06
Bump version number for v1.9.12 2023-06-30 23:55:18 +02:00
jmacxx
da9caf56a2
Seednode accounting set by command line, overrides UserPreferences. 2023-06-30 20:02:53 +02:00
Alejandro García
1cc2b35c89
Merge pull request #6744 from jmacxx/fix_seednode_accounting_pref
Seednode accounting option is by command line, overrides UserPreferences.
2023-06-30 18:00:50 +00:00
Alejandro García
6b0f32f8e7
Merge pull request #6742 from jmacxx/csv_export_proof_of_burn
Add CSV export for Proof of Burn table.
2023-06-30 18:00:12 +00:00
jmacxx
a9bc45c173
Seednode accounting set by command line, overrides UserPreferences. 2023-06-30 10:10:23 -05:00
jmacxx
aa79b01fd3
Add CSV export for Proof of Burn table. 2023-06-26 18:20:13 -05:00
jmacxx
8024b72860
Add burned BSQ column in monthly burningman status report. 2023-06-26 13:31:55 -05:00
Alejandro García
31b427c92e
Bump version number for v1.9.11 2023-06-22 14:35:22 +03:00
jmacxx
b486522c89
Allow dispute agent to resend ticket, fixes #6690. 2023-06-05 15:27:14 -05:00
Gabriel Bernard
f4368b3185
Merge pull request #6675 from HenrikJannsen/clone_offer_with_shared_maker_fee
Add feature for cloning an offer with shared maker fee
2023-05-25 11:08:08 +00:00
Alejandro García
df6fe57423
Merge pull request #6708 from helixx87/refactor-radio
Refactor "remove radio" logic in JFXRadioButtonSkinBisqStyle
2023-05-23 09:06:15 +00:00
Alejandro García
25908771c7
Merge pull request #6705 from HenrikJannsen/remove_sleep_warning_popup
Remove warning popup when UI thread is blocked for > 20 sec.
2023-05-23 09:05:42 +00:00
HenrikJannsen
1cbdf043cd
Fix bug with selection of account combobox
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-22 19:17:22 +02:00
helixx87
8d7af70fad
Refactor "remove radio" logic in JFXRadioButtonSkinBisqStyle 2023-05-20 14:37:23 +02:00
HenrikJannsen
a7ade008d0
Do not reset content in case the currentTab is editOpenOfferTab, duplicateOfferTab or cloneOpenOfferTab
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-20 08:34:46 +02:00
HenrikJannsen
dbd1098ebb
Add isCloneOfferViewActivated flag to avoid repeated code execution in doActivate.
Do not create a new observableArrayList in filterPaymentAccounts.

The reason why the wrong account gets selected is not completely clear to me. The selection handler gets called when the combobox gets filled and that overwrites the selected account from the data. It seems that the new observableArrayList in filterPaymentAccounts triggered that un-expected behaviour.
2023-05-20 08:31:52 +02:00
HenrikJannsen
8c37ddd57b
Use trigger price from model instead from sourceOpenOffer
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-20 06:36:38 +02:00
HenrikJannsen
4475857db3
Remove popup when UI thread is blocked for > 20 sec.
Fixes https://github.com/bisq-network/bisq/issues/6703

Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-17 16:42:27 +07:00
HenrikJannsen
95023216ec
Use new getReceiverAddress methods instead of getMostRecentAddress
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-17 13:05:36 +07:00
Alejandro García
ac8ad24807
Merge pull request #6697 from stejbac/speed-up-burningman-and-statistics-view-loads
Speed up burningman and statistics view loads
2023-05-16 15:53:44 +00:00
HenrikJannsen
13f7b39fbd
Do not show BSQ accounts in CloneOfferView
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-13 22:55:03 +07:00
HenrikJannsen
b11511e037
Do not use sourceOfferPayload for extraDataMap
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-13 22:15:38 +07:00
HenrikJannsen
e6dc26a26a
Further restrict cloning
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-12 21:02:19 +07:00
HenrikJannsen
63ca40db5c
Remove code for adjusting the security deposit.
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-12 19:30:27 +07:00
HenrikJannsen
f843345dcc
Use sourceOfferPayload when cloning the OfferPayload for the fields which must not get changed (like security deposit could get adjusted by the UI).
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2023-05-12 19:26:32 +07:00
Steven Barclay
f0b011e0ac
Optimise Price.getVolumeByAmount to speed up USD & BSQ conversions
Short circuit the BigInteger arithmetic in 'AltcoinExchangeRate' &
'org.bitcoinj.utils.ExchangeRate' (from which the former is adapted), by
using ordinary long arithmetic when it is guaranteed not to overflow due
to the two quantities to be multiplied fitting in an int. This will be
the case most of the time. Also remove duplicated logic, to ensure that
all conversions of BTC amounts to volumes happen via the 'Price'
instance methods, so that the optimisation always applies.

In particular, this speeds up the BTC -> BSQ conversions in the burning
man view, as well as the USD price calculations for the candles in the
trades charts view via 'TradeStatistics3.getTradeVolume()'.

Additionally, fix the lazy initialisation pattern in TradeStatistics3 to
ensure that it is thread safe (that is, it only has benign data races),
by making it of the form:

  Foo foo = this.foo;
  if (foo == null) {
      this.foo = foo = computeFoo();
  }
  return foo;

This avoids the problem that 'foo' is a nonvolatile field and can
therefore be seen to alternate any number of times between null and
nonnull from the PoV of the thread initialising it (at least when the
initialisation is racy).
2023-05-10 19:41:27 +01:00
Steven Barclay
9ce9ffc694
Use TemporalAdjusterModel cache to speed up BSQ supply view
Use the previously added 'ChartDataModel.toCachedTimeIntervalFn' to
additionally speed up some of the charts in the BSQ supply view, in
particular the trade fees & total burned BSQ, via the DaoChartDataModel
methods 'getBsqTradeFeeByInterval' & 'getTotalBurnedByInterval'. (The
other changes in the BSQ supply, such as proofs of burn or issuance, are
too infrequent to benefit from the LocalDate caching.)

For this to work, the filtered BSQ txs must be streamed in chronological
order, so provide local methods 'get[Burnt|Trade]FeeTxStream()', to use
in place of the DaoStateService methods 'get[Burnt|Trade]FeeTxs()',
which return unordered HashSets.
2023-05-10 19:41:25 +01:00
Steven Barclay
f3fd555ced
Add caches to TemporalAdjusterModel to speed up BSQ dashboard view
Now that the trade statistics are retrieved in chronological order,
optimise the per-interval BSQ & USD price and volume calculations in
PriceChartDataModel & VolumeChartDataModel, by adding caches to avoid
relatively expensive timezone calculations in TemporalAdjusterModel,
similarly to the cache added for 'ChartCalculations.roundToTick' (as
profiling shows 'TemporalAdjusterModel.toTimeInteval' is a hotspot).

Add a cache to speed up Instant -> LocalDate mappings by storing the
unix time (Instant) range of the last seen day (LocalDate) in a tuple,
then just returning that day if the next Instant falls in range. Also
add a cache of the last temporal adjustment (start of month, week, etc.)
of that day. In this way, successive calls to 'toTimeInteval(Instant)'
with input times on the same day are sped up.

Since TemporalAdjusterModel is used by multiple threads simultaneously,
store the caches in instance fields and add a 'withCache' method which
clones the model and enables the caching, since otherwise the separate
threads keep invalidating one another's caches, making it slower than it
would be without them. (We could use ThreadLocals, but profiling
suggests they are too heavyweight to be very useful here, so instead use
unsynchronised caching with nonfinal fields and benign data races.)

Provide the method 'ChartDataModel.toCachedTimeIntervalFn' which returns
a method reference to a cloned & cache-enabled TemporalAdjustedModel, to
use in place of the delegate method 'ChartDataModel.toTimeInterval' when
the caching is beneficial.
2023-05-10 19:41:25 +01:00
Steven Barclay
964321a1e1
Use parallelStream to speed up fillTradeCurrencies
As profiling shows a hotspot mapping the set of trade statistics to a
list of currencies to pass to 'CurrencyList.updateWithCurrencies',
attempt to speed this up with a parallel stream. For this to work
correctly, take care to use the backing set (with unmodifiable wrapper)
in place of 'tradeStatisticsManager.getObservableTradeStatisticsSet()',
as ObservableSetWrapper doesn't delegate calls to its spliterator.
2023-05-10 19:41:24 +01:00
Steven Barclay
6e330e4a14
Speed up SortedList creation in TradesChartsView.fillList
Reduce a hotspot sorting the trade statistics table, triggered by the
'sortedList.bind(comparatorProperty)' call upon completion of the
'fillList' future. Profiling shows that repeated invocation of the cell
value factory over the entries of the sorted column is a bottleneck, so
speed this up by caching the returned cell value (given by calling
'new ReadOnlyObjectWrapper<>(listItem)') as an instance field of
TradeStatistics3ListItem.

As a further significant optimisation, stream the trade statistics in
reverse chronological order, when collecting into a list wrapped by
SortedList, as this matches the default display order, reducing the
number of comparisons done by SortedList's internal mergesort to O(n).
2023-05-10 19:41:24 +01:00
Steven Barclay
a489697a54
Speed up candle data creation in getUpdateChartResult
Optimise (further) the ChartCalculations methods 'getItemsPerInterval' &
'getCandleData' by replacing HashSets in the former with sorted sets,
which avoids relatively expensive calls to 'TradeStatistics3.hashCode'
and needless subsequent re-sorting by date in 'getCandleData'. (Forming
the trade statistics into an ImmutableSortedSet, OTOH, is cheap since
they are already encountered in chronological order.)

Further optimise the latter by using a primitive array sort of the trade
prices to calculate their median, instead of needlessly boxing them and
using 'Collections.sort'.
2023-05-10 19:41:23 +01:00
Steven Barclay
0f52b65daa
Further speedups to getUsdAveragePriceMapsPerTickUnit
Avoid calculating average prices for ticks that won't ever be part of a
visible chart candle, as only the last 90 ticks can fit on the chart. To
this end, stream the trade statistics in reverse chronological order
(which requires passing them as a NavigableSet), so that once more than
MAX_TICKS ticks have been encountered for a given tick unit, the
relevant map (and all lower granularity maps) can stop being filled up.

Also add a 'PriceAccumulator' static class to save time and memory when
filling up the intermediate maps, by avoiding the addition of each trade
statistics object to (multiple) temporary lists prior to average price
calculation.
2023-05-10 19:41:23 +01:00
Steven Barclay
372f92d7aa
Add cache to speed up ChartCalculations.roundToTick
Now that the trade statistics are encountered in chronological order,
speed up 'roundToTick(LocalDateTime, TickUnit)' by caching the last
calculated LocalDateTime -> Date mapping from the tick start (with one
cache entry per tick unit), as multiple successive trades will tend to
have the same tick start.

This avoids a relatively expensive '.atZone(..).toInstant()' call, which
was slowing down 'ChartCalculations.getUsdAveragePriceMapsPerTickUnit',
as it uses 'roundToTick' in a tight loop (#trades * #tick-units calls).

Also unqualify 'TradesChartsViewModel.TickUnit' references for brevity.
2023-05-10 19:41:22 +01:00