Commit graph

13164 commits

Author SHA1 Message Date
Christoph Atteneder
77aab8a97c
Add error log to get more information on the actual problem 2020-11-19 16:51:45 +01:00
Steven Barclay
88d7d96427
Fix failing OpenOfferManagerTest & PeerManagerTest
These are failing on the tip of release/1.5.0 currently due to extra
validation added to PersistenceManager, causing the build to fail upon
merging upstream. Add missing PersistenceManager.shutDown calls to the
tearDown methods of the affected tests to fix.
2020-11-19 16:47:21 +01:00
Christoph Atteneder
ce265e48b7
Merge pull request #4816 from chimp1984/reduce-persistence-interval
Fix issues with missing persistence for trade state
2020-11-19 16:33:46 +01:00
chimp1984
a4db09fe1d
Move delay for applying mailbox messages inside onInitialized
We need to set addDecryptedDirectMessageListener without
delay as otherwise we could miss direct messages (detected
with localhost testing, with tor its likely slower and
would not have been triggered).
2020-11-19 10:19:48 -05:00
ghubstan
cb9a68bae1
Tidy up payment accts api related msgs on CLI 2020-11-19 12:01:41 -03:00
chimp1984
d6f4eed39e
Add requestPersistence call at TradeTask.complete call.
This is not really needed as we call it at each state change of the
trade but gives more redundancy in case we missed one or once
changes are applied and a dev forgets to call it.

Multiple repeated calls do have close to zero costs.
2020-11-19 09:51:06 -05:00
Christoph Atteneder
580387c0b7
Add error log to get more information on the actual problem 2020-11-19 14:58:44 +01:00
Christoph Atteneder
247c82b386
Merge pull request #4820 from oscarguindzberg/fixSignAes
Use AES key for signing when wallet is encrypted
2020-11-19 09:47:26 +01:00
chimp1984
da9b42fb83
Handle potential deposit confirmed state issues
The deposit confirmed state is set after we applied the mailbox messages,
which led to a task failure due wrong phase and the message was not applied.
Further it can be that the wallet is still syncing and the deposit
confirmed state is set in any time in the future.

To fix the first problem we add a bit of delay so that the trade has
been updated when we apply the mailbox messages. A better fix would be to change
the order of the methods but that is a bit tricky to get right and I dont want to
risk that for that release.

The second problem would require a large change to trigger the mailbox
processing based on wallet state. We prefer to be more tolerant with
the expected phase instead so allow the mailbox message to be processed
also in the DEPOSIT_PUBLISHED state.
This has no risks as the payout tx would be invalid anyway if the
buyer has cheated and sent the msg in not confirmed deposit tx state (only
possible with code manipulation).

A better fix would to add a listener for the wallet and process
the mailbox msg once wallet is ready and trade state set, but I
leave that for another PR.
2020-11-19 00:34:40 -05:00
chimp1984
706ec5a2ed
Add null checks for tradeManager
We get called some setter methods from protobuf methods before tradeManager is set.
2020-11-19 00:07:34 -05:00
chimp1984
438a0d8217
Remove requestPersistence in constructor as TradeManager is not set at that moment. 2020-11-18 19:58:20 -05:00
ghubstan
138822edad
Avoid 'unnecessary use of fully qualified name' codacy issue 2020-11-18 20:05:15 -03:00
ghubstan
08228d07bc
Replace existing api method 'createpaymentacct' impl
In the CLI, this method now takes a single argument, the path to a json
file (a payment account form).  The json text is read from the file
and sent to the server, where it is serialized to a new PaymentAccount
instance, saved, and sent back to the CLI as a protobuf.PaymentAccount.

- Modified existing gRPC boilerplate in grpc.proto and GrpcPaymentAccountsService.

- Modified existing method signatures in CoreApi and CorePaymentAccountsService.

- Replaced existing method impl in CorePaymentAccountsService and
  removed dead code.

- Replaced the CLI's existing 'createpaymentacct' method impl.

- Modified existing tests.
2020-11-18 19:23:21 -03:00
Oscar Guindzberg
5906950e1f
Calculate witness sig with AES key 2020-11-18 18:28:06 -03:00
ghubstan
35c1c4e944
Ensure EXPECTED_FORM.clear() is never skipped 2020-11-18 16:42:17 -03:00
ghubstan
fdb89a26d0
Test new api method 'getpaymentacctform' 2020-11-18 16:18:57 -03:00
ghubstan
dc227ec8cc
Add new api method 'getpaymentacctform' to CLI 2020-11-18 16:18:15 -03:00
ghubstan
8996fa1748
Add boilerplate for new 'getpaymentacctform' api method 2020-11-18 16:17:24 -03:00
ghubstan
32dd727a89
Add new PaymentAccountForm to core.api.model
This class uses the gson PaymentAccountTypeAdapter to generate editable
json forms for PaymentAccount sub-types, and instantiate PaymentAccount
instances from edited json forms.
2020-11-18 16:16:04 -03:00
ghubstan
1f84ad0fd1
Add isCountryBasedPaymentAccount to abstract PaymentAccount 2020-11-18 16:15:13 -03:00
ghubstan
c25debaf99
Add new (gson) PaymentAccountTypeAdapter to core.api.model
This class does most of the work of the api's (create) PaymentAccount
json form serialization/de-serialization.
2020-11-18 16:12:42 -03:00
ghubstan
32ed7ac406
Add ReflectionUtils to common.util pkg
This class will aid the api's (create) PaymentAccount json form
serialization/de-serialization.
2020-11-18 16:11:10 -03:00
chimp1984
6fb36dcd41
Add more requestPersistence calls 2020-11-18 12:51:53 -05:00
chimp1984
255460e5d5
Add more requestPersistence for data changes in ProcessModel and TradingPeer 2020-11-18 12:38:39 -05:00
chimp1984
9517f427b6
Refactoring: Extract requestPersistence method 2020-11-18 12:12:59 -05:00
ghubstan
7d0648afd0
Make codacy happy again 2020-11-18 13:10:39 -03:00
ghubstan
0e0af20900
Avoid codacy issue over use of fully qualified name
Changed the core getPaymentMethods() -> getFiatPaymentMethods() to avoid

"Unnecessary use of fully qualified name 'PaymentMethod.getPaymentMethods'
due to existing static import 'bisq.core.payment.payload.PaymentMethod.*'"
2020-11-18 12:58:58 -03:00
ghubstan
7a7d5ba0a7
Print the payment method id (only) 2020-11-18 12:53:36 -03:00
ghubstan
0046b08f9d
Revert "Avoid codacy issue over use of fully qualified name"
This reverts commit a46526198d.

The service side method name change is not correct.
2020-11-18 12:47:12 -03:00
ghubstan
a46526198d
Avoid codacy issue over use of fully qualified name
Had to change the getPaymentMethods() names to getPaymentMethodIds() to
avoid this codacy issue:

"Unnecessary use of fully qualified name 'PaymentMethod.getPaymentMethods'
due to existing static import 'bisq.core.payment.payload.PaymentMethod.*'"

If 'PaymentMethod.getPaymentMethods' was changed to 'getPaymentMethods',
a recursive loop would result, ending in an out of stack heap crash.

This renaming of the method on the server is correct, but the CLI's
'getpaymentmethods' name was not changed.
2020-11-18 12:29:59 -03:00
ghubstan
ec381522ff
Add api method 'getpaymentmethods'
Returns a list of supported payment method IDs.  This gives CLI users
the correct payment method id for creating a new payment account.

- Added gRPC service GetPaymentMethods to grpc.proto.

- Added gRPC boilerplate method to GrpcPaymentAccountsService.

- Added implimentation to CoreApi -> CorePaymentAccountsService.

- Refactored PaymentAccountTest hierarchy.

- Add api method to CLI.
2020-11-18 12:03:22 -03:00
Christoph Atteneder
457257b72a
Merge pull request #4787 from chimp1984/various-monitor-improvements
Various monitor improvements
2020-11-18 11:01:01 +01:00
Christoph Atteneder
29b2c33222
Merge pull request #4814 from jmacxx/improve_account_aging_column
Improve UI/UX for account aging column in 'Offers' section of GUI
2020-11-18 10:41:10 +01:00
Christoph Atteneder
71b6259ed5
Merge pull request #4817 from chimp1984/improve-filter
Improve filter
2020-11-18 10:12:33 +01:00
chimp1984
fa0c28adf6
Add requestPersistence calls
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
2020-11-17 22:35:51 -05:00
chimp1984
ccfcc351f4
Clean tor dir at startup 2020-11-17 20:17:44 -05:00
chimp1984
6d7c3ad4dc
Remove dev log 2020-11-17 20:15:54 -05:00
chimp1984
bf2c94160f
Add delay between remove and add new filter
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.
2020-11-17 20:14:44 -05:00
chimp1984
5b97b97349
Add missing fields in toString method 2020-11-17 20:12:25 -05:00
chimp1984
6fc36d48db
Reduce interval for persistence
Seems the persistence at shutdown is too unsafe and we got bug reports where data was missing.
https://github.com/bisq-network/bisq/issues/4806

Use millisec instead of sec for delay
Rename delayInSec to delay
2020-11-17 19:15:59 -05:00
jmacxx
f7fac0f3c4
code review change: curlies & whitespace for if statement 2020-11-16 16:15:57 -06:00
jmacxx
dd26077caa
Improve UI/UX for account aging column in 'Offers' section of GUI
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.
2020-11-16 10:44:01 -06:00
sqrrm
c1287ac43a
Merge pull request #4804 from chimp1984/improve-persistence-manager
Improve persistence manager
2020-11-14 22:30:09 +01:00
chimp1984
755ea4d792
Add missing initCalled.set(true); 2020-11-14 15:51:51 -05:00
ghubstan
530a9f95a4
Remove unused imports 2020-11-14 13:34:59 -03:00
ghubstan
34efc049f8
Remove unnecessary fully qualified name 2020-11-14 13:34:22 -03:00
ghubstan
187a85f95b
Fix typo 2020-11-14 13:19:24 -03:00
ghubstan
7e9ab22d65
Refactor api getbalance methods.
This change fixes the recently bloated wallet balances api.  Now there
is one CLI getbalance [bsq|btc] method that calls a getbalances(currency-code)
on the server.  The server returns full wallet balance information for
BSQ, BTC, or both if the CLI's currency argument is absent.

- grpc.proto:  Reduced number of getbalance(s) proto services from
  four to one.

- GrpcWalletsService:  Reduced number of getbalance(s) gRPC service
  boilerplate methods from four to one.

- CoreApi, CoreWalletsService:  Reduced number of getbalance(s) gRPC
  service implementation methods from four to one.

- CliMain:  Reduced number of getbalance(s) commands from four to one.

- BalancesInfo: Changed BsqBalanceInfo & BtcBalanceInfo field names
  to bsq and btc, respectively, to make calling their accessors
  more readable, less verbose.

- BtcBalanceInfo, BsqBalanceInfo: Defined static final EMPTY instances
  as place holders in a BalancesInfo returned by the gRPC server, when
  one or the other balance types is not requested.  Would be nice
  to serve Optional.empty() instead, but protobuf does not support
  it or null.

- Adjusted affected api tests and build doc.
2020-11-14 13:08:10 -03:00
sqrrm
627e0671b6
Merge pull request #4792 from ripcurlx/update-data-stores-for-v1.5.0
Update data stores for v1.5.0
2020-11-14 12:56:23 +01:00
ghubstan
8157f8fc4e
Delete deprecated api test, adjust api build/run doc 2020-11-13 16:57:18 -03:00