func (w *Wallet) handleConsensusRPCNotifications(chainClient *chain.RPCClient) { for n := range chainClient.Notifications() { var notificationName string var err error switch n := n.(type) { case chain.ClientConnected: log.Infof("The client has successfully connected to dcrd and " + "is now handling websocket notifications") case chain.BlockConnected: notificationName = "blockconnected" err = walletdb.Update(w.db, func(tx walletdb.ReadWriteTx) error { return w.onBlockConnected(tx, n.BlockHeader, n.Transactions) }) case chain.Reorganization: notificationName = "reorganizing" err = w.handleReorganizing(n.OldHash, n.NewHash, n.OldHeight, n.NewHeight) case chain.RelevantTxAccepted: notificationName = "relevanttxaccepted" err = walletdb.Update(w.db, func(dbtx walletdb.ReadWriteTx) error { return w.processTransaction(dbtx, n.Transaction, nil, nil) }) } if err != nil { log.Errorf("Failed to process consensus server notification "+ "(name: `%s`, detail: `%v`)", notificationName, err) } } }