lotus-wallet: ledger flag

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
This commit is contained in:
Łukasz Magiera 2020-10-10 13:03:39 +02:00 committed by Jakub Sztandera
parent b35f9b56b4
commit 99791a6953
No known key found for this signature in database
GPG Key ID: 9A9AF56F8B3879BA

View File

@ -2,6 +2,7 @@ package main
import ( import (
"context" "context"
"github.com/filecoin-project/lotus/api"
"net" "net"
"net/http" "net/http"
"os" "os"
@ -61,6 +62,10 @@ var runCmd = &cli.Command{
Usage: "host address and port the wallet api will listen on", Usage: "host address and port the wallet api will listen on",
Value: "0.0.0.0:1777", Value: "0.0.0.0:1777",
}, },
&cli.BoolFlag{
Name: "ledger",
Usage: "use a ledger device instead of an on-disk wallet",
},
}, },
Action: func(cctx *cli.Context) error { Action: func(cctx *cli.Context) error {
log.Info("Starting lotus wallet") log.Info("Starting lotus wallet")
@ -95,18 +100,21 @@ var runCmd = &cli.Command{
return err return err
} }
w, err := wallet.NewWallet(ks) var w api.WalletAPI
if !cctx.Bool("ledger") {
w, err = wallet.NewWallet(ks)
if err != nil { if err != nil {
return err return err
} }
_ = w } else {
ds, err := lr.Datastore("/metadata") ds, err := lr.Datastore("/metadata")
if err != nil { if err != nil {
return err return err
} }
lw := ledgerwallet.NewWallet(ds) w = ledgerwallet.NewWallet(ds)
}
address := cctx.String("listen") address := cctx.String("listen")
mux := mux.NewRouter() mux := mux.NewRouter()
@ -114,7 +122,7 @@ var runCmd = &cli.Command{
log.Info("Setting up API endpoint at " + address) log.Info("Setting up API endpoint at " + address)
rpcServer := jsonrpc.NewServer() rpcServer := jsonrpc.NewServer()
rpcServer.Register("Filecoin", &LoggedWallet{under: lw}) rpcServer.Register("Filecoin", &LoggedWallet{under: w})
mux.Handle("/rpc/v0", rpcServer) mux.Handle("/rpc/v0", rpcServer)
mux.PathPrefix("/").Handler(http.DefaultServeMux) // pprof mux.PathPrefix("/").Handler(http.DefaultServeMux) // pprof