<p>Takes a paymentMethodId, and returns a new payment account form as a json String to the CLI, which persists the json string to file in the CLI user's current working directory.  The user will edit the json file and pass it as an argument to api method <code>createpaymentacct</code>.</p>
<ul>
<li>
<p>Added new <code>common.util.ReflectionUtils</code>, to help with json acct form serialization/de-serialization.</p>
</li>
<li>
<p>Added convenience <code>isCountryBasedPaymentAccount</code> method to <code>abstract PaymentAccount</code> to help with json acct form serialization/de-serialization.</p>
</li>
<li>
<p>Added new (gson) <code>core.api.model.PaymentAccountTypeAdapter</code>.</p>
</li>
<li>
<p>Added new <code>core.api.model.PaymentAccountForm</code>.  This class uses the gson <code>PaymentAccountTypeAdapter</code> to generate editable json forms for <code>PaymentAccount</code> sub-types, and instantiate <code>PaymentAccount</code> instances from edited json forms.</p>
</li>
<li>
<p>Added gRPC service <code>GetPaymentAccountForm</code>.</p>
</li>
<li>
<p>Added gRPC boilerplate method to <code>GrpcPaymentAccountsService</code>.</p>
</li>
<li>
<p>Added implimentation to <code>CoreApi</code> -> <code>CorePaymentAccountsService</code>.</p>
</li>
<li>
<p>Added api method to CLI.</p>
</li>
<li>
<p>Added api tests.</p>
</li>
</ul>
<p>This is the 14th 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="745741216" data-permission-text="Title is private" data-url="https://github.com/bisq-network/bisq/issues/4818" data-hovercard-type="pull_request" data-hovercard-url="/bisq-network/bisq/pull/4818/hovercard" href="https://github.com/bisq-network/bisq/pull/4818">#4818</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/4819'>https://github.com/bisq-network/bisq/pull/4819</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>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/files#diff-512bd003d008a917452a114dd897406573e654bf6fbbbec528d32f0a624f4dcb">apitest/docs/build-run.md</a>
    (2)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/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/4819/files#diff-44d1f675626693524cb12d599245a09b4318db027c2dabd23e10cd98ceb7fd28">apitest/src/test/java/bisq/apitest/method/MethodTest.java</a>
    (95)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/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/4819/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/4819/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/4819/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/4819/files#diff-8efa98a721b8ec574d3856b9ba9df31a5df2fd9d1c7d37efbcc6bdc20b3c2b3b">apitest/src/test/java/bisq/apitest/method/payment/AbstractPaymentAccountTest.java</a>
    (141)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/files#diff-98766e3307ebb6c5e165c4538df5e46fc1d8e8abf81f66771fcfc5bbb6408131">apitest/src/test/java/bisq/apitest/method/payment/CreatePaymentAccountTest.java</a>
    (307)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/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/4819/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/4819/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/4819/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/4819/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/4819/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/4819/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/4819/files#diff-ddf4721374613fe047631b685717fbcaf3c0dd687db70b0f5d7d9150b3affdb5">apitest/src/test/java/bisq/apitest/scenario/PaymentAccountTest.java</a>
    (66)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/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/4819/files#diff-afc5db1c8acb08dec253ee87a3e0e677c932d6826a2ab4c31ba816a4dcfb1386">cli/src/main/java/bisq/cli/CliMain.java</a>
    (134)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/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/4819/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/4819/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/4819/files#diff-fb5876d3b212d239a14d78529ac498b30a2dbb8e3f184ba9bd711a5d4901fb62">core/src/main/java/bisq/core/api/CoreApi.java</a>
    (27)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/files#diff-161be9419f5c0abf3098d8ac7d8b096a321bb76f0c26b5be11cc183958209368">core/src/main/java/bisq/core/api/CorePaymentAccountsService.java</a>
    (25)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/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/4819/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/4819/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/4819/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/4819/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/4819/files#diff-0ee6d746cd6c9f47730564789acdbc817a021fae26cf38fc1493c03e61ac0270">core/src/main/java/bisq/core/api/model/PaymentAccountForm.java</a>
    (216)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/files#diff-51eee6356fda3d54c9fdf17f0d40df2bd8fbaec835183ef02f45416e6ff37d75">core/src/main/java/bisq/core/api/model/PaymentAccountTypeAdapter.java</a>
    (329)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/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/4819/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/4819/files#diff-189dabf054a26f4cd086890f538252d6c47a246491d7d95e730ce6a0e640d786">core/src/main/java/bisq/core/payment/PaymentAccount.java</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/files#diff-6d8b8c93482024d228b7265fa4533f5c1b9d2fc284f0e5e4c10f36d742f70dcb">daemon/src/main/java/bisq/daemon/grpc/GrpcPaymentAccountsService.java</a>
    (28)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4819/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/4819/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/4819/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/4819/files#diff-dcb44a0045a5b02cde5bd2f45051b7d9293f87180111c7ea57f0d0eb85d0f393">proto/src/main/proto/grpc.proto</a>
    (88)
  </li>
</ul>

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