Commit graph

362 commits

Author SHA1 Message Date
ghubstan
62a2aa8543
Don't be so polite 2020-12-01 15:55:53 -03:00
ghubstan
45cfb95245
Remove many log.isDebugEnabled() checks
These do not buy enough in the way of performance, at the cost of
so many additional lines.  Buy these checks should be done for
debug log statements that have expensive parameters.
2020-12-01 15:48:11 -03:00
ghubstan
06eb3786c0
Test new tx fee rate api methods 2020-11-26 18:36:58 -03:00
ghubstan
8fd578614d
Adjust test for a new payment method 2020-11-26 17:20:29 -03:00
ghubstan
daeb34b3d2
Add two new api method tests
Keeping the bats test simple.  More complex use cases are tested in
apitest, and we don't want to be trading on mainnet with a bats test.

- Add new getunusedbsqaddress test, assert success return status.
- Add new getpaymentmethods test, assert success return status.
2020-11-22 16:25:21 -03:00
ghubstan
424f9480ad
Fix broken tests
- Change the getbalance tests to just check a sucessful '0' status code.

  The api's getbalance method returns full balance info now, not just a
  formatted long.  We still assert the cmd did not fail, but don't check
  the value string.

- Remove obsolete createpaymentacct tests.

  This is well tested in apitest, and testing this cmd is unnecesarily
  complex to do in a bats script.
2020-11-22 16:12:34 -03:00
ghubstan
76097fc9dc
Enable CreateMoneyGramAccount test 2020-11-21 15:24:33 -03:00
ghubstan
bb6762a23e
Reverse argument order for assert(expected, actual) convention 2020-11-20 16:53:59 -03:00
ghubstan
459b2a9c49
Add create payment account (api) tests 2020-11-20 16:46:36 -03: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
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
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
34efc049f8
Remove unnecessary fully qualified name 2020-11-14 13:34: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
8157f8fc4e
Delete deprecated api test, adjust api build/run doc 2020-11-13 16:57:18 -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
446bd328d8
Refactor desktop's BsqSendView, share with api
Moved just enough code out of BsqSendView to avoid desktop/api
'sendbsq' duplication, at the cost of adding 1 new method to
BsqSendView.

- Created new BsqTransferModel to hold tx details shared by desktop and api.

- Created new BsqTransferService to send bsq using a BsqTransferModel shared
  by desktop and api.

- Uncommented CoreWalletsService#sendBsq implementation.

- Uncommented sendbsq tests.
2020-11-13 15:34:18 -03:00
ghubstan
dc3274ff5f
Re comment sendbsq tests so travis ci does not fail 2020-11-13 14:59:31 -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
7f0f949a2d
Resolve unnecessary use of fully qualified name for codacy 2020-11-13 14:35:26 -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
7c2068e3c1
Add teardown to test case 2020-11-13 12:45:40 -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
6f159bcb48
Fix usage comment 2020-11-02 12:55:18 -03:00
ghubstan
c2f8db3c7d
Reduce apitest case execution time
Consolidated all method tests into fewer test cases by running them
from new 'scenario' test cases.  This cuts the current scaffold
setup & teardown times by almost 1/2.  No method tests were deleted
or duplicated.

(1)  Disabled all method (unit) test cases at the class level.
(2)  Added new scenario test cases to run all disabled test cases (1).

The method test cases can still be run by commenting out the @Disabled
annotation.
2020-10-28 18:17:59 -03:00
ghubstan
e8e55d2286
Remove redundant ScenarioTest superclass 2020-10-28 18:01:49 -03:00
ghubstan
f61f148db1
Refactor api test fixture setup
- Remove dead code from AbstractLinuxProcess.

- Make default dummy accts static in MethodTest.

- Simplify gRPC stub creation, btc block generation, dispute agent
  registration, and dummy acct initialization in test case startup.

- Make ExpectedProtocolStatus visible to scenario test pkg.
2020-10-28 17:59:15 -03:00
ghubstan
2a05203519
Remove dead code 2020-10-28 17:46:30 -03:00
ghubstan
91a2e2ce1f
Add canceloffer test 2020-10-27 19:06:59 -03:00
ghubstan
2746b27674
Fix apitest dummy payment acct init bug
This commit fixes non-trade tests broken by the last refactoring.
2020-10-27 13:47:23 -03:00
ghubstan
1e25be5bdc
Test trade closing api methods 'keepfunds' withdrawfunds'
Some refactoring of the api test case hierarchy is included in this commit.
2020-10-27 13:04:53 -03:00
ghubstan
b8ae566b69
Add method for printing current jupiter test name 2020-10-27 13:03:48 -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
sqrrm
44394adb1e
Merge pull request #4608 from ghubstan/getoffer-for-id
Add new 'getoffer offer-id' api method
2020-10-15 11:14:05 +02: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
1a8f97afab
Fix register dipute agent test assert
This should have been included in commit 5f9b1e6, PR 4595.
2020-10-07 11:19:05 -03:00
ghubstan
9942529448
Remove redundant DisputeAgentType enum
Use existing SupportType enum instead, and map the valid api
'registerdisputeagent' method's dispute-agent-type parameter
names to SupportType.
2020-10-03 15:42:27 -03:00
ghubstan
d3d6d98666
Revert all changes since commit d55114e
Revert Task.java back to the state it was in prior to
my attempts to make it work for passing error msgs to a
gRPC CLI running 'placeoffer'.  Adjust the affected test
accordingly.
2020-10-03 11:55:58 -03:00
ghubstan
631c3f4f12
Log provenance of Task error on server, but pass only exception msg to clients
Adjusted create offer validation test
2020-10-02 15:02:37 -03:00
ghubstan
fc94b97a00
Throw exception to CLI if attempted offer placement fails 2020-09-28 18:11:08 -03:00
ghubstan
fa5c21c0b2
Fix BitcoinCli wrapper create bug 2020-09-28 14:30:30 -03:00
ghubstan
94996a5e25
Fix tx result handling in GrpcOffersService
Separates offer placement from offer creation to fix tx result
handling problem in GrpcOffersService, and readies the core api
for a new CLI 'placeoffer' implementation.  Offer placement still
happens in the api's 'createoffer', but we may want to change it
to show the created offer to a CLI user for review, prior to manual
placement via a new 'placeoffer offer-id' (of 'confirmoffer offer-id'?)
api method.
2020-09-28 11:48:56 -03:00
ghubstan
70531693f0
Fix asserts 2020-09-27 17:02:38 -03:00
ghubstan
35a77be7e4
Redefine DisputeAgentType REFUNDAGENT as REFUND_AGENT
The CLI needs to be able to register a REFUND_AGENT using the
'refund_agent' or 'refundagent' parameter value (in any case),
so an alt-name mapping was added to the enum def.
2020-09-27 15:23:19 -03:00
ghubstan
96abda4e2d
Tidy up create offer using mkt price margin % test 2020-09-26 13:40:10 -03:00