Commit graph

4375 commits

Author SHA1 Message Date
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
2f1566bb06
Add NO_MATCH_FOUND in comment 2020-08-30 14:48:15 -05:00
chimp1984
2f7b24d1c8
- Add @Nullable
- Add curly brackets to one liners
- Log improvements
2020-08-30 14:46:04 -05:00
chimp1984
07a761255d
- Make REPEAT_REQUEST_PERIOD and MAX_REQUEST_PERIOD static
- Replace httpClient.toString() with httpClient.getBaseUrl() as toString
would deliver too much for those use cases.
- Add @Nullable
- Log improvements
2020-08-30 14:45:05 -05:00
chimp1984
2dbc4645ec
- Change tolerance from 1 day to 2 hours.
- Add case if no match is found -> NO_MATCH_FOUND.
- Add test case for NO_MATCH_FOUND
- Add curley brackets to one liners
- Log improvements
2020-08-30 14:42:52 -05:00
chimp1984
3e728c69f7
- Remove AutoConfirmResult enum from protobuf and add a AutoConfirmResult
instead which stores the stateName. [1]

- Adjust protobuf methods

- Add UNDEFINED to AutoConfirmResult.State to support cases where we
get no data to set the enum.

- Add NO_MATCH_FOUND (used in follow up commits)

- Refactoring: Improve constructors

[1]
Enums in protobuf are not well supported. They are global so an enum
with name (e.g. State) inside Trade conflicts with another enum inside
Message with the same name. So they do not reflect encapsulation in the
class like in java.
We moved over time to the strategy to use strings (from enum.name())
instead of the enum, avoiding also cumbersome fromProto and toProto
code and being more flexible with updates.
The autoConfirmResultState enum inside Trade was a bit confusing to me
as it was a different structure as in the java code. We try to mirror
the structure as far as possible.
2020-08-30 14:39:44 -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
James Cox
ca9f61ecde
Update core/src/main/resources/i18n/displayStrings.properties
Co-authored-by: m52go <mfiver@gmail.com>
2020-08-30 12:39:23 -05:00
James Cox
36e2f71f1b
Update core/src/main/resources/i18n/displayStrings.properties
Co-authored-by: m52go <mfiver@gmail.com>
2020-08-30 12:39:05 -05:00
jmacxx
d9d0814064
Re-word the XMR account creation message per @m52go 2020-08-30 11:52:04 -05:00
chimp1984
8d13ff8856
Add comment about size 2020-08-30 10:02:19 -05:00
chimp1984
6accd58fc9
Merge branch 'master_upstream' into bundle-msg-at-broadcast
# Conflicts:
#	p2p/src/main/java/bisq/network/p2p/P2PService.java
2020-08-30 07:27:15 -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
f2e8ce582e
Remove timeStampMap as it is never read
Add hasPrices method
Remove final keywords
2020-08-29 19:29:59 -05:00
chimp1984
beeac10a99
Change GMT0 to UTC and add UTC time to log at shut down 2020-08-29 19:29:08 -05:00
chimp1984
08632e13ee
Add message after dispute opening to show if trade might be an option trade 2020-08-29 18:00:36 -05:00
chimp1984
bf2ca1fc0c
Add BTC prefix or postfix to Price.toFriendlyString method 2020-08-29 14:07:59 -05:00
chimp1984
01482fb8e6
Refactoring
Separate validation from setting key
2020-08-29 13:21:19 -05:00
Christoph Atteneder
ecb8db3a4e
Merge pull request #4440 from jmacxx/fix_low_bsq_offer
Improve warning message regarding insufficient BSQ
2020-08-29 20:03:03 +02:00
chimp1984
7a4fc3d6b7
Merge branch 'master_upstream' into refactor-filter 2020-08-29 12:56:29 -05:00
chimp1984
9e4e800cb6
Fix tests 2020-08-29 12:53:35 -05:00
chimp1984
ef11e2ad89
Fix comment 2020-08-29 12:29:07 -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
sqrrm
591d68a6fd
Merge pull request #4445 from chimp1984/restart-seednodes-deterministically
Use the index of a seed node address in the list of nodes at the
2020-08-29 15:20:03 +02:00
chimp1984
b5c8bae1fa
Enable check for lock time on mainnet and add a 3 block tolerance. 2020-08-28 22:16:04 -05: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
sqrrm
d1a1cc52fe
Merge pull request #4410 from chimp1984/optimize-shutdown-routines
Optimize application shutdown
2020-08-28 17:17:01 +02:00
chimp1984
c535ebbff0
Merge branch 'improve-network-statistics' into bundle-msg-at-broadcast 2020-08-28 09:48:59 -05:00
chimp1984
5ac1f6e05c
Merge branch 'master_upstream' into improve-network-statistics 2020-08-28 09:48:14 -05:00
chimp1984
fa5a58d41a
Use the index of a seed node address in the list of nodes at the
repository to determine the hour to restart.
2020-08-28 02:30:45 -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
jmacxx
ac10d71f78
Add XMR proof result status code TRADE_LIMIT_EXCEEDED 2020-08-27 16:44:32 -05:00
chimp1984
e780d49d55
Merge branch 'improve-network-statistics' into bundle-msg-at-broadcast 2020-08-27 15:43:33 -05:00
chimp1984
8c619530a4
Remove display of data from last second 2020-08-27 15:43:13 -05:00
chimp1984
bef470031e
Merge branch 'improve-network-statistics' into bundle-msg-at-broadcast 2020-08-27 09:33:31 -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
jmacxx
8cb716b802
Improve warning message regarding insufficient BSQ
Improve the warning message to explain why BSQ balances
close to 5.46 are not sufficient to be used for trade fees,
due to dust limits in the Bitcoin protocol.

Fixes #4439
2020-08-26 20:49:38 -05:00
Devin Bileck
51f318d47f
Add mempool.bisq.services explorer and mempool fee estimation provider 2020-08-26 00:01:22 -07:00
chimp1984
a88e8f88fa
Don't use full toString result for thread name 2020-08-26 00:02:57 -05:00
chimp1984
ea50ce8f49
Merge branch 'improve-network-statistics' into bundle-msg-at-broadcast 2020-08-25 22:12:58 -05:00