code: func (w *Wallet) pair(puk []byte) error {
  	if w.session.paired() {
  		return fmt.Errorf("Wallet already paired")
  	}
  	pairing, err := w.session.pair(puk)
  	if err != nil {
  		return err
  	}
  	if err = w.Hub.setPairing(w, &pairing); err != nil {
  		return err
  	}
  	return w.session.authenticate(pairing)
  }
docs: // pair is an internal (unlocked) function for establishing a new pairing
  // with the wallet.