<p>This change fixes the recently bloated wallet balances api.  Now there is one CLI <code>getbalance [bsq|btc]</code> 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.</p>
<ul>
<li>
<p><code>grpc.proto</code>:  Reduced number of getbalance(s) proto services from four to one.</p>
</li>
<li>
<p><code>GrpcWalletsService</code>:  Reduced number of getbalance(s) gRPC service boilerplate methods from four to one.</p>
</li>
<li>
<p><code>CoreApi, CoreWalletsService</code>:  Reduced number of getbalance(s) gRPC service implementation methods from four to one.</p>
</li>
<li>
<p><code>CliMain</code>:  Reduced number of getbalance(s) commands from four to one.</p>
</li>
<li>
<p><code>BalancesInfo</code>: Changed <code>BsqBalanceInfo</code> & <code>BtcBalanceInfo</code> field names to <code>bsq</code> and <code>btc</code>, respectively, to make calling their accessors more readable, less verbose.</p>
</li>
<li>
<p><code>BtcBalanceInfo, BsqBalanceInfo</code>: Defined <code>static final EMPTY</code> instances as place holders in a <code>BalancesInfo</code> returned by the gRPC server, when one or the other balance types is not requested.  Would be nice to serve <code>Optional.empty()</code> instead, but protobuf does not support it or null.</p>
</li>
<li>
<p>Adjusted affected api tests and build doc.</p>
</li>
</ul>
<p>This is the 12th in a chain of PRs beginning with <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="742473709" data-permission-text="Title is private" data-url="https://github.com/bisq-network/bisq/issues/4793" data-hovercard-type="pull_request" data-hovercard-url="/bisq-network/bisq/pull/4793/hovercard" href="https://github.com/bisq-network/bisq/pull/4793">#4793</a>.</p>
<p>PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="742750210" data-permission-text="Title is private" data-url="https://github.com/bisq-network/bisq/issues/4803" data-hovercard-type="pull_request" data-hovercard-url="/bisq-network/bisq/pull/4803/hovercard" href="https://github.com/bisq-network/bisq/pull/4803">#4803</a> should be reviewed before this one.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/bisq-network/bisq/pull/4808'>https://github.com/bisq-network/bisq/pull/4808</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Define new grpc bsq/btc balances protos</li>
  <li>Add proto wrappers for serving bsq, btc or all balances</li>
  <li>Define proto for api method 'getunusedbsqaddress'</li>
  <li>Define proto fapi method 'sendbsq'</li>
  <li>Add proto fields to support trade fee currency choice</li>
  <li>Implement and test api method 'getunusedbsqaddress'</li>
  <li>Add teardown to test case</li>
  <li>Remove trailing spaces in blank line</li>
  <li>Implement and test new getbalance(s) api methods</li>
  <li>Resolve unnecessary use of fully qualified name for codacy</li>
  <li>Stub out api method 'sendbsq' in core</li>
  <li>Re comment sendbsq tests so travis ci does not fail</li>
  <li>Refactor desktop's BsqSendView, share with api</li>
  <li>Resolve 'Avoid creating BigDecimal with a decimal' issue for codacy</li>
  <li>Support paying trade fees in bsq or btc (api)</li>
  <li>Delete deprecated api test, adjust api build/run doc</li>
  <li>Refactor api getbalance methods.</li>
  <li>Fix typo</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-512bd003d008a917452a114dd897406573e654bf6fbbbec528d32f0a624f4dcb">apitest/docs/build-run.md</a>
    (2)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-e6b8eac49c0a98719a9390fe3a355edb2dc3e8ca97621a31ffd5f1859ac4423e">apitest/src/test/java/bisq/apitest/method/GetBalanceTest.java</a>
    (73)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-44d1f675626693524cb12d599245a09b4318db027c2dabd23e10cd98ceb7fd28">apitest/src/test/java/bisq/apitest/method/MethodTest.java</a>
    (59)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-c635a83c621d11fe469b4c85a89da2dc19300fd7048b1260d33cd5dc64ddd817">apitest/src/test/java/bisq/apitest/method/offer/AbstractOfferTest.java</a>
    (24)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-e9afaf25a040818933ead2d35a47a8cfdbedfe645b5a20032150280683f6ddc0">apitest/src/test/java/bisq/apitest/method/offer/CancelOfferTest.java</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-32b895cb27d0c846464892e61c9a57ac1d45a05eac0edcd53fd539ec89d2948e">apitest/src/test/java/bisq/apitest/method/offer/CreateOfferUsingFixedPriceTest.java</a>
    (11)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-95eb2e15e7182812f9c4518c5cbbb38d3c6fbb4ca8388f4600a5c1541ad29691">apitest/src/test/java/bisq/apitest/method/offer/CreateOfferUsingMarketPriceMarginTest.java</a>
    (14)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-ca35fd2cf20069360ff48c6d99283c5fea8c929024ddbdfe44d60429da2a10a1">apitest/src/test/java/bisq/apitest/method/offer/ValidateCreateOfferTest.java</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-c41ca392649706fed19bf13247aeab25d0aa4ec109c93691aa2e7839b0fea70d">apitest/src/test/java/bisq/apitest/method/trade/AbstractTradeTest.java</a>
    (20)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-80fde285109a91d7581e771828393b6c87ac3b2a7e7de6ee750e7d41e594650a">apitest/src/test/java/bisq/apitest/method/trade/TakeBuyBTCOfferTest.java</a>
    (18)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-0a94ee487ea9d0b7b440b8688f6e9df897fd089fc84ead5f6cc9ca9453ad3b21">apitest/src/test/java/bisq/apitest/method/trade/TakeSellBTCOfferTest.java</a>
    (18)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-6c369bf146b35b7c634ad739e48b95ec315679f63e9e557821c83419002758cc">apitest/src/test/java/bisq/apitest/method/wallet/BsqWalletTest.java</a>
    (244)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-bd2bdbad386129ffb2e5a7c90f46a406f67c2b55316771577c89104292251237">apitest/src/test/java/bisq/apitest/method/wallet/BtcWalletTest.java</a>
    (107)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-5b82d68aab01da72572521eec5525c251ad8555e14634d0ec12cfc869801934d">apitest/src/test/java/bisq/apitest/method/wallet/WalletProtectionTest.java</a>
    (22)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-059cc502e89d82a1c4aeebdb933ee342246a9d0db7601f279b947f798e4ae312">apitest/src/test/java/bisq/apitest/scenario/FundWalletScenarioTest.java</a>
    (76)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-b4de23450b7705336f77c570c064b19161e2b637d3d77b7ebe2deec2ca9911bc">apitest/src/test/java/bisq/apitest/scenario/WalletTest.java</a>
    (50)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-afc5db1c8acb08dec253ee87a3e0e677c932d6826a2ab4c31ba816a4dcfb1386">cli/src/main/java/bisq/cli/CliMain.java</a>
    (82)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-9687777eeb1474070ca4255e431cc57c81fd0988ae088aaaf980aa7600f21b9d">cli/src/main/java/bisq/cli/ColumnHeaderConstants.java</a>
    (13)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-bc03e9b04d52b37f48d4f56aa608b4a50a2085dff40f9fc738d910ea5a72d599">cli/src/main/java/bisq/cli/CurrencyFormat.java</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-2ac1e865aee578e0d675f0b5777c3c9ba660b165166cb7b031539face84c8559">cli/src/main/java/bisq/cli/TableFormat.java</a>
    (76)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-fb5876d3b212d239a14d78529ac498b30a2dbb8e3f184ba9bd711a5d4901fb62">core/src/main/java/bisq/core/api/CoreApi.java</a>
    (20)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-e66126b732dbd45cde04307641186caa214407bc74403812b10d3ebf18d2aecc">core/src/main/java/bisq/core/api/CoreOffersService.java</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-7ab5c96db69bcc7ca05627ada97fd93b423f7df355641a7cd371d31f2039baf9">core/src/main/java/bisq/core/api/CoreTradesService.java</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-f1df4fd99db45d9b91ec2a59f443619324e243cb5738a597ef8008b67cc97d9a">core/src/main/java/bisq/core/api/CoreWalletsService.java</a>
    (133)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-f3e8a227fc5a328ea901c448b690bb1a48dfd6d108bfaa1714d1194cc9fcdf02">core/src/main/java/bisq/core/api/model/BalancesInfo.java</a>
    (45)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-0a191024bc053e2d92839d4b7c7fe8484cf20a8f9cb39f7c63f14209b1f64936">core/src/main/java/bisq/core/api/model/BsqBalanceInfo.java</a>
    (94)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-586f1cb33a38e783c37e58d630a158c9634ac6440263cda003697198c9865b5a">core/src/main/java/bisq/core/api/model/BtcBalanceInfo.java</a>
    (75)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-3a9ff7695726e0660444b5b5e18600d2cff2bc2fcdf3f78c36a0fc3df504e1b6">core/src/main/java/bisq/core/api/model/OfferInfo.java</a>
    (10)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-7e8dfadb3a06f282f4e9f3f5d778fe45e7717e5007f2d72f50f58742b9e13349">core/src/main/java/bisq/core/btc/model/BsqTransferModel.java</a>
    (77)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-51ad8d296d65d6b3ce8dc9791aa5a912f3ed622796fcd9853692711086c48972">core/src/main/java/bisq/core/btc/wallet/BsqTransferService.java</a>
    (59)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-b604ee7141fcfacf2dd0aeade4bf393c4d4d93617ab327147c363539ae804496">core/src/main/java/bisq/core/offer/OfferUtil.java</a>
    (18)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-5afef68b74948ae40e71a3955d52c1bfd52fa4a95fed271c6cae61626089073d">daemon/src/main/java/bisq/daemon/grpc/GrpcOffersService.java</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-0999abe6a76f18c5be810b6c5436cea6d708c11d99ed316d0397c3ebbc6aa777">daemon/src/main/java/bisq/daemon/grpc/GrpcTradesService.java</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-2599dd16bc53cae95cd20c7466d22e1a79ae172db0526cd14f7839cee29ad9fe">daemon/src/main/java/bisq/daemon/grpc/GrpcWalletsService.java</a>
    (75)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-129ab70d7a6a053bd296608a694f5ce120f764cb1c5ce4ec7d6a7d55a1efff92">desktop/src/main/java/bisq/desktop/main/dao/wallet/send/BsqSendView.java</a>
    (41)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4808/files#diff-dcb44a0045a5b02cde5bd2f45051b7d9293f87180111c7ea57f0d0eb85d0f393">proto/src/main/proto/grpc.proto</a>
    (69)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/bisq-network/bisq/pull/4808.patch'>https://github.com/bisq-network/bisq/pull/4808.patch</a></li>
  <li><a href='https://github.com/bisq-network/bisq/pull/4808.diff'>https://github.com/bisq-network/bisq/pull/4808.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/bisq/pull/4808">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNWR6ACDWO45EJYEOQLSP2VRFANCNFSM4TVUHXPQ">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNTQEHJLO6TVC4BH4JTSP2VRFA5CNFSM4TVUHXP2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4LCJZIWQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/bisq/pull/4808",
"url": "https://github.com/bisq-network/bisq/pull/4808",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>