Commit graph

1943 commits

Author SHA1 Message Date
chimp1984
595c968f2d
Various small cleanups... 2020-08-30 16:44:45 -05:00
chimp1984
e5aee1ca07
No functionality has been changed by that refactoring, just moved
classes and renamed package and adjusted access modifiers.
2020-08-30 15:50:15 -05:00
chimp1984
ed5078c0f1
Add abstract AutoConfirmResult class to get better support if we want
to add auto confirm for other currencies in the future. The generic part
is only used where we would have issues with backward compatibility like
in the protobuf objects. Most of the current classes are kept XMR
specific and could be generalized once we add other assets, but that
would be an internal refactoring without breaking any network or
storage data. I think it would be premature to go further here as we
don't know the details of other use cases. I added the methods used from
clients to AutoConfirmResult, not sure if the API is well defined by
that, but as said that could become subject of a future refactoring once
another auto confirm feature gets added. Goal of that refactoring was
to avoid that we need more fields for trade and the the UI would have to
deal with lots of switch cases based on currency.

Sorry that is a larger commit, would have been hard to break up...
2020-08-30 15:45:47 -05:00
chimp1984
6c60e1739d
Add support for user name for Revolut accounts
If a user has an existing account with phone number or email as
account ID we show a popup at startup where we require that he sets the
user name. This popup has no close button so he is forced to enter a
value. If there are multiple account multiple popups will be shown.

To not break signed accounts we keep accountId as internal id used for signing.
Old accounts get a popup to add the new required field userName but accountId is
left unchanged. Newly created accounts fill accountId with the value of userName.
In the UI we only use userName.

Input validation does only check for length (5-100 chars). Not sure what
are the requirements at Revolut. Can be changes easily if anyone gets
the specs.
2020-08-30 12:58:31 -05:00
chimp1984
5501822128
Merge branch 'master_upstream' into xmr 2020-08-29 23:03:13 -05:00
chimp1984
ebecd20949
Merge branch 'master_upstream' into add-check-for-option-trade 2020-08-29 20:00:07 -05:00
chimp1984
bedcd9b10e
Add option trade detection message to result message if case was
marked as option trade.

Add repeated calls to price provider it no data available (can happen at
startup).

Show reason in dispute summary.
2020-08-29 19:58:51 -05:00
chimp1984
01482fb8e6
Refactoring
Separate validation from setting key
2020-08-29 13:21:19 -05:00
Christoph Atteneder
835c511cf5
Merge pull request #4448 from wiz/revert-4398-header-tweaks
Revert "Header and other visual tweaks"
2020-08-29 20:01:15 +02:00
chimp1984
7a4fc3d6b7
Merge branch 'master_upstream' into refactor-filter 2020-08-29 12:56:29 -05:00
chimp1984
8253957cb2
Fix null pointer in case if selectedMarketPrice is null 2020-08-29 12:19:36 -05:00
sqrrm
38f9d251ae
Merge pull request #4435 from chimp1984/improve-network-statistics
Add more detailed network statistics
2020-08-29 19:01:43 +02:00
jmacxx
cccc6de595
Default to clearnet XMR proof providers when in dev mode 2020-08-29 10:21:03 -05:00
wiz
997a2a5e55
Revert "Header and other visual tweaks" 2020-08-29 18:12:23 +09:00
chimp1984
f52beadc47
Improve dispute views
Add re-open dispute button to mediation views (not refund agent as
there it might be dangerous if he would close 2 times and pay out twice.

If a dispute was reopened and a message was sent afterwards the receiver
will auto-reopen the dispute as well and the UI shows the number
indicator.

Add search field to traders dispute views.

Fix DisputeMsgEvents which was handling only legacy arbitration cases
and now uses mediation and refund agent. Used to update state in case
the UI is not selected.

Add "send private notification" button for mediators and refund agents.

Add report button for mediators and refund agents
Generates report text of all disputes with more detailed information
which should be used for reporting.

Add "Dump text of all disputes" button for getting a text representation
of all disputes including the messages for mediators and refund agents.
This is not used for report but might be useful for search, etc.

Do not show legacy arbitration tabs (for traders as well for
arbitrators) if no cases available.

Add 5 new enum entries for Reason for dispute:
OPTION_TRADE
SELLER_NOT_RESPONDING
WRONG_SENDER_ACCOUNT,
TRADE_ALREADY_SETTLED,
PEER_WAS_LATE

Hide NO_REPLY, SCAM and PROTOCOL_VIOLATION in UI (still in code if we still
need it and re-activate them).
2020-08-28 22:15:11 -05:00
chimp1984
97ec45c173
Merge branch 'reenable-chat-on-dispute-reopen' into add-report-button-for-dispute-views 2020-08-28 14:23:36 -05:00
chimp1984
fa9f799186
Improve dispute views
Add report button:
Generates report text of all disputes with more detailed information
which should be used for reporting.

Add "Dump text of all disputes" button for getting a text representation
of all disputes including the messages. This is not used for report but
might be useful for search, etc.

Do not show legacy arbitration tabs (for traders as well for
arbitrators) if no cases available.

Add 3 new enum entries for Reason for dispute:
OPTION_TRADE
SELLER_NOT_RESPONDING
WRONG_SENDER_ACCOUNT
Hide NO_REPLY and PROTOCOL_VIOLATION in UI (still in code if we still
need it and re-activate them)
2020-08-28 13:48:28 -05:00
jmacxx
e3bf0735f7
Persist the auto confirm state of Trade object
Auto confirmed trades will be indicated as such on Trade details.
2020-08-28 12:13:50 -05:00
chimp1984
2f291a6acb
Cleanup Filter value object. Remove nullables from old versions. Keep signatureAsBase64 nullable as it is set null at creation time and set later after signing. We use filter protobuf data as input for signature so we have to set signature to null and apply the signature afterwards. To keep object immutable we clone it with static clone method. Similar we handle signature verification. We clone the filter with a null value for the signature and do the validation with that cloned object.
Use now the complete object data for signature creation. We use the protobuf data for creating the signature with DER encoding. We restict ourself more regarding backward compatibility but I think it is not a big problem.
If a new field is added to Filter and deployed the maintainer needs to publishes a new filter object. By using the new version he cannot remove the old filter from the network as the protobuf data is different and sig verification on the P2P datastorage level will fail. This is intended to keep the old filter alive for some time to support not updated users. We do not remove invalid filters anymore from our local storage to enable seed nodes to support also old filter objects.
For not updated users the new filter will fail at sig verification because the protobuf data is different. So they ignore the new filter and still use the old filter. For updated users the old filter will fail and the new filter is accepted. As it has a newer date it would also replace the old filter anyway. If the maintainer wants to delete the old filter from the network he can use the old app version and remove the filter. It is recommended to keep a copy of the data directory before the update so that the removal of the older filter is possible.

Refacorings:
- Rename isPeersPaymentAccountDataAreBanned to arePeersPaymentAccountDataBanned
- Rename isSignerPubKeyBanned to isWitnessSignerPubKeyBanned
2020-08-27 21:23:02 -05:00
jmacxx
967e0538d6
Rename XmrProofResult to AutoConfirmResult 2020-08-27 21:15:24 -05:00
chimp1984
8c619530a4
Remove display of data from last second 2020-08-27 15:43:13 -05:00
Jelle Besseling
61d730abf9
Add Tether token support via ERC20 and Omni 2020-08-27 11:55:23 +02:00
jmacxx
c6f1e5274f
Merge remote-tracking branch 'origin/master' into add-xmr-tx-key-service-2 2020-08-26 22:17:58 -05:00
jmacxx
ca8f53c2c2
Implement XMR tx proof autoconfirm feature
* XMR seller is prompted to enter txId and viewkey.
* looks up the XMR transaction to verify that it has confirmed
* user can run their own validating service, or use the ones provided
* 100% agreement of all chosen services is necessary for confirmation
* feature can be configured and turned on/off from settings screen
* feature can be globally turned off via admin filter
* two code review passes from chimp1984
* one text review from m52go
2020-08-26 21:51:14 -05:00
sqrrm
2cc0e4134b
Reload dispute layout on reopen
When a dispute is reopened it now shows the chat text entry field.
2020-08-26 13:40:49 +02:00
chimp1984
5a167d618e
Add more detailed network statistics
- Show in network settings UI data sent/received, total messages
sent/received, msg/sec and messages of last second
- Log every minute statistics
2020-08-25 21:39:23 -05:00
Christoph Atteneder
30eeb6ec61
Merge pull request #4398 from pedromvpg/header-tweaks
Header and other visual tweaks
2020-08-24 20:46:47 +02:00
pedromvpg
636e20f1c6
Shorten line length 2020-08-24 13:56:52 -04:00
sqrrm
b512e31553
Merge pull request #4409 from chimp1984/optimize-AssetService
Optimize AssetService
2020-08-22 14:56:33 +02:00
chimp1984
67312a5b66
Update desktop/src/main/java/bisq/desktop/main/dao/burnbsq/assetfee/AssetFeeView.java
Co-authored-by: sqrrm <sqrrm@users.noreply.github.com>
2020-08-21 20:58:12 -05:00
Steven Barclay
23688db18c
Fix intermittent blank price cells in offer book view
Replace faulty cell update logic, which uses a ChangeListener<Scene>,
added in July 2017 (#73f21399) to keep the price column in the offer
book table up to date, as it appears to occasionally result in blank
cells. Also it seems only the prices, not the volumes, were being kept
in sync with the market price feed.

Make the price and volume cells stateless and keep them in sync with the
market feed by adding it as a dependency of each OfferBookListItem
Observable generated by the cell value factory, instead of directly
attaching listeners to it. In this way, TableCell::updateItem will be
called by the framework whenever the price/volume needs updating.

(This does have the disadvantage that if the price feed is unavailable,
causing Offer::getPrice to return null, then the cells will reflect that
immediately instead of showing any old, stale values, but that is
necessary for the UI to behave consistently anyway.)
2020-08-20 18:40:13 +08:00
Steven Barclay
894d2be5db
Rename misleading OfferBookChartViewModel method name
s/isAnyPricePresent/isAnyPriceAbsent/g

Also use a lambda to shorten 'currenciesUpdatedListener' slightly.
2020-08-20 17:51:57 +08:00
sqrrm
6ed770491c
Merge pull request #4406 from cd2357/xchange-integration-gui-label-adjustments
Update GUI labels to reflect multiple rate providers
2020-08-20 11:21:44 +02:00
Christoph Atteneder
fa000ddc45
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.3.7
# Conflicts:
#	core/src/main/java/bisq/core/provider/ProvidersRepository.java
2020-08-19 13:04:26 +02:00
chimp1984
a9ce9f423e
Bow to Codacy robot
Private constructors are OK if injection is used.
Empty methods are also ok if requires for interface...
2020-08-12 16:25:56 -05:00
chimp1984
55b070f955
Optimize AssetService
Previous version had several performance issues:
- We kept tradeStatistics in a lookup map in memory (about 40 MB)
- We built up the StatefulAssets even if it was not used/needed.
Building the StatefulAssets was an expensive call.
- AssetTradeActivityCheck was only used for printing out statistics and
called on startup causing performance cost.

Optimized version:
- We call build the StatefulAssets only on demand (user activates
view). Method call takes now 22 ms.
- We create a optimized lookup map with a tuple of the data we need
and keep it as local variable.
- We removed AssetTradeActivityCheck.

Thanks to the profiling reporting from:
https://github.com/bisq-network/proposals/issues/199
2020-08-12 16:11:54 -05:00
cd2357
ef5b80440c
Update exchange rate info in About view
Update field describing the source of the shown exchange rates,
indicating that the Bisq Price Index is used.
2020-08-09 15:28:09 +02:00
cd2357
2ddb2c2ca2
Update top-right tooltip timestamp
Update timestamp shown in top-right tooltip, to indicate the point in
time when that specific exchange rate was retrieved (from an Exchange,
if only one exchange supported for that currency) or when it was
calculated (by the pricenode, based on inputs from multiple exchanges).
2020-08-09 13:52:57 +02:00
cd2357
f534939b35
Update labels to indicate Bisq Price Index
Update top-right status box and tooltip labels to indicate the price is
based on the Bisq Price Index.
2020-08-09 13:13:10 +02:00
cd2357
f73f4174dd
Rename method
Rename method to remove reference to the BA provider.
2020-08-08 21:04:17 +02:00
cd2357
b8a76b0e92
Update top-right bar references to price source
Update the displayed text, as well as the tooltip, of the price box in
the top right bar. It now indicates that the price data is provided by
Bisq pricenodes (for for fiat, as well as for alts).
2020-08-08 19:59:34 +02:00
chimp1984
bc0284ba0b
Move merit and stake column to the right
For better usability I moved the column next to the result.
2020-08-06 11:42:57 -05:00
pedromvpg
5a16db8440
Header and other visual tweaks 2020-08-04 02:03:13 -04:00
Christoph Atteneder
a2302b3e0b
Only show signing state if signing for payment method is required 2020-08-03 12:03:52 +02:00
Christoph Atteneder
7475f17207
Bump version number for v1.3.7 2020-07-30 10:19:34 +02:00
Christoph Atteneder
66d3589910
Merge pull request #4383 from jmacxx/fix_low_bsq_offer
Maintain floor amount of 5.46 BSQ to prevent dust errors
2020-07-29 11:00:35 +02:00
jmacxx
2d5ab2a8d7
Maintain floor amount of 5.46 BSQ to prevent dust errors
When an offer is made using BSQ for trade fee, the BSQ amount
is burnt by doing a send-to-self.  However if the BSQ change
is below the bitcoin dust limit this causes an error.  We
fix this by maintaining a floor amount of 5.46 BSQ.

Fixes #4372
2020-07-28 09:50:54 -05:00
Christoph Atteneder
34f26b1bb4
Merge pull request #4379 from jmacxx/fix_popups
Warn that seeds are not a data backup
2020-07-27 20:36:18 +02:00
jmacxx
bbc328b70c
Warn that seeds are not a data backup
Display a mandatory warning when the seed backup/restore
screen is shown.  The warning informs the user that a data
directory backup is necessary to restore the full state of
bisq, not just the wallet seed words.

Fixes #4375
2020-07-27 09:17:20 -05:00
chimp1984
43e4809d81
Add basic support for validation for XMR transfer with tx key
Main part missing is the XMR proof service request processing. I did not
get the service compiled yet, so could not test response data and error
conditions.

Further it is missing a "news badge" and popup to guide the user to the
new feature.

Only basic dev tested so far.

Anyone welcome to pick the project up from here as I might not have
time soon to continue.
2020-07-26 18:55:07 -05:00