<p>Posix-style method opts replace the formerly ambiguous, positional method params in the CLI.</p>
<p>This change also adds new api <code>CoreHelpService</code>, for serving method  specific help from the server.  (Help text is defined on the server to avoid duplicating it when the api starts serving RESTful clients.)</p>
<ul>
<li>
<p>Add <code>CoreHelpService</code> to serve method help in man page format.</p>
</li>
<li>
<p>Add some method help docs (man pages) to core's resources: <code>createoffer</code>, <code>takeoffer</code>, and several no-arg methods.</p>
</li>
<li>
<p>Add <code>gRPC</code> <code>CoreHelpService</code> stubs to CLI.</p>
</li>
<li>
<p>Move CLI method enum to its own class to help reduce file-size of growing <code>CliMain</code> class.</p>
</li>
<li>
<p>Add CLI method specific posix-style option parsers.  Opts are parsed by the <code>joptsimple</code> lib, adding much needed client side validation to <code>bisq-cli</code> commands.</p>
</li>
<li>
<p>Adjust CLI to new posix-style opts, and method help service.</p>
</li>
<li>
<p>Delete uneeded <code>NegativeNumberOptions</code> class because <code>joptsimple</code> correctly handles negative posix style opt values (joptsimple was treating negative param values as opt labels).</p>
</li>
<li>
<p>Adjust <code>bats</code> mainnet smoke test to new posix-style CLI opts.</p>
</li>
</ul>

<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/5081'>https://github.com/bisq-network/bisq/pull/5081</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Add new CoreHelpService and method help docs</li>
  <li>Add CoreHelpService gRPC stubs and test case</li>
  <li>Add posix-style api method option parsers</li>
  <li>Move CLI method enum to it's own class</li>
  <li>Change CLI opts to posix-style</li>
  <li>Remove deprecated NegativeNumberOptions</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-63b2f0c9bd56a9c5a6c7e57b5b8ad5c2ddfd8bb664af6f10bc5e48becf49f8b2">apitest/scripts/mainnet-test.sh</a>
    (26)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-8cf80f69437713c826fc155b501cfaad5fbde6836c27633e9efaebd2056916cb">apitest/src/test/java/bisq/apitest/method/GetMethodHelpTest.java</a>
    (65)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-44d1f675626693524cb12d599245a09b4318db027c2dabd23e10cd98ceb7fd28">apitest/src/test/java/bisq/apitest/method/MethodTest.java</a>
    (10)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/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/5081/files#diff-afc5db1c8acb08dec253ee87a3e0e677c932d6826a2ab4c31ba816a4dcfb1386">cli/src/main/java/bisq/cli/CliMain.java</a>
    (628)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-5844772aef65f78f18718761e04db119b26808d950b861d038a740878d729c40">cli/src/main/java/bisq/cli/GrpcStubs.java</a>
    (3)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-330baed45084180eea99af5e846a1c064bb8cebde98bcc24ad1c04d00efcb5b8">cli/src/main/java/bisq/cli/Method.java</a>
    (56)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-7800f1fd826976e3ed46ad7bdc0d0f93ae96021a49bfba65a53cd1b964a99ae1">cli/src/main/java/bisq/cli/NegativeNumberOptions.java</a>
    (97)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-81d1e9d20597797e7e7362edb885afae00c219a7b9ad04167c265945adc767c3">cli/src/main/java/bisq/cli/opts/AbstractMethodOptionParser.java</a>
    (59)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-916f1cea6bd3db8ae3895a8fb8a1151c2878033ba88d0f4045eedf22e9de2ae4">cli/src/main/java/bisq/cli/opts/ArgumentList.java</a>
    (123)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-643bdd5951d07f984aa71972e5c9418714cfafe7975e341d46949ced01d1ed49">cli/src/main/java/bisq/cli/opts/CancelOfferOptionParser.java</a>
    (52)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-b38082e42c3e25f87bc26e2f9c76da7d674c360952e1b53b63dc3fa798d4e671">cli/src/main/java/bisq/cli/opts/CreateOfferOptionParser.java</a>
    (140)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-94df640d5d04ce714b8032352a0581d03794e7eb058e867a7898389909b58d99">cli/src/main/java/bisq/cli/opts/CreatePaymentAcctOptionParser.java</a>
    (63)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-943127c8f33412f53c78fc554b47dd3f6bd4b62df7b063feba4257a4f7ab331a">cli/src/main/java/bisq/cli/opts/GetAddressBalanceOptionParser.java</a>
    (52)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-030529fc34399e0970590ef216aafa973eb37eeff69fe9274cbd7c1d36ef4f2c">cli/src/main/java/bisq/cli/opts/GetBalanceOptionParser.java</a>
    (43)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-67c976974b8a1f75c3d2918f1d33ea9647c1579de40c348c33066e6ada77aea2">cli/src/main/java/bisq/cli/opts/GetOfferOptionParser.java</a>
    (52)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-f268a12446095bb9766cd8b9f56428b8ac6c72c798ec66c88e3292443955cfbd">cli/src/main/java/bisq/cli/opts/GetOffersOptionParser.java</a>
    (64)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-957501e56a82f41f95b6962f8d02df8a7da8637dad37ebe616a5b84fae9de6ff">cli/src/main/java/bisq/cli/opts/GetPaymentAcctFormOptionParser.java</a>
    (53)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-5a178c63d4f63d67cab498cae34a6b85c565e6bb66b66077deff34561319b7b3">cli/src/main/java/bisq/cli/opts/GetTradeOptionParser.java</a>
    (62)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-3e240c78e64b77d51ea17902e4fdb9d7f1bcd69f3823868e98a400af775b59ae">cli/src/main/java/bisq/cli/opts/GetTransactionOptionParser.java</a>
    (52)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-3415018205a8c6737f1f4f3a1086db8db2f84012cad20f71dda957130c9f69fe">cli/src/main/java/bisq/cli/opts/MethodOpts.java</a>
    (26)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-c3491a41f640da451ad42a12869b1f6552f22c2fb56da31eeb1c01498a8b8203">cli/src/main/java/bisq/cli/opts/OptLabel.java</a>
    (51)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-6255dce725b88f56262da4ad16e66240cfec5801662b6442b6cc12bc7e98221e">cli/src/main/java/bisq/cli/opts/RegisterDisputeAgentOptionParser.java</a>
    (64)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-b468d27d1cbffba7c97f868e1e6c51f64e8b5647838da5fe3ce3b4d0b00aff3c">cli/src/main/java/bisq/cli/opts/RemoveWalletPasswordOptionParser.java</a>
    (52)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-556535535cf0dee9f5366724e622af98cadf7c88a6acfbaf858033710ec430d7">cli/src/main/java/bisq/cli/opts/SendBsqOptionParser.java</a>
    (73)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-35a83dd7cd556879429d00cfc927bfdc8d806f0a6cad85a7ded1a27682e332c8">cli/src/main/java/bisq/cli/opts/SendBtcOptionParser.java</a>
    (82)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-f13ba621290dc0342afcba070f5383920fb7ecca4eab7d5c2a256d95f7fcab6c">cli/src/main/java/bisq/cli/opts/SetTxFeeRateOptionParser.java</a>
    (53)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-813549f3a58e235371971c7b9d4793c02153139dc75e448ba82e2c602c069409">cli/src/main/java/bisq/cli/opts/SetWalletPasswordOptionParser.java</a>
    (61)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-af3740ce18d08712a0f51f0c37a5e3b59e234e1bea16f5e1b9049e471bcee33d">cli/src/main/java/bisq/cli/opts/SimpleMethodOptionParser.java</a>
    (30)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-a32fc14a760a8910602008cf225ff297472463b7739abeacd7e211172160b2f8">cli/src/main/java/bisq/cli/opts/TakeOfferOptionParser.java</a>
    (73)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-8f65798f28c48cb98372efc573263e8fc6bd16fec9d52ffb55bf79ca33346b27">cli/src/main/java/bisq/cli/opts/UnlockWalletOptionParser.java</a>
    (65)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-c9f2281237755625f91f1c6165af75906aa455b2cad3bcd11d3fbc50d79a9783">cli/src/main/java/bisq/cli/opts/WithdrawFundsOptionParser.java</a>
    (70)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-fb5876d3b212d239a14d78529ac498b30a2dbb8e3f184ba9bd711a5d4901fb62">core/src/main/java/bisq/core/api/CoreApi.java</a>
    (13)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-1a42eb12ab298786fd5f109d7398f9022f434a35eaf0c1579093b29540ed0d74">core/src/main/java/bisq/core/api/CoreHelpService.java</a>
    (103)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-b7bdef6fd55ea8264ad3f5972eea110ea9378e1ba1cf7cb086922bc645157e22">core/src/main/resources/help/createoffer-help.txt</a>
    (64)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-6fc6cad0e86e89ced797352b581345e27e7dcadb8b062bbdc80686bd1bc171cf">core/src/main/resources/help/getfundingaddresses-help.txt</a>
    (17)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-7c16d14c257c019515c3baaa30b59ea29de1ea36e1d834a1a3126c9e15aa93d3">core/src/main/resources/help/getpaymentaccts-help.txt</a>
    (17)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-dc4ccb863b1e5094bbff29ba2786f5be90d5c9d304b152cb44d738a839c5fa0a">core/src/main/resources/help/getpaymentmethods-help.txt</a>
    (17)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-c55992bfc583d69171137bd462adc5dcfaf5cf7a231238b50881a5c082e33031">core/src/main/resources/help/gettxfeerate-help.txt</a>
    (17)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-1adea64b0035319af4cf4d62f1b72b6dd32dc2bfd68bbcf083e19dac4f519773">core/src/main/resources/help/getunusedbsqaddress-help.txt</a>
    (17)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-614c24602601db9ab527e3d8d1b8fbe281955664bf4af65f1d5ad9742213115a">core/src/main/resources/help/getversion-help.txt</a>
    (17)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-2170c4487155bcfb15b3c9ab1b22136ff6712147770ae8e42bf5d9d3c43b2bb2">core/src/main/resources/help/lockwallet-help.txt</a>
    (17)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-eb4034ecd60e170ace00a1272f1aa9656558146c17bdc0258b137200d191070e">core/src/main/resources/help/takeoffer-help.txt</a>
    (35)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-b1e9a74f8609a9ad929893094fb8999dfc6346e670188ff17d7c7d2db9baa789">core/src/main/resources/help/unsettxfeerate-help.txt</a>
    (17)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-87b164c3ca31333a8a805fb211a24df3c60e8403c7757afa284b95dfc947a564">daemon/src/main/java/bisq/daemon/grpc/GrpcHelpService.java</a>
    (56)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-a80dc3f5a2446a62ffe0c63636c26c71054b77c458ce7fcdd5b02d4553e1706d">daemon/src/main/java/bisq/daemon/grpc/GrpcServer.java</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/5081/files#diff-dcb44a0045a5b02cde5bd2f45051b7d9293f87180111c7ea57f0d0eb85d0f393">proto/src/main/proto/grpc.proto</a>
    (17)
  </li>
</ul>

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