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.
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.
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.
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
Move rpc.proto into the resources directory along with all of the other
external resources.
Fix up the resource paths to reference external resources correctly
depending on wether the app is being run locally or from a release.
Only one of these files was being used, and they were going out of step
relative to one another.
Put rpc.proto in the resources directory for consistency with other
vendored resources, i.e. the lnd binary
Updated the def from:
https://github.com/lightningnetwork/lnd/blob/master/lnrpc/rpc.proto
Use grpc.credentials.combineChannelCredentials to combine the ssl
credentials with the macaroons when initializing the lnd rcp client.
This avoids the need to pass the macaroon metadata throughout the
codebase.