From db568a61e2a98880ab308bf2224aa34073dc7f39 Mon Sep 17 00:00:00 2001 From: Péter Szilágyi Date: Tue, 1 Aug 2017 17:45:17 +0200 Subject: accounts, console, internal: support trezor hardware wallet --- cmd/geth/main.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'cmd') diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 58e949806..257cb2231 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -237,24 +237,28 @@ func startNode(ctx *cli.Context, stack *node.Node) { } stateReader := ethclient.NewClient(rpcClient) - // Open and self derive any wallets already attached + // Open any wallets already attached for _, wallet := range stack.AccountManager().Wallets() { if err := wallet.Open(""); err != nil { log.Warn("Failed to open wallet", "url", wallet.URL(), "err", err) - } else { - wallet.SelfDerive(accounts.DefaultBaseDerivationPath, stateReader) } } // Listen for wallet event till termination for event := range events { - if event.Arrive { + switch event.Kind { + case accounts.WalletArrived: if err := event.Wallet.Open(""); err != nil { log.Warn("New wallet appeared, failed to open", "url", event.Wallet.URL(), "err", err) + } + case accounts.WalletOpened: + log.Info("New wallet appeared", "url", event.Wallet.URL(), "status", event.Wallet.Status()) + if event.Wallet.URL().Scheme == "ledger" { + event.Wallet.SelfDerive(accounts.DefaultLedgerBaseDerivationPath, stateReader) } else { - log.Info("New wallet appeared", "url", event.Wallet.URL(), "status", event.Wallet.Status()) event.Wallet.SelfDerive(accounts.DefaultBaseDerivationPath, stateReader) } - } else { + + case accounts.WalletDropped: log.Info("Old wallet dropped", "url", event.Wallet.URL()) event.Wallet.Close() } -- cgit From 5d9ac49c7e6027c60998a56287dbb3e407011c9b Mon Sep 17 00:00:00 2001 From: Péter Szilágyi Date: Wed, 9 Aug 2017 12:51:16 +0300 Subject: accounts: refactor API for generalized USB wallets --- cmd/geth/main.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'cmd') diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 257cb2231..34d1d8406 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -251,7 +251,9 @@ func startNode(ctx *cli.Context, stack *node.Node) { log.Warn("New wallet appeared, failed to open", "url", event.Wallet.URL(), "err", err) } case accounts.WalletOpened: - log.Info("New wallet appeared", "url", event.Wallet.URL(), "status", event.Wallet.Status()) + status, _ := event.Wallet.Status() + log.Info("New wallet appeared", "url", event.Wallet.URL(), "status", status) + if event.Wallet.URL().Scheme == "ledger" { event.Wallet.SelfDerive(accounts.DefaultLedgerBaseDerivationPath, stateReader) } else { -- cgit