ledger_secp256k1.go
func (pk PrivKeyLedgerSecp256k1) getPubKey() (key PubKey, err error) {
	dev, err := getLedger()
	if err != nil {
		return key, fmt.Errorf("cannot connect to Ledger device - error: %v", err)
	}
	key, err = pubkeyLedgerSecp256k1(dev, pk.Path)
	if err != nil {
		return key, fmt.Errorf("please open Cosmos app on the Ledger device - error: %v", err)
	}
	return key, err
}
func (pk PrivKeyLedgerSecp256k1) getPubKey() (key PubKey, err error) {
	dev, err := getLedger()
	if err != nil {
		return key, fmt.Errorf("cannot connect to Ledger device - error: %v", err)
	}
	key, err = pubkeyLedgerSecp256k1(dev, pk.Path)
	if err != nil {
		return key, fmt.Errorf("please open Cosmos app on the Ledger device - error: %v", err)
	}
	return key, err
}
// getPubKey reads the pubkey the ledger itself
// since this involves IO, it may return an error, which is not exposed
// in the PubKey interface, so this function allows better error handling