Commit graph

272 commits

Author SHA1 Message Date
ghubstan
cb9a68bae1
Tidy up payment accts api related msgs on CLI 2020-11-19 12:01:41 -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
ghubstan
dc227ec8cc
Add new api method 'getpaymentacctform' to CLI 2020-11-18 16:18:15 -03:00
ghubstan
7a7d5ba0a7
Print the payment method id (only) 2020-11-18 12:53:36 -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
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
ghubstan
722460e7e5
Support paying trade fees in bsq or btc (api)
- Add optional makerFeeCurrencyCode argument to CLI's 'createoffer'.

- Add optional takerFeeCurrencyCode argument to CLI's 'takeoffer'.

- Add isCurrencyForMakerFeeBtc field to OfferInfo proto wrapper.

- Pass fee currency argument down to CoreOffersService and CoreTradesService's
  create and take offer methods.

- Add maybeSetFeePaymentCurrencyPreference method to OfferUtil to
  conditionally set the 'payFeeInBtc' preference before creating
  or taking an offer.

- Adjust affected tests.
2020-11-13 16:36:06 -03:00
ghubstan
0d3b3a6ead
Stub out api method 'sendbsq' in core
All the boilerplate for this method is included in this change, but
the implementation in CoreWalletsService#sendBsq is commented out
until the needed logic to send bsq is refactored out of desktop's
BsqSendView class -- to be included in the next PR.

- Added new method to CLI.

- Added the gRPC server boilerplate.

- Added the core implementation, commented out.

- Enabled tests.
2020-11-13 14:57:28 -03:00
ghubstan
208a37b339
Implement and test new getbalance(s) api methods
- Added three new methods to CLI:

      getbalances   ...	returns complete bsq and btc balance info
      getbsqbalance ...	returns complete bsq balance info
      getbtcbalance ...	returns complete btc balance info

      The old getbalance method is deprecated and will be removed
      if there is agreement to do that.

- Made the needed changes in the CLI's output formatting classes.

- Added new tests to existing BsqWalletTest, added new BtcWalletTest
  and WalletBalancesTest.

- Added disabled tests for funding a bsq wallet (todo in next PR).
2020-11-13 14:21:26 -03:00
ghubstan
c1c099c832
Implement and test api method 'getunusedbsqaddress'
- Added new method to CLI, split some long msg strings into two lines,
  and added a white space after a braceless else statement.

- Added the gRPC server boilerplate.

- Added the core implementation.

- Added a test, and moved method wallet tests into their own package.
2020-11-13 12:40:16 -03:00
ghubstan
3cd3bf0e3e
Fix grammar / typo
This change resolves issue found in PR review.  See
https://github.com/bisq-network/bisq/pull/4703#discussion_r515076872
2020-10-30 11:52:37 -03:00
ghubstan
0f1d4f8ac3
Fix typo 2020-10-27 15:03:36 -03:00
ghubstan
027a7d5cd3
Stub out canceloffer api method
The implementation will be added to CoreOffersService in the next PR.
2020-10-27 14:54:50 -03:00
ghubstan
f1db254073
Make formatSatoshis visible for testing 2020-10-27 13:01:33 -03:00
ghubstan
a8decafc2f
Stub out api methods 'keepfunds', 'withdrawfunds'
This PR adds trade closing method stubs to keep funds in the
Bisq wallet or send them to an external BTC wallet.

- Add grpc protos
- Add new methods to GrpcTradesService, CoreApi
- Stub out implementations in CoreTradesService
- Add methods to CLI
2020-10-26 17:43:08 -03:00
ghubstan
a2b292318c
Add boolean 'showcontract' argument to api's 'gettrade'
Optionally print the json contract for a given trade id.
2020-10-25 17:44:18 -03:00
ghubstan
2b23704b5a
Add 'gettrade' to api method CLI 2020-10-25 17:15:02 -03:00
ghubstan
31435bba51
Move semicolon up from blank line 2020-10-25 17:02:40 -03:00
ghubstan
d8bc26588c
Add license comment 2020-10-25 16:52:45 -03:00
ghubstan
3379376bab
Refactor CLI output formatting code & add trade formatter
- Move output column header specs to its own shared constants class.

- Add new TradeFormat class for printing trade details in the console.

- Print formatted trade in api trade tests -- to see output before
  using formatter in CLI (in next PR).
2020-10-25 16:50:22 -03:00
ghubstan
ac8ed8dd06
Add 'confirmpaymentreceived' api method
- Implement confirmpaymentsent on server and cli side

- Enable confirmpaymentreceived method tests
2020-10-20 16:51:48 -03:00
ghubstan
3d2b90fb96
Add 'confirmpaymentsent' api method
- Implement confirmpaymentsent on server and cli side

- Enable confirmpaymentsent method tests
2020-10-20 16:20:40 -03:00
ghubstan
e809af37cc
Add 'takeoffer' API method
- Add new core.offer.takeoffer.TakeOfferModel

	Would have been nice to move more logic from
	bisq.desktop.main.offer.takeoffer.TakeOfferDataModel,
	but it has JFX dependencies that cannot be use in :core.

- Add grpc protos to support takeoffer, confirmpaymentsent, confirmpaymentreceived

	Only takeoffer is implemented in this commit.

- Refactor OfferInfo grpc proto wrapper, and add offer state field

- Add new TradeInfo grpc proto wrapper

- Implement takeoffer on server and cli side

- Refactor offer/trade tests, add test cases
2020-10-20 16:00:05 -03:00
ghubstan
29d1905f31
Add new 'getoffer offer-id' api method
There are a number of use cases where a user may want to see a single
offer instead of every offer for a currency pair on the buy or sell side.
The changes are:

- Add getoffer to grpc.proto
- Add new method to GrpcOffersService, CoreApi, CoreOffersService
- Add new method to CLI
- Adjust create offer tests to use this new convenience
2020-10-07 12:09:13 -03:00
ghubstan
723fc8fc08
Skip over method name in args loop, start at i=1 2020-10-02 18:11:25 -03:00
ghubstan
e09b821222
Explain use of args clone index (i-1) 2020-10-02 14:41:47 -03:00
ghubstan
23a677d3b8
Use list.set, not list.remove, list.add 2020-10-02 14:24:22 -03:00
ghubstan
2f3e3a31e1
Add simple mkt-price service & test calculated offer prices
A gRPC price service was added, and api create-offer tests can check
mkt based price margin calculations.
2020-09-25 20:48:26 -03:00
ghubstan
6cdbc137c1
Move 'createoffer' price arg transform to server & test it
The CreateOfferRequest's price field type was changed from long to string,
so a CLI param like 10000.0055 can be passed to the server as is, to be
scaled and converted there.  In general, we want to keep validation logic
on the CLI as simple as possible, and use existing core logic to
validate args and convert arg types when needed.
2020-09-24 18:13:19 -03:00
ghubstan
942a6f2203
Scale & convert (double) fixed price input to long 2020-09-24 14:56:27 -03:00
ghubstan
9999c95a9e
Change 'createoffer' argument order
And list the args in CLI --help outout.
2020-09-24 13:48:50 -03:00
ghubstan
ec9c1b0f10
Uppercase direction & ccy-code CLI arguments in core
Don't convert parameter case in CLI.
2020-09-24 09:18:13 -03:00
ghubstan
a6048a4f7d
Add comment to empty catch block for codacy 2020-09-23 20:43:56 -03:00
ghubstan
c8a7fe4b97
Print createoffer's reply in the CLI's console 2020-09-23 19:57:22 -03:00
ghubstan
d5b8800ba4
Add license comment and btc-string to satoshi converter
The converter is needed for CLI, which has no access to core or
common utils.
2020-09-23 19:52:37 -03:00
ghubstan
1431a076b2
Add license comment 2020-09-23 19:51:40 -03:00
ghubstan
adb175c21a
Add options helper for handling negative number CLI params 2020-09-23 19:50:04 -03:00
ghubstan
2b68e57273
Stub out createoffer method in CLI 2020-09-22 22:09:58 -03:00
ghubstan
e2bd89f39a
Refactor API & add registerdisputeagent method to CLI
This commit contains most of the changes suggested by @chimp1984 in
his api-suggestions branch.  See
961703ecea

A new 'registerdisputeagent' method was also added to MainCli, finishing
the work to support registration of mediators and refund agents on
arbitration daemons running in regtest mode.  This method cannot be
used to register dispute agents on mainnet;  users will see an error
msg if they try.
2020-09-18 11:33:16 -03:00
ghubstan
304047eaca
Create GrpcDisputeAgentsService stub 2020-09-14 11:40:22 -03:00
chimp1984
039860935d
Merge master
- fix tests
2020-09-01 19:53:23 -05:00
ghubstan
cb6166c65f
Remove duplicated grpc stub creation logic
The :apitest GrpcStubs class was removed and recreated in the :cli
subproject, to be used by both :cli and :apitest.  CliMain was changed
to use the new GrpcStubs.
2020-08-25 12:01:29 -03:00
ghubstan
2c803ef811
Move :cli test.sh to :apitest mainnet-test.sh
* The bats test script was moved to the apitest subproject and renamed.

* Version tests were updated for release 1.3.7.

* The duplicated "test getoffers buy eur check return status" was
  replaced by a new "test getoffers sell eur check return status" test.

* The bats dependency was switched to bats-core because development
  has halted on https://github.com/sstephenson/bats/tree/master.
  The new bats repository is
          https://github.com/bats-core/bats-core/tree/master
2020-08-25 11:42:09 -03:00
ghubstan
8269a0df6d
Remove final modifier 2020-07-17 17:13:45 -03:00
ghubstan
8da4646584
Update bats version test 2020-07-12 21:53:58 -03:00
ghubstan
f820897e5b
Format dates ISO 8601 in UTC
We display all dates in UTC, using the "yyyy-MM-dd'T'HH:mm:ss'Z'" format.
2020-06-24 13:27:43 -03:00
ghubstan
51d82b1dff
Fix offer list filter bug due to direction flip
Respect the direction parmeter;  do not give it meaning it does not
have.  If the user passes a 'buy' parameter, return buy offers.  Do
not misinterpret the param's intent.  The direction parameter's value
does not imply "buy=I'm a buyer, show me sell offers" or
"sell=I'm a seller, show me buy offers".

I got mixed up by looking at the UI.  If I want to sell BTC, I click
the SELL tab to view buy offers (maker as buyer).  If I want to buy
BTC, I click the BUY tab to view sell offers (maker as seller).

This change also fixes an offer list sorting bug.

The commit is in response to a requested changes in PR 4329:
https://github.com/bisq-network/bisq/pull/4329#pullrequestreview-436033502
2020-06-23 17:15:39 -03:00
ghubstan
69792098c6
Check param count only, not param order correctness
This change simplifies client 'getoffers' method parameter
validation.  It no longer assumes parameter ordering is correct, nor
validates the direction parameter value.  The client only verifies
the correct number of string parameters are present.
2020-06-23 15:29:32 -03:00
ghubstan
9691f35082
Check param count only, not param order correctness
This change simplifies client 'createpaymentacct' method parameter
validation.  It no longer assumes parameter ordering is correct, and
only verifies the string parameter count is correct.

A unit test was also added to cli/test.sh

This commit is in response to the requested change in PR 4308.
https://github.com/bisq-network/bisq/pull/4308#pullrequestreview-435052357
2020-06-23 12:42:56 -03:00
ghubstan
52529a912e
Move getpaymentaccts tbl formatting to TableFormat
Created a new TableFormat.formatPaymentAcctTbl method.

Also:

 * Defined new "Currency" and "Name" column headers in TableFormat.

 * Changed syntax of stream().map() calls in some TableFormat methods.

 * Fixed verbose return statement in TableFormat.getLengthOfLongestColumn.

This commit is out of scope for the getoffers PR (4329), but is
included as part of the migration of all console tbl formatting
from the client into TableFormat.
2020-06-22 18:20:09 -03:00