The lns records are stored on the blockchain in a hashed state so the
name and value are not immediately accessable. This creates a store in
the wallet so the unhashed details are saved and can be viewed at a
later date.
- Sometimes the wallet would query TX's before they are blink approved
and get cached into the wallet as a normal TX preventing external
services from using 0-confirmation on transactions.
We make the wallet only conduct long-polling for blinks in order to
notice the transaction after blink. The downside here is that normal
mempool transacations won't appear until they are placed into a block.
With Pulse this is mitigated with reliable within sub-seconds of
a target 2 min block time.
The old deprecated zmq-rpc-bind-port and other hidden deprecated options
weren't being properly recognized when in a config file because only the
visible settings were passed in. This fixes it to also pass in hidden
settings.
- Change size_needed to expect 1 hash instead of 2. 2 hashes is when
Monero added tx pruning and they include a secondary hash for those
purposes. At Loki we don't quite support pruning yet as blocks are
needed for the Service Node network to operate.
The long polling through was living beyond the wallet destruction and
reconstruction when the rpc wallet opened a new wallet.
Fixed it by synchronously shutting down and restarting the thread when
we close/open a wallet.
There are some cases where core modified the config folder that the
default lmq control socket would miss; this cleans it up to get the
config folder from core rather than trying to use core's command-line
argument.
There was a missing call to nested the values in an object, so the
resulting json ended up as:
"pulse":,"random_value":"b01b8d1290cbac40917a23a08b343bec","round":0,"validator_bitset":2047,
instead of:
"pulse":{"random_value":"b01b8d1290cbac40917a23a08b343bec","round":0,"validator_bitset":2047},
Modernize it to avoid macros, and fix it by beginning an object.
(This won't affect binary serialization; object serialization only has
an effect on json serialization and is a no-op for binary
serialization).