-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Call core wallets service methods from CoreApi #4309
Merged
sqrrm
merged 7 commits into
bisq-network:master
from
ghubstan:W-refactor-core-wallets-service
Jun 25, 2020
Merged
Call core wallets service methods from CoreApi #4309
sqrrm
merged 7 commits into
bisq-network:master
from
ghubstan:W-refactor-core-wallets-service
Jun 25, 2020
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
This commit includes the following changes: * New tests for methods `lockwallet`, `unlockwallet`, `removewalletpassword`, and `setwalletpassword`. * New `getbalance` method error handing tests to verify error message correctness when wallet is locked. * Update to `getversion` method test -- now expects `1.3.4`. * Check for new `[params]` column header in help text.
This addresses task #1 in issue bisq-network#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 bisq-network#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.
Cleaned up the method body and improved the returned string's formatting. Also added a line for this method in the CLI help text.
This addresses task 2 in issue 4257 bisq-network#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.
This addresses task 4 in issue 4257. bisq-network#4257 This PR should be reviewed/merged after PR 4304. bisq-network#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.
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 bisq-network#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 bisq-network#4308 This PR's branch was created from the PR 4308 branch.
ghubstan
added a commit
to ghubstan/bisq
that referenced
this pull request
Jun 16, 2020
Response to comment in PR 4299: bisq-network#4299 (comment) This PR should be reviewed/merged after PR 4309. bisq-network#4309
dmos62
approved these changes
Jun 23, 2020
utACK |
sqrrm
approved these changes
Jun 25, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK
eigentsmis
pushed a commit
to eigentsmis/bisq
that referenced
this pull request
Jun 26, 2020
Response to comment in PR 4299: bisq-network#4299 (comment) This PR should be reviewed/merged after PR 4309. bisq-network#4309
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change is a refactoring of the gRPC
Wallets
service for the purpose of makingCoreApi
the entry point to all core implementations.Seeing
GrpcWalletsService
usingCoreWalletsService
(that's sensible) made me hesitate to make this change, but ifGrpcWalletsService
doesn't useCoreApi
instead ofCoreWalletsService
, then we set up an inconsistent situation where someGrpc*Service
impls useCoreApi
and some do not. I think it is better to be consistent for myself other devs, and consistently inject onlyCoreApi
into eachGrpc*Service
, instead of a variable number of core services.Also, the gRPC
Wallet
proto def name was changed toWallets
because this service manages BSQ and BTC wallets;GrpcWalletService
was renamed toGrpcWalletsService
for the same reason. (This change should have been made in PR 4295).This PR should be reviewed/merged after PR 4308.
(This PR's branch was created from the PR 4308 branch.)