now all dao store files and request a shut down of the app.
After a restart the resource files are used. This avoids cases where a resync from
genesis got triggered (observed on seed nodes, not on desktop apps).
Seed nodes and headless apps get shut down automatically.
In case of the desktop app we show a warn popup with shutdown
button and no close button, so we enforce a shutdown to avoid
complications in case the user would continue.
Redesign the UI
Add import/export of payout settings
Add ability to import from mediation ticket
Mediator does not need private key
User can sign using own wallet or private key
Validation of input fields
Calculate the tx fee based on inputs
Display of the generated txid & hex so it can be checked
Change the specific sign window to sign an imported account in the form
of accountAgeWitnessString,pubKeyString. The SignSpecificWitness never
worked due to missing pubKey data and this is a way to import the missing data.
Redesign the UI
Add import/export of payout settings
Add ability to import from mediation ticket
Mediator does not need private key
User can sign using own wallet or private key
Validation of input fields
Calculate the tx fee based on inputs
Display of the generated txid & hex so it can be checked
We separate in 4 groups and sort each by days.
1. signed accounts
2. not yet signed account, we use account age
3. not required signing, we use account age
4. no account age and no signing required (altcoins)
buyerSecurityDepositColumn, sellerSecurityDepositColumn) if app width get scaled up larger.
Fix sorting of columns.
Fix display of trade fee (BSQ/BTC)
Use num trades for avatar sorting
txId and tx.getId are the same.
We got some reports where users have no deposit tx displayed in the
trade after spv resync but cannot move the trade to failed trades.
It seems the invalid txId is still stored in the trade but the tx itself
got removed from the wallet after reysnc. We check not that both the tx
and the txId need to be present.
BtcWalletService was changed to allow the api to override tx fee
rates from the sendbsq and sendbtc methods. The api methods will
still be able to use the network fee service and custom tx fee rate
preference, and set / unset the custom tx fee rate preference, but
the change will permit the addition of an optional txFeeRate parameter
to the sendbsq and sendbtc methods (todo). A few other minor changes
(style and removal of never thrown ex spec) were also made to this class.
Two BtcWalletService methods were refactored.
- The redundant (was always true) boolean isSendTx argument was removed
from the completePreparedVoteRevealTx method signature.
- The redundant (was always true) boolean useCustomTxFee was removed
from the completePreparedBsqTx method signature.
- The completePreparedSendBsqTx method was overloaded with a 2nd parameter
(Coin txFeePerVbyte) to allow api to override fee service and custom
tx fee rate when sending BSQ or BTC.
- The completePreparedBsqTx method was overloaded with a 3rd parameter
(Coin txFeePerVbyte) to allow api to override fee service and custom
tx fee rate when sending BSQ or BTC.
The following line was deleted from the completePreparedBsqTx method
because txFeePerVbyte is now an argument:
Coin txFeePerVbyte = useCustomTxFee ? getTxFeeForWithdrawalPerVbyte() : feeService.getTxFeePerVbyte();
This useCustomTxFee value was always true, and redudant here because
getTxFeeForWithdrawalPerVbyte() returns feeService.getTxFeePerVbyte()
or the custom fee rate preference. i.e.,
Coin txFeePerVbyte = useCustomTxFee ? getTxFeeForWithdrawalPerVbyte() : feeService.getTxFeePerVbyte();
is equivalent to
Coin txFeePerVbyte = getTxFeeForWithdrawalPerVbyte();
LockupTxService, UnlockTxService, BsqSendView, and BsqTransferService
were adjusted to this BtcWalletService refactoring.
Outlier data filter used for the Market Offer Book chart, now accounts
for the switching display position of Buy, Sell data depending on
currency type (Crypto or Fiat).
The api is going to need this method, so it was moved from desktop to core.
- Moved the method from WithdrawalView to WalletService.
- Removed an unused initilizer in WithdrawalView.
We check if the txIds of the inputs matches our maker fee tx and taker fee tx and if the depositTxAddress we
use for the confidence lookup is use as an output address.
This prevents that past txs which have the our depositTxAddress as input or output (deposit or payout txs) could
be interpreted as our deposit tx. This happened because if a bug which caused re-use of the Multisig address
entries and if both traders use the same key for multiple trades the depositTxAddress would be the same.
We fix that bug as well but we also need to avoid that past already used addresses might be taken again
(the Multisig flag got reverted to available in the address entry).
- Add check to swapTradeEntryToAvailableEntry to not swap MULTI_SIG entries.
- Remove swap for MULTI_SIG entries at resetAddressEntriesForPendingTrade
- Add check to swapToAvailable to not swap MULTI_SIG entries.
- Remove swaps for MULTI_SIG entries
- Add setCoinLockedInMultiSigAddressEntry method
- Make coinLockedInMultiSig final and remove setter but use it in constructor.
- Rename getCoinLockedInMultiSig to getCoinLockedInMultiSigAsCoin
We use an immutable list when operating on AddressEntry so changes on the
object would not be reflected in the list.
The only mutable field (beside non critical cache fields) is the keyPair.
Might be good to refactor that as well at some point.
- Add setCoinLockedInMultiSigAddressEntrymethods
- Apply API changes:
-- resetCoinLockedInMultiSigAddressEntry
-- setCoinLockedInMultiSigAddressEntry
-- renamed methods
Widen payment account dropdown in create & edit offer screens
Sort payment account dropdown by name in create & edit offer screens
Sort account listview by name in manage fiat accounts screen
Sort account listview by name in manage altcoin accounts screen
Bug fix: do not adjust BTC amount in edit offer screen
There was a bug where editing an existing offer could have its payment
account changed to one with more restrictive limits and the offer
would still be allowed (although not take-able).
It should not be allowed to be saved in this case. This change takes
proper heed of the "allowAmountUpdate" flag which is false for offer
edits. e.g. edit an F2F buy for 0.25, change to Zelle unsigned, the
offer will prevent saving.
* Formatting changes to chart lines and axes.
* Removed middle chart as it displays no
new info.
* Function getMonthTickLabelFormatter rounds the
tick label display to the nearest month.
Only used for chart1.
* New variable chart1XBounds to keep track of
chart1 X-axis limits, as autoRanging set false.
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.