code: func (ks *KeyStore) Subscribe(sink chan<- accounts.WalletEvent) event.Subscription {
  	// We need the mutex to reliably start/stop the update loop
  	ks.mu.Lock()
  	defer ks.mu.Unlock()
  
  	// Subscribe the caller and track the subscriber count
  	sub := ks.updateScope.Track(ks.updateFeed.Subscribe(sink))
  
  	// Subscribers require an active notification loop, start it
  	if !ks.updating {
  		ks.updating = true
  		go ks.updater()
  	}
  	return sub
  }
docs: // Subscribe implements accounts.Backend, creating an async subscription to
  // receive notifications on the addition or removal of keystore wallets.