From 833e4d1319336fbb66fd8f1e473c24472d65b17b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Tue, 24 Jan 2017 11:49:20 +0200 Subject: accounts, cmd, eth, internal, mobile, node: split account backends --- node/config.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'node/config.go') diff --git a/node/config.go b/node/config.go index 8d75e441b..f3b4dcc73 100644 --- a/node/config.go +++ b/node/config.go @@ -27,6 +27,7 @@ import ( "strings" "github.com/ethereum/go-ethereum/accounts" + "github.com/ethereum/go-ethereum/accounts/keystore" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/logger" @@ -401,11 +402,11 @@ func (c *Config) parsePersistentNodes(path string) []*discover.Node { } func makeAccountManager(conf *Config) (am *accounts.Manager, ephemeralKeystore string, err error) { - scryptN := accounts.StandardScryptN - scryptP := accounts.StandardScryptP + scryptN := keystore.StandardScryptN + scryptP := keystore.StandardScryptP if conf.UseLightweightKDF { - scryptN = accounts.LightScryptN - scryptP = accounts.LightScryptP + scryptN = keystore.LightScryptN + scryptP = keystore.LightScryptP } var keydir string @@ -431,6 +432,6 @@ func makeAccountManager(conf *Config) (am *accounts.Manager, ephemeralKeystore s if err := os.MkdirAll(keydir, 0700); err != nil { return nil, "", err } - - return accounts.NewManager(keydir, scryptN, scryptP), ephemeralKeystore, nil + ks := keystore.NewKeyStore(keydir, scryptN, scryptP) + return accounts.NewManager(ks), ephemeralKeystore, nil } -- cgit v1.2.3 From ac2a0e615bd45eab81cd793cde5a4eef2a8581c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Mon, 23 Jan 2017 09:58:05 +0200 Subject: accounts/usbwallet: initial support for Ledger wallets --- node/config.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'node/config.go') diff --git a/node/config.go b/node/config.go index f3b4dcc73..9ae9406a9 100644 --- a/node/config.go +++ b/node/config.go @@ -28,6 +28,7 @@ import ( "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/accounts/keystore" + "github.com/ethereum/go-ethereum/accounts/usbwallet" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/logger" @@ -432,6 +433,15 @@ func makeAccountManager(conf *Config) (am *accounts.Manager, ephemeralKeystore s if err := os.MkdirAll(keydir, 0700); err != nil { return nil, "", err } - ks := keystore.NewKeyStore(keydir, scryptN, scryptP) - return accounts.NewManager(ks), ephemeralKeystore, nil + + // Assemble the account manager and supported backends + backends := []accounts.Backend{ + keystore.NewKeyStore(keydir, scryptN, scryptP), + } + if ledgerhub, err := usbwallet.NewLedgerHub(); err != nil { + glog.V(logger.Warn).Infof("Failed to start Ledger hub, disabling: %v", err) + } else { + backends = append(backends, ledgerhub) + } + return accounts.NewManager(backends...), ephemeralKeystore, nil } -- cgit v1.2.3 From fad5eb0a87abfc12812647344a26de8a43830182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Tue, 7 Feb 2017 12:47:34 +0200 Subject: accounts, cmd, eth, internal, miner, node: wallets and HD APIs --- node/config.go | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) (limited to 'node/config.go') diff --git a/node/config.go b/node/config.go index 9ae9406a9..9dc1642a5 100644 --- a/node/config.go +++ b/node/config.go @@ -402,7 +402,7 @@ func (c *Config) parsePersistentNodes(path string) []*discover.Node { return nodes } -func makeAccountManager(conf *Config) (am *accounts.Manager, ephemeralKeystore string, err error) { +func makeAccountManager(conf *Config) (*accounts.Manager, string, error) { scryptN := keystore.StandardScryptN scryptP := keystore.StandardScryptP if conf.UseLightweightKDF { @@ -410,7 +410,11 @@ func makeAccountManager(conf *Config) (am *accounts.Manager, ephemeralKeystore s scryptP = keystore.LightScryptP } - var keydir string + var ( + keydir string + ephemeral string + err error + ) switch { case filepath.IsAbs(conf.KeyStoreDir): keydir = conf.KeyStoreDir @@ -425,7 +429,7 @@ func makeAccountManager(conf *Config) (am *accounts.Manager, ephemeralKeystore s default: // There is no datadir. keydir, err = ioutil.TempDir("", "go-ethereum-keystore") - ephemeralKeystore = keydir + ephemeral = keydir } if err != nil { return nil, "", err @@ -433,7 +437,6 @@ func makeAccountManager(conf *Config) (am *accounts.Manager, ephemeralKeystore s if err := os.MkdirAll(keydir, 0700); err != nil { return nil, "", err } - // Assemble the account manager and supported backends backends := []accounts.Backend{ keystore.NewKeyStore(keydir, scryptN, scryptP), @@ -443,5 +446,22 @@ func makeAccountManager(conf *Config) (am *accounts.Manager, ephemeralKeystore s } else { backends = append(backends, ledgerhub) } - return accounts.NewManager(backends...), ephemeralKeystore, nil + am := accounts.NewManager(backends...) + + // Start some logging for the user + changes := make(chan accounts.WalletEvent, 16) + am.Subscribe(changes) + go func() { + for event := range changes { + if event.Arrive { + glog.V(logger.Info).Infof("New %s wallet appeared: %s", event.Wallet.Type(), event.Wallet.URL()) + if err := event.Wallet.Open(""); err != nil { + glog.V(logger.Warn).Infof("Failed to open %s wallet %s: %v", event.Wallet.Type(), event.Wallet.URL(), err) + } + } else { + glog.V(logger.Info).Infof("Old %s wallet disappeared: %s", event.Wallet.Type(), event.Wallet.URL()) + } + } + }() + return am, ephemeral, nil } -- cgit v1.2.3 From c5215fdd48231622dd56aba63a5187c6e42828d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Wed, 8 Feb 2017 15:53:02 +0200 Subject: accounts, cmd, internal, mobile, node: canonical account URLs --- node/config.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'node/config.go') diff --git a/node/config.go b/node/config.go index 9dc1642a5..47ecd22a3 100644 --- a/node/config.go +++ b/node/config.go @@ -454,12 +454,12 @@ func makeAccountManager(conf *Config) (*accounts.Manager, string, error) { go func() { for event := range changes { if event.Arrive { - glog.V(logger.Info).Infof("New %s wallet appeared: %s", event.Wallet.Type(), event.Wallet.URL()) + glog.V(logger.Info).Infof("New wallet appeared: %s", event.Wallet.URL()) if err := event.Wallet.Open(""); err != nil { - glog.V(logger.Warn).Infof("Failed to open %s wallet %s: %v", event.Wallet.Type(), event.Wallet.URL(), err) + glog.V(logger.Warn).Infof("Failed to open wallet %s: %v", event.Wallet.URL(), err) } } else { - glog.V(logger.Info).Infof("Old %s wallet disappeared: %s", event.Wallet.Type(), event.Wallet.URL()) + glog.V(logger.Info).Infof("Old wallet disappeared: %s", event.Wallet.URL()) } } }() -- cgit v1.2.3 From 205ea9580215cca4093dff22ec61222bc3a6ff96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Wed, 8 Feb 2017 20:25:52 +0200 Subject: accounts, cmd, internal, node: implement HD wallet self-derivation --- node/config.go | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) (limited to 'node/config.go') diff --git a/node/config.go b/node/config.go index 47ecd22a3..c09f51747 100644 --- a/node/config.go +++ b/node/config.go @@ -446,22 +446,5 @@ func makeAccountManager(conf *Config) (*accounts.Manager, string, error) { } else { backends = append(backends, ledgerhub) } - am := accounts.NewManager(backends...) - - // Start some logging for the user - changes := make(chan accounts.WalletEvent, 16) - am.Subscribe(changes) - go func() { - for event := range changes { - if event.Arrive { - glog.V(logger.Info).Infof("New wallet appeared: %s", event.Wallet.URL()) - if err := event.Wallet.Open(""); err != nil { - glog.V(logger.Warn).Infof("Failed to open wallet %s: %v", event.Wallet.URL(), err) - } - } else { - glog.V(logger.Info).Infof("Old wallet disappeared: %s", event.Wallet.URL()) - } - } - }() - return am, ephemeral, nil + return accounts.NewManager(backends...), ephemeral, nil } -- cgit v1.2.3