- Injected OfferFilter into CoreOffersService and CoreTradesService.
The filter constrains 'getoffer(s)' results to offers an api user
can take, as the first part of ongoing protection tools / api
integration.
- Created a new CoreContext singleton.
Initially, lets Core*Services know if the user is using the api --
isApiUser=true if the current thread's name is "BisqDaemonMain" or
the name contains "grpc". We do this anticipating future :desktop
dependencies on the core api, and we don't pass hardcoded
isApiUser=true params to lower level domain objects.
We cannot check BisqDaemonMain.class.getSimpleName() because :core
cannot have a circular dependency on :daemon, but there is probably a
better way to do this than depending on the thread name set in
BisqDaemonMain#configUserThread().
- Added @Singleton annotation to all Core*Service classes.
- Fix bug locating index of method name in String[] args.
- Make createoffer method's security-deposit param format consistent with UI's.
When creating an offer, the CLI should take "15.0", not "0.15" as
a 15% security deposit. This is consistent with the UI, and the
CLI's mkt-price-margin input format.
A log statement was mismatching argument placeholders with argument
values because it was formatted as
log.info("msg={}, \n" + args...)
instead of
log.info("msg={}", args...)
Some code formatting was also done to this block, and a closer approximation
of a CLI 'createoffer` param list replaces the following log statement.
We handle the connections by INITIAL_DATA_EXCHANGE which
cover the seed nodes as well. Do have an parallel routine
is risky and make things more complex.
In the 3rd attempt we filter for
INITIAL_DATA_EXCHANGE peers.
Before we excluded 2 types and as PEER have been
already filtered earlier we would look up for SEED_NODE.
This was only called by non-seedNodes.
Remove unnecessary setPeerType calls. ConnectionState is handling that.
Only PeerManager does the setting of isSeedNode as we do not have the
required dependency in ConnectionState.