and do not read or write persisted data.
We had recently a case where a user downgraded from 1.4.2 to 1.3.9 and
this caused failed trades and the wallet funds have been missing due to
some complexities of the wallet wegwit upgrade. The fund could be recovered
but it took quite some effort.
As downgrade is never tested and can lead to all kind of weird bugs we
should prevent that users accidentally can do it.
If there is valid reason to downgrade they can remove the version file.
We relied on the shutdwon routine to be called reliably but it seems that is not the case as some bug reports show.
So we call requestPersistence at every write access of the trade object
We saw that some seed nodes have 2 filters after filter update.
This should not be the case as the remove is broadcast before the
add but seems there is some issue in the P2P storage which does
not cover that correctly.
By adding a 5 sec delay between the remove and add we mitigate
that issue, though should be fixes in the P2P layer but that
will be a more complex and larger effort.
Showing 'x' days until limits lifted (signed, pending)
Showing clock icon (signed, pending)
Showing outlined check icon (aging accounts)
Showing account age (unsigned or aging)
Changed column name from 'Signed since' to 'Account info'
Fixed bug when switching between altcoins and fiat order books
the account info column was being added back to the table in
the wrong position.
* Both axes use autoRange, which results in better
rounded values for the tick mark labels numbers.
* Filter-out data outside the factor limits.
* New constant chartDataFactor for factor limits.
* Formatted tick label currency numbers:
- Fiat: display with grouping separators
- Cryptos: remove trailing zeros in fractional parts
* Add CSS class axisy for y-axis formatting.
Correct wording of transaction confirmation popup to use 'mining fee'
instead of 'transaction fee' to make it consistent with wording of
the BTC confirmation popup.
* Both axes use autoRange, which results in better
rounded values for the tick mark labels numbers.
* Filter-out data outside the factor limits.
* New constant chartDataFactor for factor limits.
* Formatted tick label currency numbers:
- Fiat: display with grouping separators
- Cryptos: remove trailing zeros in fractional parts
* Add CSS class axisy for y-axis formatting.
Adds a check that chain height is within 3 blocks of the reported
height from bitcoin peers -> if not the user cannot take an offer
or have an existing offer taken. It shows a message informing the
user that Bisq is not currently synced, advising them to do an
SPV resync if necessary.
Additionally under Settings/Network a field has been added
to show the chain height of Bisq vs the Peer group.
Added after discussion with chimp1984:
- Correct initialization of chainHeight property
- Rename "Latest BTC block height" display field for clarity
- Enforce chain sync rule for Take Offer scenario
- Enforce chain synch rule for Check offer availability scenario
- change method name to be clearer
The y-axis tick mark labels for crypto (non-fiat)
currencies have a large number of trailing zeroes.
This commit removes the last 3 zeroes from the display.
New method addTickMarkLabelCssClass to grab the
axis tick label and add a CSS class to it.
Signed-off-by: Deus Max <deusmax@gmx.com>
Acked-by: Deus Max <deusmax@gmx.com>
We have a bug in removing a proposal which is not trivial to fix
(p2p network layer). Until that bug is fixed
it is better to not show the remove button as it
confused users and a removed proposal will reappear with a
high probability at the vote phase.
In Settings/General Preferences the Bitcoin Explorer and Bisq Explorer may
now be user defined in addition to the hard coded block explorer choices.
This implementation takes advantage of the existing Protobuf implementation
that stores a BlockExplorer Name/UrlTx/UrlAddress for BTC and for BSQ.
A new popup dialog is implemented which allows editing of the explorer
details (name, txUrl, and addressUrl). Any of the system-defined
explorer details may be selected into the edit fields thus allowing
them to be used as templates, customized or an entirely new explorer to
be used.
If the user switches choice from a customized back to a pre-defined
explorer then the customized settings are gone; this is because the
Protobuf storage only allows saving one selection.
Fixes#4371Closes#4634
A service address can be filtered out using the admin key. This would
be useful if a federated server failed, it could be filtered out so
that the auto-confirmation operates with the remaining services. If
all federated service addresses were filtered out the user would have to
either confirm manually or use their own explorer service.
Provide specific formats for each trade chart interval period, for added
precision and flexibility in formatting the X-axis. Covers suggestion in
Bisq PR#4715 for more compact date formats.
Display the trading account group on edit offer screen which allows
the market and payment method to be chosen.
When applying the edits to the new offer payload, merge in appropriate
fields that describe the market & payment method:
- base and counter currency codes
- payment method and account
- country code, accepted country codes
- bankid and accepted bankIds
Fixes#4720
Clean up date axes style for easy reading. Made date labels shorter,
with clear visual correspondance to relevant axes tick mark.
Tick marks with labels are now larger than those without.
Signed-off-by: Deus Max <deusmax@gmx.com>
Scope of this refactoring is small; more can be done, but the short
term goal is to share trade util logic with core api.
- Removed unused method getCurrencyCode()
- Made minor style changes
- Removed duplicated code block
Shorten "synchronized" to "synced"
Move Bitcoin network peer count to right with Bisq network peer count
Moved "Synchronizing DAO" to center for clarity/balance.
Before we use a thread in readFromResources and readAllPersisted. To avoid that client code need to deal with
threading we moved that to the PersistenceManager and changed the API accordingly so it will not return the persisted object but calls a consumer once it is completed with reading.
These refactoring changes are for reducing existing and potential
duplication coming with the addition of new trading protocol support
in the gRPC API. Some minor styling and logic simplification changes
are also include.
- Convert OfferUtil to injected singleton, and move various offer related
utility methods into it.
- Delete both MakerFeeProvider classes, which were wrappers around the same
static old OfferUtil method.
- Inject OfferUtil into CreateOfferDataModel, CreateOfferViewModel,
TakeOfferDataModel, TakeOfferViewModel, MutableOfferDataModel,
MutableOfferViewModel, OfferDataModel, EditOfferDataModel,
EditOfferViewModel
- Refactor TakeOfferViewModel
Use OfferUtil, remove unused fields & methods.
Made minor logic simplification, style and formatting changes.
- MutableOfferDataModel
Made minor logic simplification, style and formatting changes.
- MutableOfferView uses new paymentAccount.isHalCashAccount().
- MutableOfferViewModel
Refactored to use new VolumeUtil, CoinUtil, OfferUtil.
Removed unused fields & accessors.
Made minor style change.
- Refactored OfferDataModel to use new OfferUtil
- Refactor CreateOfferService
Inject and use OfferUtil
Move some utility methods to OfferUtil
Remove unused fields
- Offer
Refactored to use new VolumeUtil for volume calculations.
Made stateProperty and errorMessageProperty fields private.
- PaymentAccount
Moved isHalCashAccount type check to this class.
Moved getTradeCurrency logic to this class.
- Contract, radeStatistics2, TradeStatistics3
Refactored to use new VolumeUtil for volume calculations.
- Trade
Refactored to use new VolumeUtil for volume calculations.
Made minor logic simplification, style and formatting changes.
- CoinUtil
Moved some coin utility methods into this class
- CoinUtilTest
Moved (coin related) tests from CoinCryptoUtilsTest and OfferUtilTest
into CoinUtilTest, and deleted OfferUtilTest, CoinCryptoUtilsTest.
- Adjust create and edit offer tests to model refactoring
Fixes#4623
URLs in Javafx label controls are not clickable, so separate them out to
one or more clickable Hyperlinks displayed at the footer of the popup.
The approach taken for this is to embed the tag `[HYPERLINK:]` in the
message around a link that you want to be handled this way. The links
can be anywhere within the popup message, in the same order that they
will be displayed. Using the tag has the advantage of being optional,
and does not require new code to be written for each individual popup.
Refactor to be more flexible; allowing inline hyperlinks
Codacy nits.
This would fail once we update trade protocol version when we release segwit. So this fixes that as it only checks if the version is not the old version (1) where refund agents have not been part of the system.
Also checks for legacy arbitrator that it only can be used for version 1 cases. Not tested and not assumed that this code will be executed as old arbitrators would use the old app in case they need to still work on a old case.
Add shutdown method to TradeStatisticsConverter and call it via TradeStatisticsManager. Now as we have a reference to TradeStatisticsConverter in we don't need the hack anymore in applyInjector.
Set log level for com.neemre.btcdcli4j.core.client.ClientConfigurator to error as there is an expected warn log because of the outdated version.
We let seller publish trade stats to avoid those issues with duplicated entries as trade date is different.
We could fix that to use the same trade date, but it seems to be not needed that both traders are publishing and the
risk if a trade stat does not get successfully published does not cause real problems.
There is guarantee anyway that the data is broadcast even if both do it.
In case we still want to do it from both sides we need to use the sellers trade date which is exchanged early in the trade
protocol but yet not further used beside for account age check.
Not sure how to add it to gradle so its set at normal compilation as well...
User get confused by the warning as it sounds somehow alerting.
`WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/Users/dev/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.2.2/6dacbe18e5eaa7f6c9c36db33b42e7985e94ce77/guice-4.2.2.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release`
Rename:
LOW to NETWORK
MID to PRIVATE_LOW_PRIO
HIGH to PRIVATE
Change delay of MID/PRIVATE_LOW_PRIO from 30 min to 2 hours (we had different datastores before using it, now its only real low prio stores)
Add comment to each enum
Make initializePersistenceManager in StorageService abstract to enforce in concrete class to define priority.
Change priorities for future renaming to a different meaning. instead of priority we want to describe the category: private data, public data,.... will come in next commit
Since this is a legal agreement, the goal is to limit the liability of
the facilitators of the service, not to explain how we calculate the
price indicies - users can find that information on the "about" page.
Also updates URL for Dispute Resolution to the new wiki article.
Fixes#4571
Add info to tooltip and to offer window
Add center css to actions column. It looks weird that title is left aligned and button is centered.
only "last-column", "avatar-column" worked, making an new style e.g. center-column did not succeed... css is not my friend....
Shorten "Time since signing" to "Signed since" header to avoid truncation