def translate_exception(exp: Exception) -> Exception:
    """Translate a CommException into something more useful to the user"""
    string_err = str(exp)
    if "No dongle found" in string_err:
        return Exception("Ledger Nano not found")
    elif "6804" in string_err:
        return Exception("Ledger appears to be locked?")
    elif any(x in string_err for x in ["6700", "6d00"]):
        return Exception("Please open the Ethereum app on your Ledger device")
    elif "6a80" in string_err:
        return Exception(
            "General failure: Invalid transaction, contract data not allowed in settings, or"
            " something else?"
        )
    else:
        return exp