If there is a problem connecting to the Lightning interface on a local
lnd instance, return the user to the onboarding screen and show the
user the error message.
Previously, the app would hang on an infinite loading screen.
Select free ports for lnd from a pool of options. By default we will
use the standard lnd ports (10009 and 9735) but if those are not
available then we will search for free ports in a nearby range.
This allows us to have multiple instances of the wallet running and
avoids possible conflicts with other instances of lnd that the user
may be running.
We need to pass a number to `<FormattedNumber>` for it to properly
display the currency values. In some cases we were passing a
pre-formatted string which was causing some currency amount to render
as NaN.
Ensure that logs are output when the app is run in production mode. not
only development mode so that its easier to diagnose an issue with a
production build.
Consolidate the flow for local and remote wallet connections for
consolidate. When unlocking a local wallet wait for the macaroon to be
generated before we try to use it.
There is no need to check wether an lnd process exists and prevent
Zap from starting if so. We don't care if there is another process
running. We only care that we can successfully start up our own process.
If there is a conflict with another lnd process such as a port that we
need already being in use we already handle this elsewhere in our code.
If when connecting to a remote wallet we detect that it is locked
initialise the wallet unlocker to allow users to unlock their remote
wallets.
Fix#543
When connecting to a remote wallet we assume that the wallet is already
unlocked. In the case where it is not already unlocked, forward the
error message to the UI.
Fix#738
The gRPC Client waitForReady call waits for a specified time frame and
either resolves or rejects depending on wether or not a successful
connection was established within the given time frame. If the
connection attempt failed gRPC will still continue to attempt to
establish the connection endlessly.
In this commit we explicitly close the client connection after the
connect deadline has been exceeded to prevent gRPC from trying to
connect.
Fix an issue that was preventing grpc connection errors from showing
after a failed connection to a remote node.
Re-throw the error from `startLightningWallet` after logging it so that
it can be handled properly afterwards.
Lnd doesn't currently do a graceful shutdown when a `SIGTERM` is issued.
To ensure a graceful shutdown, call `stopDaemon` on the gRPC interface
prior to terminating lnd. If a graceful shutdown is unsuccessful then
force kill the daemon.
fix(multi-lang): switch ticker to settings store
fix(tests): pass all tests
fix(fiat): switch from usd to fiat
fix(settings): fix console errors
fix(settings): make styles consistent
fix(tests): remove unneeded mocks
fix(payform): call satoshisToFiat now
fix(network): rebase + fix network fiat amt
Make sure that if a user of ours is using neutrino that we flag their
channels as private when they manually open them. Reason for this is
because light consumer clients are not expected to have high uptime.
However we cannot hardcode channels as private every time because we
do support more power users driving their remote nodes or BTCPay
Server with Zap. So we only flag channels as private if the
activeConnection is local.
The `onOnboarding` state transition handler only fires if you are
entering the `onboarding` state from another state. If you are already
in the `onboarding` state it does not fire when the `startOnboarding`
event is initiated. By contrast, `onStartOnboarding` always fires when
`startOnboarding` is run.
Ensure that IPC listeners are only registered once when transitioning to
the `onboarding` state from another state.
Settled invoices show the amount paid by the payee instead of the requested
value from the invoice. This involves using an updated version of the lnd rpc
protocol.
This is in response to issue #654.
amt_paid is exposed to users via invoice.finalAmount, which is constructed
via a new invoice decorator.
During the sync process there are log message that relate to syncing
filters and filter headers. This fixes an issue where we were parsing
messages about syncing filters as if they were filter headers, which
would cause the progress indicator to jump around during the middle of
the sync process due to it thinking that more filter headers had been
synced than was actually the case.