diff --git a/cmd/geth/main.go b/cmd/geth/main.go index a141b09974..fe2c80defd 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -34,6 +34,7 @@ import ( "github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/internal/debug" "github.com/ethereum/go-ethereum/internal/flags" + "github.com/ethereum/go-ethereum/internal/walletevent" "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/metrics" "github.com/ethereum/go-ethereum/node" @@ -368,7 +369,8 @@ func startNode(ctx *cli.Context, stack *node.Node, isConsole bool) { // Create a client to interact with local geth node. rpcClient := stack.Attach() ethClient := ethclient.NewClient(rpcClient) - walletEventListener := walletevent.NewListener(&log) + logger := log.New(ctx) + walletEventListener := walletevent.NewListener(logger, ethClient) go walletEventListener.Listen(stack.AccountManager().Wallets(), events) diff --git a/internal/walletevent/listener.go b/internal/walletevent/listener.go index 41abaaf764..58d9a44599 100644 --- a/internal/walletevent/listener.go +++ b/internal/walletevent/listener.go @@ -17,12 +17,14 @@ package walletevent import ( + "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/accounts" ) type ( Listener struct { - logger logger + logger logger + ethClient ethereum.ChainStateReader } logger interface { @@ -32,9 +34,10 @@ type ( ) // NewListener creates a new wallet event listener. -func NewListener(logger logger) *Listener { - return Listener{ - logger: logger, +func NewListener(logger logger, ethClient ethereum.ChainStateReader) *Listener { + return &Listener{ + logger: logger, + ethClient: ethClient, } } @@ -63,7 +66,7 @@ func (l *Listener) Listen(wallets []accounts.Wallet, events chan accounts.Wallet } derivationPaths = append(derivationPaths, accounts.DefaultBaseDerivationPath) - event.Wallet.SelfDerive(derivationPaths, ethClient) + event.Wallet.SelfDerive(derivationPaths, l.ethClient) case accounts.WalletDropped: l.logger.Info("Old wallet dropped", "url", event.Wallet.URL())