The TakeBestPricedOfferTo*Btc needed to be split up so they are specific
to fiat offers, and this change adds new TakeBestPricedOfferTo*Xmr bots
just for XMR.
This simplifies the the non-bsq-swap bots; documenting, coding,
configuring, and logging the taking of both fiat and xmr (altcoin)
offers in the same bots was getting confusing, and that's going to
turn away potential users.
This refactoring means there are six bots now, and it forced considerable
refactoring in all of them.
This commit is the bulk of the work for the PR, but there will be more
changes after everything is tested again, and comments are adjusted.
Each bot has its own gRPC channel and set of service stubs,
and a single bot's channel & stubs last the bot's lifetime.
However, RegtestTradePaymentSimulator instance is a bot too, with it's
own channel & stubs, which should be closed at the end of each run().
- When bot is run from a *nix terminal, password input will not be echoed.
- When bot is run from an IDE, it's virtual terminal will echo the input
(cannot be avoided).
Validate the input during startup, to fail early instead of waiting for
the right offer to take, then failing to unlock the wallet with an
incorrect password.
Use the existing Bisq API CLI utils for making calls to the daemon,
and formatting responses.
When/if the CLI is released on jitpack, this code can be removed
from this repo, and loaded from a gradle dependency.
This might give Python devs an easier time than if all the sample
code lived deep inside a gradle project. This means there is
no root project gradle build file; the reference-doc-builder and
java-examples modules are separate java projects, with their own
build files.