mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-04-14 15:09:06 +02:00
Merge pull request #7462 from guggero/createwatchonly-stateless
remote signer: allow stateless init of watch-only node
This commit is contained in:
commit
ffef78a4e5
@ -687,6 +687,10 @@ var createWatchOnlyCommand = cli.Command{
|
||||
Read the documentation under docs/remote-signing.md for more information
|
||||
on how to set up a remote signing node over RPC.
|
||||
`,
|
||||
Flags: []cli.Flag{
|
||||
statelessInitFlag,
|
||||
saveToFlag,
|
||||
},
|
||||
Action: actionDecorator(createWatchOnly),
|
||||
}
|
||||
|
||||
@ -699,6 +703,15 @@ func createWatchOnly(ctx *cli.Context) error {
|
||||
return cli.ShowCommandHelp(ctx, "createwatchonly")
|
||||
}
|
||||
|
||||
// Should the daemon be initialized stateless? Then we expect an answer
|
||||
// with the admin macaroon later. Because the --save_to is related to
|
||||
// stateless init, it doesn't make sense to be set on its own.
|
||||
statelessInit := ctx.Bool(statelessInitFlag.Name)
|
||||
if !statelessInit && ctx.IsSet(saveToFlag.Name) {
|
||||
return fmt.Errorf("cannot set save_to parameter without " +
|
||||
"stateless_init")
|
||||
}
|
||||
|
||||
jsonFile := lncfg.CleanAndExpandPath(ctx.Args().First())
|
||||
jsonBytes, err := ioutil.ReadFile(jsonFile)
|
||||
if err != nil {
|
||||
@ -754,12 +767,21 @@ func createWatchOnly(ctx *cli.Context) error {
|
||||
}
|
||||
}
|
||||
|
||||
_, err = client.InitWallet(ctxc, &lnrpc.InitWalletRequest{
|
||||
initResp, err := client.InitWallet(ctxc, &lnrpc.InitWalletRequest{
|
||||
WalletPassword: walletPassword,
|
||||
WatchOnly: rpcResp,
|
||||
RecoveryWindow: recoveryWindow,
|
||||
StatelessInit: statelessInit,
|
||||
})
|
||||
return err
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if statelessInit {
|
||||
return storeOrPrintAdminMac(ctx, initResp.AdminMacaroon)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// storeOrPrintAdminMac either stores the admin macaroon to a file specified or
|
||||
@ -767,9 +789,11 @@ func createWatchOnly(ctx *cli.Context) error {
|
||||
func storeOrPrintAdminMac(ctx *cli.Context, adminMac []byte) error {
|
||||
// The user specified the optional --save_to parameter. We'll save the
|
||||
// macaroon to that file.
|
||||
if ctx.IsSet("save_to") {
|
||||
macSavePath := lncfg.CleanAndExpandPath(ctx.String("save_to"))
|
||||
err := ioutil.WriteFile(macSavePath, adminMac, 0644)
|
||||
if ctx.IsSet(saveToFlag.Name) {
|
||||
macSavePath := lncfg.CleanAndExpandPath(ctx.String(
|
||||
saveToFlag.Name,
|
||||
))
|
||||
err := os.WriteFile(macSavePath, adminMac, 0644)
|
||||
if err != nil {
|
||||
_ = os.Remove(macSavePath)
|
||||
return err
|
||||
|
@ -354,6 +354,9 @@ in the lnwire package](https://github.com/lightningnetwork/lnd/pull/7303)
|
||||
|
||||
* [Sign/Verify messages and signatures for single
|
||||
addresses](https://github.com/lightningnetwork/lnd/pull/7231).
|
||||
|
||||
* [Allow `--stateless_init` mode to be used for watch-only
|
||||
wallets](https://github.com/lightningnetwork/lnd/pull/7462).
|
||||
|
||||
## Code Health
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user