- "Memo" field is modeled as property of the new object Transaction which is stored in persitant storage.
- Transaction object is modeled in a way that allows extension in the furure for more persisted attributes.
A rewrite of @freimair's PR
https://github.com/bisq-network/bisq/pull/4168.
Adds a secondary sort order of offers in market offer book by offer
amount that goes from high to low. Also, refactors-away overcomplicated
previous implementation of primary sort.
Co-authored-by: Florian Reimair <office@florianreimair.at>
Co-authored-by: cd2357 <15956136+cd2357@users.noreply.github.com>
In bisq-network/bisq/pull/4223 a fix was made to the QRCode display
of amount needed to fund an offer. This accidentally introduced a
bug whereby if the user overpaid the funding, then the QRCode would
throw an error `Coin must be positive`. This is due to a race
condition in OfferDataModel which was setting a property first
to a negative amount before checking if it was negative and if so
then setting it to zero. The fix here is to check for negative
before setting the property so that any listeners do not get an
event (negative) followed by another event (zero).
When exporting trade history to CSV, users would expect to see
their own transaction and trade fees listed. Maker fees are
stored on the Offer, Taker fees are stored on the Trade object.
The code was not properly checking whether the user was the
Offer Maker or Taker, and as such the report was always displaying
the Taker information for Tx and Trade fee. Therefore any trades
where the user was Maker showed the wrong fees.
The column title `Maker Fee` is incorrect and misleading since
the user doing the export is not necessarily the Maker. We
rename this column to `Trade Fee` to indicate that it is the fee
the user paid for trading regardless of Maker/Taker status.
Fixes#4207
Typical comma separated values have a space after each comma
in order to make the list more human-readable. In some areas
of bisq, comma separated lists are generated this way (see #4203),
but the validation of comma separated addresses was not accepting
spaces after commas. This change to the regex allows optional
whitespace after comma separators. A new test has been
added to validate the scenario of whitespace after comma.
Fixes#4203
The API endpoint for fee estimations has been changed to one that delivers more accurate fee estimations.
This is a temporary solution, until a more decentralized approach is found.
Fixes projects/issues/27
The same styling as for a selected row, is applied for a hovered row.
This makes the UI more intuitive, helping users better navigate through and focus on specific rows, especially in large tables.
A few CSS selectors affecting table and list row coloring were moved the dark theme stylesheet (theme-dark.css) to the common stylesheet (bisq.css).
These selectors are theme-independent, since they re-use variables defined in each theme stylesheet (like -bs-background-color). Therefore a more appropriate place for them is in the common stylesheet.
This move means that alternating row background colors are now available for all tables and lists, in all views, in both dark and light themes.
The OfferBook tables now show the amount and the volume as min-max range, where appropriate.
For the offers that have no range defined, the single values are shown.
Fixes#3129
When creating an offer the small QR code displayed for funding
was off by an amount that represent the mining fees. This was due
to the QR code being displayed simultaneously with the wallet
calulating the fee.
We fix the issue by listening to the data model `missingCoin`
value of the offer object, and updating the QR code image
appropriately.
Fixes#3666Fixes#4194
The table in the BondsView uses string sorting by default. This results in unexpected behavior when sorting non-string columns.
This commit adds custom comparators to the numeric columns to address that.
Fixes#3231
and do not broadcast.
It is unclear why we receive expired data (some are very old), but a
manipulated node might produce that and as it only removed at each
batch process running each minute to clean out expired data it still
could propagate. Is an attack vector also to flood the network with
outdated offers where the maker is likely not online.
Should fix https://github.com/bisq-network/bisq/issues/4026
We add a second button (displayed as first) to the preferences UI for
resync from latest resources. We add a warning to the resync from
genesis as it takes very long time and causes heavy network load for
seeds.
The resync button at the stateMonitor does now a resync from resources,
not from genesis.
We add handling of the UnconfirmedBsqChangeOutputList file as well.
In Filemanager we add a check if file exists.
The trader chat view can be opened either by clicking on the chat icon
of a trade in the list, or clicking on "OPEN TRADER CHAT" button for the
currently displayed trade. In the latter case, the count of new messages
displayed on the chat icon was not cleared even though trader chat
was shown. The solution is to move the scope of the routine that
updates trader chat message count from within the table cell handler
to the PendingTradesView class so that it can be called whenever
onChat() is invoked (i.e. when the Trader Chat screen is shown).
Clicking on the trader chat icon of a trade that is not selected
should select that row in the trade list. It does not. This causes
confusion as it gives misleading cues as to which trader you are
communicating with.
Issue a call to select the row of the button when clicked.
Fixes#4172
When editing an offer to adjust the price the fiat amount is
recalculated to reflect the new price. The BTC amount should
not change. Due to a bug, sometimes the BTC amounts were
changed due to a recalculation from the fiat amount.
This PR Fixes 2798 by disabling a call to recalculate BTC and
min BTC amounts when editing.
Fixes 3871. The BTC amount of an offer was being adjusted up in
certain cases due to a rounding calculation from the fiat value
and price. This would prevent some offers from being taken.
There's an existing check to ensure that the amount is not adjusted
below the minimum, here we add a check to ensure that the amount
is not adjusted higher than the maximum defined in the offer.