ledger_secp256k1.go
func (pk PrivKeyLedgerSecp256k1) Sign(msg []byte) (Signature, error) {
	dev, err := getLedger()
	if err != nil {
		return nil, err
	}
	sig, err := signLedgerSecp256k1(dev, pk.Path, msg)
	if err != nil {
		return nil, err
	}
	return sig, nil
}
func (pk PrivKeyLedgerSecp256k1) Sign(msg []byte) (Signature, error) {
	dev, err := getLedger()
	if err != nil {
		return nil, err
	}
	sig, err := signLedgerSecp256k1(dev, pk.Path, msg)
	if err != nil {
		return nil, err
	}
	return sig, nil
}
// Sign calls the ledger and stores the PubKey for future use
//
// Communication is checked on NewPrivKeyLedger and PrivKeyFromBytes,
// returning an error, so this should only trigger if the privkey is held
// in memory for a while before use.