code: func NewHub(scheme string, datadir string) (*Hub, error) {
  	context, err := pcsc.EstablishContext(pcsc.ScopeSystem)
  	if err != nil {
  		return nil, err
  	}
  	hub := &Hub{
  		scheme:  scheme,
  		context: context,
  		datadir: datadir,
  		wallets: make(map[string]*Wallet),
  		quit:    make(chan chan error),
  	}
  	if err := hub.readPairings(); err != nil {
  		return nil, err
  	}
  	hub.refreshWallets()
  	return hub, nil
  }
docs: // NewHub creates a new hardware wallet manager for smartcards.