Refactor Containers and Routes in order to make the code a little more
readable, reduce duplication, and prepare the codebase for integration
of the new Home screen.
- Break out the Root container into several smaller containers that are
responsible for connecting themselves to the Redux store.
- Use routing for navigation between primary containers
- Unbundle the `Syncing` Component from the Onboarding section and hook
up to router so that it can be access by navigating to `/syncing' (we
want to be able to load existing wallets and initiate syncing outside of
the context of the onboarding process)
- Reduce code duplication
- Create `TitleBar` component and implement once at the top level
- Create `withLoading` HOC and use to display the loading screen when
needed.
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.
In this commit we introduce a 60 second timeout for LN payments. This addresses the issue of infinitely hanging LN payments and improves the UX. The UI now has a 60 second countdown where Zap will clear the payment if it is not successfully routed
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
Add a new AmountInput component to render an input field for entering
bitcoin denominated amounts. Has special handling for bitcoin / sats /
bits to ensure that only valid amounts can be entered and that the
formatting looks visually correct.
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.