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.
By not loading locale data into the main process we can considerably
reduce it's size. We the only thing we need access to in the main
process is the translation sets (used for the languages menu).
refactor the i18n code so that the locale data can only be loaded when
needed (in the renderer).
If we are unable to load the suggested nodes list, display a message
prompting the user to open channels.
Previously we would show an infinite spinner.
Fix#392
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.
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.
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
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
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.
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.
Ensure that the loading bold graphic shows whist the seed for a new
wallet is being generated. This provides a smoother user experience
and prevents users from being able to initiate actions through the
UI when they shouldn't be able to.
Do not set `recovery_window: 250` in our call to `initWallet` when
creating a new wallet, as this causes lnd to scan the entire chain for
non-existent funds which slows the lnd sync process.
See https://github.com/lightningnetwork/lnd/issues/1744
The standard approach on Darwin is to keen applications running when the
window is closed. Clicking the apps icon again in the doc should bring
back the application window.
This changeset refactors things to handle this. It will keep Zap and lnd
running in the background when the main application window is closed.
Quitting the app will stop both the app and lnd.
Fix#586Fix#601
Inject `received` property into transactions received from the IPC
receiveTransactions handler. This ensures that past transactions can
correctly be displayed as either sent or received.
It is more common for new users to create a new wallet than to import
an existing one. Make the "create new wallet" option the default
selected value in the onboarding process.
Handle the case were the Neutrino backend BTCd node is still
synchronising the blockchain as LND is not able to start syncing
until the BTCd node that it is connected to is fully synced.