<ul>
<li>
<p>Added is <code>instanceof MoneyGramAccount</code> method to abstract <code>PaymentAccount</code>.</p>
</li>
<li>
<p>Refactored <code>PaymentAccountTypeAdapter</code> to fix problem setting country on a <code>MoneyGramAccount</code>.</p>
</li>
<li>
<p>Enabled create <code>MoneyGramAccount</code> api test.</p>
</li>
</ul>
<p>This is the 18th 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="747760440" data-permission-text="Title is private" data-url="https://github.com/bisq-network/bisq/issues/4828" data-hovercard-type="pull_request" data-hovercard-url="/bisq-network/bisq/pull/4828/hovercard" href="https://github.com/bisq-network/bisq/pull/4828">#4828</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/4834'>https://github.com/bisq-network/bisq/pull/4834</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>
  <li>Remove unnecessary fully qualified name</li>
  <li>Remove unused imports</li>
  <li>Add api method 'getpaymentmethods'</li>
  <li>Avoid codacy issue over use of fully qualified name</li>
  <li>Revert "Avoid codacy issue over use of fully qualified name"</li>
  <li>Print the payment method id (only)</li>
  <li>Avoid codacy issue over use of fully qualified name</li>
  <li>Make codacy happy again</li>
  <li>Add ReflectionUtils to common.util pkg</li>
  <li>Add new (gson) PaymentAccountTypeAdapter to core.api.model</li>
  <li>Add isCountryBasedPaymentAccount to abstract PaymentAccount</li>
  <li>Add new PaymentAccountForm to core.api.model</li>
  <li>Add boilerplate for new 'getpaymentacctform' api method</li>
  <li>Add new api method 'getpaymentacctform' to CLI</li>
  <li>Test new api method 'getpaymentacctform'</li>
  <li>Ensure EXPECTED_FORM.clear() is never skipped</li>
  <li>Replace existing api method 'createpaymentacct' impl</li>
  <li>Avoid 'unnecessary use of fully qualified name' codacy issue</li>
  <li>Tidy up payment accts api related msgs on CLI</li>
  <li>Fix createpaymentacct validation problems</li>
  <li>Log server stack traces, pass concise err msgs to CLI</li>
  <li>Add create payment account (api) tests</li>
  <li>Reverse argument order for assert(expected, actual) convention</li>
  <li>Add isMoneyGramAccount to abstract PaymentAccount</li>
  <li>Refactor didReadCountryField to set country on MoneyGram acct</li>
  <li>Enable CreateMoneyGramAccount test</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-512bd003d008a917452a114dd897406573e654bf6fbbbec528d32f0a624f4dcb">apitest/docs/build-run.md</a>
    (2)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-e6a3c8a81b7fe6b62fdc22e911e47893e7d2f0e11dd7ce5442e016e12174976f">apitest/src/test/java/bisq/apitest/method/CreatePaymentAccountTest.java</a>
    (99)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/files#diff-44d1f675626693524cb12d599245a09b4318db027c2dabd23e10cd98ceb7fd28">apitest/src/test/java/bisq/apitest/method/MethodTest.java</a>
    (134)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/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/4834/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/4834/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/4834/files#diff-ca35fd2cf20069360ff48c6d99283c5fea8c929024ddbdfe44d60429da2a10a1">apitest/src/test/java/bisq/apitest/method/offer/ValidateCreateOfferTest.java</a>
    (1)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-8efa98a721b8ec574d3856b9ba9df31a5df2fd9d1c7d37efbcc6bdc20b3c2b3b">apitest/src/test/java/bisq/apitest/method/payment/AbstractPaymentAccountTest.java</a>
    (196)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-98766e3307ebb6c5e165c4538df5e46fc1d8e8abf81f66771fcfc5bbb6408131">apitest/src/test/java/bisq/apitest/method/payment/CreatePaymentAccountTest.java</a>
    (839)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-febd22f3d2cad92a0fb1115f6ce1e3c8398a1c9a8f5329860029063796c1e341">apitest/src/test/java/bisq/apitest/method/payment/GetPaymentMethodsTest.java</a>
    (53)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/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/4834/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/4834/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/4834/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/4834/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/4834/files#diff-059cc502e89d82a1c4aeebdb933ee342246a9d0db7601f279b947f798e4ae312">apitest/src/test/java/bisq/apitest/scenario/FundWalletScenarioTest.java</a>
    (76)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-ddf4721374613fe047631b685717fbcaf3c0dd687db70b0f5d7d9150b3affdb5">apitest/src/test/java/bisq/apitest/scenario/PaymentAccountTest.java</a>
    (90)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-666369ba82abc477e33be27198fe4cb1394f52fee400896213b5ff3d18a9409e">apitest/src/test/java/bisq/apitest/scenario/StartupTest.java</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/files#diff-afc5db1c8acb08dec253ee87a3e0e677c932d6826a2ab4c31ba816a4dcfb1386">cli/src/main/java/bisq/cli/CliMain.java</a>
    (185)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/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/4834/files#diff-2ac1e865aee578e0d675f0b5777c3c9ba660b165166cb7b031539face84c8559">cli/src/main/java/bisq/cli/TableFormat.java</a>
    (76)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-58fc3071843d62f9baf1575a4c078587860ca58fb8f0854c5389dc5779584317">common/src/main/java/bisq/common/util/ReflectionUtils.java</a>
    (108)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-fb5876d3b212d239a14d78529ac498b30a2dbb8e3f184ba9bd711a5d4901fb62">core/src/main/java/bisq/core/api/CoreApi.java</a>
    (37)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/files#diff-161be9419f5c0abf3098d8ac7d8b096a321bb76f0c26b5be11cc183958209368">core/src/main/java/bisq/core/api/CorePaymentAccountsService.java</a>
    (110)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/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/4834/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/4834/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/4834/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/4834/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/4834/files#diff-0ee6d746cd6c9f47730564789acdbc817a021fae26cf38fc1493c03e61ac0270">core/src/main/java/bisq/core/api/model/PaymentAccountForm.java</a>
    (242)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/files#diff-51eee6356fda3d54c9fdf17f0d40df2bd8fbaec835183ef02f45416e6ff37d75">core/src/main/java/bisq/core/api/model/PaymentAccountTypeAdapter.java</a>
    (347)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/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/4834/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/4834/files#diff-189dabf054a26f4cd086890f538252d6c47a246491d7d95e730ce6a0e640d786">core/src/main/java/bisq/core/payment/PaymentAccount.java</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/files#diff-6d8b8c93482024d228b7265fa4533f5c1b9d2fc284f0e5e4c10f36d742f70dcb">daemon/src/main/java/bisq/daemon/grpc/GrpcPaymentAccountsService.java</a>
    (97)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4834/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/4834/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/4834/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/4834/files#diff-dcb44a0045a5b02cde5bd2f45051b7d9293f87180111c7ea57f0d0eb85d0f393">proto/src/main/proto/grpc.proto</a>
    (95)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/bisq-network/bisq/pull/4834.patch'>https://github.com/bisq-network/bisq/pull/4834.patch</a></li>
  <li><a href='https://github.com/bisq-network/bisq/pull/4834.diff'>https://github.com/bisq-network/bisq/pull/4834.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/4834">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNTGB7SXKIYAZKO4QETSRABU3ANCNFSM4T56G6DA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNW5US4PGYMO6BUOOPTSRABU3A5CNFSM4T56G6DKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4LEWWSBA.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/4834",
"url": "https://github.com/bisq-network/bisq/pull/4834",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>