Commit graph

4051 commits

Author SHA1 Message Date
ghubstan
e1fddfacf8
Remove duplication in wallets availability checks
This change adds a new 'verifyWalletsAreAvailable' method to the client,
which eliminates this duplicated statement:
    throw new IllegalStateException("wallet is not yet available");

The commit is in response to a requested change in PR 4312:
https://github.com/bisq-network/bisq/pull/4312#pullrequestreview-435659314
2020-06-23 13:11:36 -03:00
ghubstan
61285a7602
Do not change case of input params in client
This commit is for a change requested in PR 4308:
https://github.com/bisq-network/bisq/pull/4308#pullrequestreview-435055483

  ".toUpperCase() seems misplaced here. It would soon get repetive.
  Whether the underlying logic differentiates between capitalizations
  is a low-level implementation detail and would do better at the
  lowest practical level."
2020-06-22 15:08:46 -03:00
ghubstan
4778976b6b
Fix comments 2020-06-20 20:24:49 -03:00
ghubstan
88cb90e209
Add rpc method 'getoffers'
The new method returns current buy or sell offers for a fiat ccy.

These changes need refactoring and polishing before merging, but they're
committed in this state to be safe (don't lose work).  Changes include:

* New core.grpc classes
    CoreOffersService
    GrpcOffersService
    model.OfferInfo

* CoreApi -- The new CoreOffersService is injected into CoreApi and
  the old getOffers() and placeOffer() impls were moved into the
  new CoreOffersService.  The getOffers implementation was re-done.
  Other changes are just rearranging location of core method calls.

* GrpcServer -- The new GrpcOffersService replaced the old
  GetOffersService and PlaceOfferService.

* grpc.proto -- The old GetOffers and PlaceOffer services were combined
  into a single Offers service, and the PlaceOffer rpc was renamed
  as CreateOffer.  These are the only substantive changes; the rest
  is just rearranging location of the service defs in the file.
  Also created a lighterweight OfferInfo proto message wrapper to
  be passed between server & client (client has no access to core's
  Offer and OfferPayload).

* OfferInfo -- A new wrapper around the OfferInfo proto message.

* CliMain -- The new GetOffers service stub was added.
  Some (maybe too much) number and ccy formatting logic was
  copied & modified from core.  Some tedius string formatting
  was added too (needs to be tidied up).

* License comments were also copied to several classes, and I
  made a mistake in reverting changes to the wrong file.

TODO add unit tests
2020-06-20 19:56:28 -03:00
ghubstan
41f1add76b
Remove try catch block
Remove the recently added gRPC StatusRuntimeException wrapping
logic because we want unexpected Exceptions to bubble up for now,
until CorePaymentAccountsService.java throws specific
IllegalStateExceptions with user friendly error messages.
(See CoreWalletsService.java for example.)
2020-06-20 10:24:14 -03:00
ghubstan
d6ea0ea236
Re-add license comment
The previous revert was a mistake.  It applied to
GrpcPaymentAccountsService, not CorePaymentAccountsService.
2020-06-20 10:21:57 -03:00
ghubstan
7c073c65f5
Revert "Add license comment"
This reverts commit bfcc693f69.

This change was reverted because we want unexpected Exceptions
to bubble up for now, until CorePaymentAccountsService.java
throws specific IllegalStateExceptions with user friendly
error messages.  (See CoreWalletsService.java for example.)
2020-06-20 10:14:36 -03:00
ghubstan
d06807b0e5
Wrap Exception from core in gRPC StatusRuntimeException 2020-06-20 10:10:39 -03:00
ghubstan
bfcc693f69
Add license comment 2020-06-20 10:03:10 -03:00
ghubstan
855ac0f250
Add license comment 2020-06-20 10:02:04 -03:00
ghubstan
37fb60672f
Add license comment
This is not in scope of current PR, but easy enough to review.
2020-06-20 09:59:06 -03:00
ghubstan
331f488057
Return protos from funding address methods
The 'getaddressbalance' and 'getfundingaddresses' methods now send
new AddressBalanceInfo proto messages instead of a formatted String
to the client.  The AddressBalanceInfo message contains addressString,
balance, and # of confirmations (transaction confidence) fields.

Changes include:
* A new AddressBalanceInfo proto message
* A wrapper class for the new AddressBalanceInfo proto
* New 'getaddressbalance' and 'getfundingaddresses' signatures in server
* AddressBalanceInfo display logic in client
* Removal of balance formatting logic in server
* Refactoring of balance formatting logic in client
2020-06-19 20:00:28 -03:00
ghubstan
1930411e61
Rmove blank line 2020-06-18 12:55:31 -03:00
ghubstan
b0e278f32e
Refactor getFundingAddresses to use memoization
Also reordered some import statements according to Bisq style rules.
2020-06-18 12:52:29 -03:00
Dominykas Mostauskis
c5134e14c2
Replace Tuple3 with memoization 2020-06-18 15:57:26 +02:00
Devin Bileck
5712de6b67
Add V3 seednode devinv3r
As part of the Tor V3 upgrade, and the effort to increase the number of
Bisq seednodes from 8 to 12, this PR adds a new V3 seednode.
2020-06-17 22:45:55 -07:00
ncstdc
9d327dc0d0
Change wording
Move funds to Bisq wallet > Keep funds in Bisq wallet
2020-06-16 11:32:41 -05:00
ghubstan
258d1801d2
Factor duplicate unlocked wallet checks into new method
Response to comment in PR 4299:
https://github.com/bisq-network/bisq/pull/4299#discussion_r440769032

This PR should be reviewed/merged after PR 4309.
https://github.com/bisq-network/bisq/pull/4309
2020-06-16 12:48:41 -03:00
ghubstan
bac3ed5697
Call core wallets service methods from CoreApi
This change is a refactoring of the gRPC Wallets service
for the purpose of making CoreApi the entry point to
all core implementations.  These changes should have been
made in PR 4295.
See https://github.com/bisq-network/bisq/pull/4295

The gRPC Wallet proto def name was changed to Wallets because
this service manages BSQ and BTC wallets, and GrpcWalletService
was changed to GrpcWalletsService for the same reason.

This PR should be reviewed/merged after PR 4308.
See https://github.com/bisq-network/bisq/pull/4308

This PR's branch was created from the PR 4308 branch.
2020-06-15 16:43:26 -03:00
ghubstan
a7542e98bf
Add rpc method 'createpaymentacct'
This addresses task 4 in issue 4257.
    https://github.com/bisq-network/bisq/issues/4257

This PR should be reviewed/merged after PR 4304.
    https://github.com/bisq-network/bisq/pull/4304

This new gRPC PaymentAccounts service method creates a dummy
PerfectMoney payment account for the given name, number and fiat
currency code, as part of the required "simplest possible trading
API" (for demo).   An implementation supporting all payment
methods is not in the scope.

Changes specific to the new rpc method implementation follow:

* New createpaymentacct method + help text was added to CliMain.
  Help text formatting was also changed to make room for larger
  method names and argument lists.

* The PaymentAccount proto service def was renamed PaymentAccounts
  to avoid a name collision, and the new rpc CreatePaymentAccount
  was made part of the newly named PaymentAccounts service def.

* New GrpcPaymentAccountsService (gRPC boilerplate) and
  CorePaymentAccountsService (method implementations) classes were
  added.

* The gRPC GetPaymentAccountsService stub was moved from GrpcServer
  to the new GrpcPaymentAccountsService class, and
  GrpcPaymentAccountsService is injected into GrpcServer.

* A new createpaymentacct unit test was added to the bats test
  suite (checks for successful return status code).

Maybe bit out of scope, some small changes were made towards making
sure the entire API is defined in CoreApi, which is used as a
pass-through object to the new CorePaymentAccountsService.  In the
next PR, similar refactoring will be done to make CoreApi the
pass-through object for all of the existing CoreWalletsService
methods.  (CoreWalletsService will be injected into CoreApi.)
In the future, all Grpc*Service implementations will call core
services through CoreApi, for the sake of consistency.
2020-06-15 14:32:14 -03:00
sqrrm
bdb7807131
Sign accounts with same name
If the user has an account that can sign, it signs other accounts with
the same holder name when they are added, or on startup if one of
several accounts with the same name got signer rights.
2020-06-14 20:08:22 +02:00
sqrrm
f02772e3a2
Add getOwnerId to PaymentAccountPayload for owner name comparison 2020-06-14 20:07:41 +02:00
ghubstan
b1228e5ea7
Add rpc method 'getaddressbalance'
This addresses task 2 in issue 4257
	https://github.com/bisq-network/bisq/issues/4257

This new gRPC Wallet service method displays the balance and number
of confimirmations of the most recent transaction for the given BTC
wallet address.

The new method required the usual boilerplate changes to grpc.proto,
CliMain, and GrpcWalletService.

Two unit tests to check error msgs was added to cli/test.sh.
2020-06-14 14:23:47 -03:00
ghubstan
2e415de4ad
Replace duplicate code in getFundingAddresses
Cleaned up the method body and improved the returned string's
formatting.  Also added a line for this method in the CLI help text.
2020-06-14 13:05:37 -03:00
sqrrm
86062d0ba7
Merge pull request #4302 from wiz/update-wiz-seednodes
Add V3 seednodes wizseed3 and wizseed7, retire seednode ef5qnzx6znifo3df
2020-06-14 17:42:03 +02:00
Petr Hejna
1c8b062bf2
Add all available Revolut currencies 2020-06-14 16:47:07 +02:00
sqrrm
6aae5eb4ab
Merge pull request #4283 from jmacxx/restore_wallet_date_empty_feedback
Warn when restoring wallet seedwords without date
2020-06-14 15:08:22 +02:00
wiz
6100dc881d
Add V3 seednodes wizseed3 and wizseed7, retire seednode ef5qnzx6znifo3df
As part of the Tor V3 upgrade, and the effort to increase the number of
Bisq seednodes from 8 to 12, this PR adds 2 new V3 seednodes, and will
start the process to retire the old V2 seednode ef5qnzx6znifo3df.

The ef5qnzx6znifo3df seednode will continue operating for 2-3 months
during the retirement phase-out period, after which time we can filter
it out from the network for clients who have not upgraded if necessary.
2020-06-14 18:29:20 +09:00
ghubstan
85c96764fb
Add rpc method 'getfundingaddresses'
This addresses task #1 in issue https://github.com/bisq-network/bisq/issues/4257.

This new gRPC WalletService method displays the BTC wallet's list of
receiving addresses.  The balance and number of confirmations
for the most recent transaction is displayed to the right of each
address.  Instead of returning a gRPC data structure to the client,
the service method returns a formatted String.

If the BTC wallet has no unused addresses, one will be created and
included in the returned list, and it can be used to fund the wallet.

The new method required injection of the BtcWalletService into CoreWalletsService,
and the usual boilerplate changes to grpc.proto, CliMain, and GrpcWalletService.

Some of the next PRs (for #4257) will require some common functionality within
CoreWalletsService, so these additional changes were included:

  * a private, class level formatSatoshis function
  * a public getNumConfirmationsForMostRecentTransaction method
  * a public getAddressBalance method
  * a private getAddressEntry method

A unit test that verifies a successful return status was added to cli/test.sh.
2020-06-13 19:59:45 -03:00
ghubstan
b1146fdd12
Rename CoreWalletService -> CoreWalletsService
This change fixes the ambiguity in the original class name, which
implied it was a btc wallet service, not a bsq and btc wallets service.
2020-06-12 15:24:01 -03:00
sqrrm
9fcc4da738
Add ReceiverSelectorTest 2020-06-11 20:09:46 +02:00
sqrrm
752abce61e
Weighted payout scheme
Fix some conflicts from an earlier rebase
2020-06-11 19:40:25 +02:00
chimp1984
77362ff642
Add list to filter to set btc fee receiver addresses 2020-06-11 19:00:05 +02:00
sqrrm
7e0c82a791
Merge pull request #4153 from eboukamza/add-blockchain-explorer
Add blockchair mainnet and testnet explorers
2020-06-11 10:53:52 +02:00
Christoph Atteneder
6d7fcc178b
Update bitcoinj checkpoints 2020-06-10 16:26:56 +02:00
wiz
dbc4574ea3
Update IPs and onions for wiz Bitcoin nodes 2020-06-07 17:04:11 +09:00
jmacxx
4c7456e1cb
Warning when restoring wallet seedwords without date
When the user restores a BIP39 wallet from seed words there is
an optional 'wallet date' field.  If the user does not enter that
field the chain scan will be a lengthy process.
Issue a popup message to the user in this case, informing them
that the synch will take a long time and can be reduced by either
specifying the wallet creation date or the date when Bisq introduced
BIP39 seed words.

Fixes #3766
2020-06-04 17:39:24 -05:00
sqrrm
1a62f6b8b8
Merge pull request #4193 from jmacxx/add_paymentmethod_openoffers
Display "Payment Method" column in Open Offers view
2020-06-04 12:32:06 +02:00
sqrrm
ca9665fa3c
Sign unsigned keys
Legacy arbitrator can sign unsigned signed witness signer pubkeys
To sign, from legacy arbitrator support, ctrl+O
2020-06-03 15:44:04 +02:00
sqrrm
752eb49b4a
Log unique unsigned signer pubkeys 2020-06-01 15:46:25 +02:00
sqrrm
0dc769bf9b
Arbitrator signing of AccountAgeWitness with known pubkey
Improve debug logging. Lower level from warning to info
Fix broken test
Add example code to clean out unnecessary SignedWitnesses
2020-05-31 15:08:41 +02:00
sqrrm
7bd5969dcf
Refactor accountagewitnessservice log helpers
Better filter for root signedwitnesses

Add debug keyboard shortcuts:
- ctrl+shift+L -> logSignedWitnesses
- ctrl+shift+S -> logSigners
2020-05-31 15:08:41 +02:00
sqrrm
8bf0f3350c
Test dummy account age witness signing
Add orphaned witness log
2020-05-31 15:08:41 +02:00
sqrrm
fba329de9a
Arbitrator sign single account age witness 2020-05-31 15:08:41 +02:00
sqrrm
bc3e12288d
Merge pull request #4250 from dmos62/bugfixes-related-to-switch-statements
Bugfixes related to switch statements
2020-05-26 12:55:35 +02:00
sqrrm
481ae230e7
Merge pull request #4260 from jmacxx/fix_withdraw_trade
Fix trade withdraw to external wallet step 4
2020-05-25 16:20:41 +02:00
sqrrm
799d48e74a
Merge pull request #4256 from jmacxx/fix_trade_fees_export
Display correct trade and tx fees in CSV export
2020-05-25 15:46:53 +02:00
sqrrm
8bffcd62be
Merge pull request #4229 from petrhejna/1387-add-memo-field
Add memo field to withdrawal transaction
2020-05-19 17:05:46 +02:00
Chris Beams
2e33c2c87a
Merge pull request #4214 from ghubstan/rpc-wallet-protection
Add rpc wallet protection endpoints
2020-05-18 14:18:05 +02:00
Chris Beams
d53cc38fde
Wrap comments at 90 chars
Per https://github.com/bisq-network/style/issues/5
2020-05-18 14:08:35 +02:00