crypticorn 2.1.3__tar.gz → 2.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {crypticorn-2.1.3 → crypticorn-2.1.4}/PKG-INFO +1 -1
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/common/errors.py +216 -253
- crypticorn-2.1.4/crypticorn/common/sorter.py +36 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/__init__.py +1 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/api/now_payments_api.py +3 -16
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/api/payments_api.py +0 -42
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/api/products_api.py +18 -57
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/configuration.py +2 -1
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/__init__.py +1 -0
- crypticorn-2.1.4/crypticorn/pay/client/models/body_create_now_invoice.py +98 -0
- crypticorn-2.1.4/crypticorn/pay/client/models/body_create_product.py +98 -0
- crypticorn-2.1.4/crypticorn/pay/client/models/body_get_products.py +87 -0
- crypticorn-2.1.4/crypticorn/pay/client/models/body_handle_now_webhook.py +98 -0
- crypticorn-2.1.4/crypticorn/pay/client/models/body_update_product.py +98 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_webhook_payload.py +1 -1
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/product_model.py +9 -0
- crypticorn-2.1.4/crypticorn/pay/client/models/scope.py +56 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/api_keys_api.py +5 -70
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/bots_api.py +4 -56
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/exchanges_api.py +2 -19
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/futures_trading_panel_api.py +6 -74
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/notifications_api.py +6 -87
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/orders_api.py +2 -15
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/strategies_api.py +4 -56
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/trading_actions_api.py +1 -14
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/configuration.py +2 -1
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/api_error_identifier.py +4 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn.egg-info/PKG-INFO +1 -1
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn.egg-info/SOURCES.txt +7 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/pyproject.toml +1 -1
- {crypticorn-2.1.3 → crypticorn-2.1.4}/tests/test_auth_client.py +2 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/README.md +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/api/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/api/admin_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/api/auth_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/api/service_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/api/user_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/api/wallet_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/api_client.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/api_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/configuration.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/exceptions.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/add_wallet200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/add_wallet_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/authorize_user200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/authorize_user200_response_auth.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/authorize_user_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/create_api_key200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/create_api_key_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/create_user_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/get_api_keys200_response_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_sale_round.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet_vesting_wallets_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_data_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_user_value.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/logout_default_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/logout_default_response_issues_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/oauth_callback200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/oauth_callback200_response_user.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/refresh_token_info200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/refresh_token_info200_response_user_session.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/resend_verification_email_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/revoke_user_tokens_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/rotate_tokens200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/token_info200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/unlink_wallet_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/update_user_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/user_reset_password_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/user_set_password_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_email200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_email200_response_auth.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_email200_response_auth_auth.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_email_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_wallet_request.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/wallet_verified200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/models/whoami200_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/py.typed +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/client/rest.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/auth/main.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/client.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/common/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/common/auth.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/common/auth_client.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/common/scopes.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/common/urls.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/api/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/api/data_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/api/models_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/api/status_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/api_client.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/api_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/configuration.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/exceptions.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/coins.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/data_download_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/data_info.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/data_value_value_value_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/data_version.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/download_links.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/evaluation.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/evaluation_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/feature_size.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/http_validation_error.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/model_create.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/model_status.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/model_update.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/target.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/target_type.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/validation_error.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/models/validation_error_loc_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/py.typed +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/client/rest.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/hive/main.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/api/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/api/funding_rates_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/api/health_check_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/api/ohlcv_data_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/api/symbols_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/api/udf_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/api_client.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/api_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/configuration.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/exceptions.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/base_response_health_check_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/base_response_list_funding_rate_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/base_response_list_str.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/base_response_ohlcv_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/error_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/exchange.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/funding_rate_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/health_check_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/history_error_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/history_no_data_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/history_success_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/http_validation_error.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/market.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/ohlcv_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/resolution.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/response_get_history_udf_history_get.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/search_symbol_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/sort_direction.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/symbol_group_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/symbol_info_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/symbol_type.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/timeframe.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/udf_config_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/validation_error.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/models/validation_error_loc_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/py.typed +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/client/rest.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/klines/main.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/api/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/api/status_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/api_client.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/api_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/exceptions.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/api_status_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/combined_payment_history.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/create_invoice_req.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/create_invoice_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/currency.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/estimate_price_req.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/estimate_price_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/get_currencies_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/get_payment_status_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/get_payments_list_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/http_validation_error.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/min_amount_req.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/min_amount_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_api_status_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_create_invoice_req.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_create_invoice_res.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_fee_structure.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_payment_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_payment_status.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/payment.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/payment_status.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/product.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/product_subs_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/services.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/unified_payment_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/validation_error.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/models/validation_error_loc_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/py.typed +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/client/rest.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/pay/main.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api/status_api.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api_client.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/api_response.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/exceptions.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/__init__.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/action_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/api_error_level.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/api_error_type.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/api_key_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/bot_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/bot_status.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/exchange.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/execution_ids.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/futures_balance.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/futures_trading_action.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/http_validation_error.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/margin_mode.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/market_type.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/notification_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/notification_type.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/order_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/order_status.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/post_futures_action.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/strategy_exchange_info.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/strategy_model.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/strategy_model_input.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/strategy_model_output.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/tpsl.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/trading_action_type.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/update_notification.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/validation_error.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/models/validation_error_loc_inner.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/py.typed +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/client/rest.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn/trade/main.py +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn.egg-info/dependency_links.txt +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn.egg-info/requires.txt +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/crypticorn.egg-info/top_level.txt +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/requirements/dev.txt +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/requirements/main.txt +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/requirements/test.txt +0 -0
- {crypticorn-2.1.3 → crypticorn-2.1.4}/setup.cfg +0 -0
@@ -17,218 +17,189 @@ class ApiErrorType(str, Enum):
|
|
17
17
|
class ApiErrorIdentifier(str, Enum):
|
18
18
|
"""API error identifiers"""
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
USER_FROZEN = "user_account_is_frozen"
|
27
|
-
RATE_LIMIT = "rate_limit_exceeded"
|
28
|
-
INVALID_PARAMETER = "invalid_parameter_provided"
|
29
|
-
REQUEST_SCOPE_EXCEEDED = "request_scope_limit_exceeded"
|
20
|
+
API_KEY_ALREADY_EXISTS = "api_key_already_exists"
|
21
|
+
BLACK_SWAN = "black_swan"
|
22
|
+
BOT_ALREADY_DELETED = "bot_already_deleted"
|
23
|
+
BOT_DISABLED = "bot_disabled"
|
24
|
+
BOT_STOPPING_COMPLETED = "bot_stopping_completed"
|
25
|
+
CLIENT_ORDER_ID_REPEATED = "client_order_id_already_exists"
|
30
26
|
CONTENT_TYPE_ERROR = "invalid_content_type"
|
31
|
-
|
32
|
-
|
27
|
+
DELETE_BOT_ERROR = "delete_bot_error"
|
28
|
+
EXCHANGE_API_KEY_IN_USE = "exchange_api_key_in_use"
|
29
|
+
EXCHANGE_INVALID_SIGNATURE = "exchange_invalid_signature"
|
30
|
+
EXCHANGE_INVALID_TIMESTAMP = "exchange_invalid_timestamp"
|
31
|
+
EXCHANGE_IP_RESTRICTED = "exchange_ip_address_is_not_authorized"
|
32
|
+
EXCHANGE_MAINTENANCE = "exchange_system_under_maintenance"
|
33
|
+
EXCHANGE_RATE_LIMIT = "exchange_rate_limit_exceeded"
|
34
|
+
EXCHANGE_SERVICE_UNAVAILABLE = "exchange_service_temporarily_unavailable"
|
35
|
+
EXCHANGE_SYSTEM_BUSY = "exchange_system_is_busy"
|
36
|
+
EXCHANGE_SYSTEM_CONFIG_ERROR = "exchange_system_configuration_error"
|
37
|
+
EXCHANGE_SYSTEM_ERROR = "exchange_internal_system_error"
|
38
|
+
EXCHANGE_USER_FROZEN = "exchange_user_account_is_frozen"
|
39
|
+
EXCHANGE_PERMISSION_DENIED = "insufficient_permissions_spot_and_futures_required"
|
40
|
+
HEDGE_MODE_NOT_ACTIVE = "hedge_mode_not_active"
|
41
|
+
HTTP_ERROR = "http_request_error"
|
42
|
+
INSUFFICIENT_BALANCE = "insufficient_balance"
|
43
|
+
INSUFFICIENT_MARGIN = "insufficient_margin"
|
44
|
+
INSUFFICIENT_SCOPES = "insufficient_scopes"
|
45
|
+
INVALID_API_KEY = "invalid_api_key"
|
46
|
+
INVALID_BEARER = "invalid_bearer"
|
47
|
+
INVALID_EXCHANGE_API_KEY = "invalid_exchange_api_key"
|
48
|
+
INVALID_MARGIN_MODE = "invalid_margin_mode"
|
49
|
+
INVALID_PARAMETER = "invalid_parameter_provided"
|
50
|
+
JWT_EXPIRED = "jwt_expired"
|
51
|
+
LEVERAGE_EXCEEDED = "leverage_limit_exceeded"
|
52
|
+
LIQUIDATION_PRICE_VIOLATION = "order_violates_liquidation_price_constraints"
|
53
|
+
NO_CREDENTIALS = "no_credentials"
|
54
|
+
OBJECT_NOT_FOUND = "object_not_found"
|
33
55
|
ORDER_ALREADY_FILLED = "order_is_already_filled"
|
34
56
|
ORDER_IN_PROCESS = "order_is_being_processed"
|
35
57
|
ORDER_LIMIT_EXCEEDED = "order_quantity_limit_exceeded"
|
58
|
+
ORDER_NOT_FOUND = "order_does_not_exist"
|
36
59
|
ORDER_PRICE_INVALID = "order_price_is_invalid"
|
37
|
-
|
38
|
-
|
39
|
-
CLIENT_ORDER_ID_REPEATED = "client_order_id_already_exists"
|
40
|
-
|
41
|
-
POSITION_NOT_FOUND = "position_does_not_exist"
|
60
|
+
ORDER_SIZE_TOO_LARGE = "order_size_too_large"
|
61
|
+
ORDER_SIZE_TOO_SMALL = "order_size_too_small"
|
42
62
|
POSITION_LIMIT_EXCEEDED = "position_limit_exceeded"
|
63
|
+
POSITION_NOT_FOUND = "position_does_not_exist"
|
43
64
|
POSITION_SUSPENDED = "position_opening_temporarily_suspended"
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
LEVERAGE_EXCEEDED = "leverage_limit_exceeded"
|
65
|
+
POST_ONLY_REJECTED = "post_only_order_would_immediately_match"
|
66
|
+
REQUEST_SCOPE_EXCEEDED = "request_scope_limit_exceeded"
|
48
67
|
RISK_LIMIT_EXCEEDED = "risk_limit_exceeded"
|
49
|
-
LIQUIDATION_PRICE_VIOLATION = "order_violates_liquidation_price_constraints"
|
50
|
-
INVALID_MARGIN_MODE = "invalid_margin_mode"
|
51
|
-
|
52
|
-
SYSTEM_ERROR = "internal_system_error"
|
53
|
-
SYSTEM_CONFIG_ERROR = "system_configuration_error"
|
54
|
-
SERVICE_UNAVAILABLE = "service_temporarily_unavailable"
|
55
|
-
SYSTEM_BUSY = "system_is_busy_please_try_again_later"
|
56
|
-
MAINTENANCE = "system_under_maintenance"
|
57
68
|
RPC_TIMEOUT = "rpc_timeout"
|
58
69
|
SETTLEMENT_IN_PROGRESS = "system_settlement_in_process"
|
59
|
-
|
60
|
-
|
70
|
+
STRATEGY_DISABLED = "strategy_disabled"
|
71
|
+
SUCCESS = "success"
|
72
|
+
SYMBOL_NOT_FOUND = "symbol_does_not_exist"
|
61
73
|
TRADING_LOCKED = "trading_has_been_locked"
|
62
|
-
|
74
|
+
TRADING_ACTION_EXPIRED = "trading_action_expired"
|
75
|
+
TRADING_ACTION_SKIPPED = "trading_action_skipped"
|
76
|
+
TRADING_SUSPENDED = "trading_is_suspended"
|
63
77
|
UNKNOWN_ERROR = "unknown_error_occurred"
|
64
|
-
|
65
|
-
BLACK_SWAN = "black_swan"
|
66
|
-
|
67
|
-
# our bot errors
|
68
|
-
ACTION_EXPIRED = "trading_action_expired"
|
69
|
-
ACTION_SKIPPED = "trading_action_skipped"
|
70
|
-
BOT_DISABLED = "bot_disabled"
|
71
|
-
ORDER_SIZE_TOO_SMALL = "order_size_too_small"
|
72
|
-
ORDER_SIZE_TOO_LARGE = "order_size_too_large"
|
73
|
-
HEDGE_MODE_NOT_ACTIVE = "hedge_mode_not_active"
|
74
|
-
|
75
|
-
# our API errors
|
76
|
-
API_KEY_ALREADY_EXISTS = "api_key_already_exists"
|
77
|
-
DELETE_BOT_ERROR = "delete_bot_error"
|
78
|
-
JWT_EXPIRED = "jwt_expired"
|
79
|
-
BOT_STOPPING_COMPLETED = "bot_stopping_completed"
|
80
|
-
OBJECT_NOT_FOUND = "object_not_found"
|
81
|
-
STRATEGY_DISABLED = "strategy_disabled"
|
82
|
-
API_KEY_IN_USE = "api_key_in_use_by_bots"
|
83
|
-
BOT_ALREADY_DELETED = "bot_already_deleted"
|
84
|
-
|
85
|
-
# our auth errors
|
86
|
-
INVALID_API_KEY = "invalid_api_key"
|
87
|
-
INVALID_BEARER = "invalid_bearer"
|
88
|
-
NO_CREDENTIALS = "no_credentials"
|
89
|
-
INSUFFICIENT_SCOPES = "insufficient_scopes"
|
78
|
+
URL_NOT_FOUND = "requested_resource_not_found"
|
90
79
|
|
91
80
|
|
92
81
|
class ApiErrorLevel(str, Enum):
|
82
|
+
"""API error levels"""
|
83
|
+
|
93
84
|
ERROR = "error"
|
94
|
-
SUCCESS = "success"
|
95
85
|
INFO = "info"
|
86
|
+
SUCCESS = "success"
|
96
87
|
WARNING = "warning"
|
97
88
|
|
98
89
|
|
99
90
|
class ApiError(Enum):
|
100
91
|
"""API error codes"""
|
101
92
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
UNAUTHORIZED = (
|
106
|
-
ApiErrorIdentifier.UNAUTHORIZED,
|
107
|
-
ApiErrorType.SERVER_ERROR,
|
108
|
-
ApiErrorLevel.ERROR,
|
109
|
-
)
|
110
|
-
INVALID_SIGNATURE = (
|
111
|
-
ApiErrorIdentifier.INVALID_SIGNATURE,
|
112
|
-
ApiErrorType.SERVER_ERROR,
|
93
|
+
API_KEY_ALREADY_EXISTS = (
|
94
|
+
ApiErrorIdentifier.API_KEY_ALREADY_EXISTS,
|
95
|
+
ApiErrorType.USER_ERROR,
|
113
96
|
ApiErrorLevel.ERROR,
|
114
97
|
)
|
115
|
-
|
116
|
-
ApiErrorIdentifier.
|
117
|
-
ApiErrorType.
|
118
|
-
ApiErrorLevel.
|
98
|
+
BLACK_SWAN = (
|
99
|
+
ApiErrorIdentifier.BLACK_SWAN,
|
100
|
+
ApiErrorType.USER_ERROR,
|
101
|
+
ApiErrorLevel.INFO,
|
119
102
|
)
|
120
|
-
|
121
|
-
ApiErrorIdentifier.
|
103
|
+
BOT_ALREADY_DELETED = (
|
104
|
+
ApiErrorIdentifier.BOT_ALREADY_DELETED,
|
122
105
|
ApiErrorType.SERVER_ERROR,
|
123
106
|
ApiErrorLevel.ERROR,
|
124
107
|
)
|
125
|
-
|
126
|
-
ApiErrorIdentifier.
|
127
|
-
ApiErrorType.USER_ERROR,
|
128
|
-
ApiErrorLevel.ERROR,
|
129
|
-
)
|
130
|
-
USER_FROZEN = (
|
131
|
-
ApiErrorIdentifier.USER_FROZEN,
|
108
|
+
BOT_DISABLED = (
|
109
|
+
ApiErrorIdentifier.BOT_DISABLED,
|
132
110
|
ApiErrorType.USER_ERROR,
|
133
|
-
ApiErrorLevel.
|
111
|
+
ApiErrorLevel.WARNING,
|
134
112
|
)
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
ApiErrorType.EXCHANGE_ERROR,
|
140
|
-
ApiErrorLevel.ERROR,
|
113
|
+
BOT_STOPPING_COMPLETED = (
|
114
|
+
ApiErrorIdentifier.BOT_STOPPING_COMPLETED,
|
115
|
+
ApiErrorType.NO_ERROR,
|
116
|
+
ApiErrorLevel.INFO,
|
141
117
|
)
|
142
|
-
|
143
|
-
|
144
|
-
INVALID_PARAMETER = (
|
145
|
-
ApiErrorIdentifier.INVALID_PARAMETER,
|
118
|
+
CLIENT_ORDER_ID_REPEATED = (
|
119
|
+
ApiErrorIdentifier.CLIENT_ORDER_ID_REPEATED,
|
146
120
|
ApiErrorType.SERVER_ERROR,
|
147
121
|
ApiErrorLevel.ERROR,
|
148
122
|
)
|
149
|
-
REQUEST_SCOPE_EXCEEDED = (
|
150
|
-
ApiErrorIdentifier.REQUEST_SCOPE_EXCEEDED,
|
151
|
-
ApiErrorType.EXCHANGE_ERROR,
|
152
|
-
ApiErrorLevel.ERROR,
|
153
|
-
)
|
154
123
|
CONTENT_TYPE_ERROR = (
|
155
124
|
ApiErrorIdentifier.CONTENT_TYPE_ERROR,
|
156
125
|
ApiErrorType.SERVER_ERROR,
|
157
126
|
ApiErrorLevel.ERROR,
|
158
127
|
)
|
159
|
-
|
160
|
-
ApiErrorIdentifier.
|
128
|
+
DELETE_BOT_ERROR = (
|
129
|
+
ApiErrorIdentifier.DELETE_BOT_ERROR,
|
161
130
|
ApiErrorType.SERVER_ERROR,
|
162
131
|
ApiErrorLevel.ERROR,
|
163
132
|
)
|
164
|
-
|
165
|
-
ApiErrorIdentifier.
|
133
|
+
EXCHANGE_INVALID_SIGNATURE = (
|
134
|
+
ApiErrorIdentifier.EXCHANGE_INVALID_SIGNATURE,
|
166
135
|
ApiErrorType.SERVER_ERROR,
|
167
136
|
ApiErrorLevel.ERROR,
|
168
137
|
)
|
169
|
-
|
170
|
-
|
171
|
-
ORDER_NOT_FOUND = (
|
172
|
-
ApiErrorIdentifier.ORDER_NOT_FOUND,
|
138
|
+
EXCHANGE_INVALID_TIMESTAMP = (
|
139
|
+
ApiErrorIdentifier.EXCHANGE_INVALID_TIMESTAMP,
|
173
140
|
ApiErrorType.SERVER_ERROR,
|
174
141
|
ApiErrorLevel.ERROR,
|
175
142
|
)
|
176
|
-
|
177
|
-
ApiErrorIdentifier.
|
143
|
+
EXCHANGE_IP_RESTRICTED = (
|
144
|
+
ApiErrorIdentifier.EXCHANGE_IP_RESTRICTED,
|
178
145
|
ApiErrorType.SERVER_ERROR,
|
179
|
-
ApiErrorLevel.
|
146
|
+
ApiErrorLevel.ERROR,
|
180
147
|
)
|
181
|
-
|
182
|
-
ApiErrorIdentifier.
|
183
|
-
ApiErrorType.
|
184
|
-
ApiErrorLevel.
|
148
|
+
EXCHANGE_API_KEY_IN_USE = (
|
149
|
+
ApiErrorIdentifier.EXCHANGE_API_KEY_IN_USE,
|
150
|
+
ApiErrorType.SERVER_ERROR,
|
151
|
+
ApiErrorLevel.ERROR,
|
185
152
|
)
|
186
|
-
|
187
|
-
ApiErrorIdentifier.
|
153
|
+
EXCHANGE_MAINTENANCE = (
|
154
|
+
ApiErrorIdentifier.EXCHANGE_MAINTENANCE,
|
155
|
+
ApiErrorType.EXCHANGE_ERROR,
|
156
|
+
ApiErrorLevel.ERROR,
|
157
|
+
)
|
158
|
+
EXCHANGE_PERMISSION_DENIED = (
|
159
|
+
ApiErrorIdentifier.EXCHANGE_PERMISSION_DENIED,
|
188
160
|
ApiErrorType.USER_ERROR,
|
189
161
|
ApiErrorLevel.ERROR,
|
190
162
|
)
|
191
|
-
|
192
|
-
ApiErrorIdentifier.
|
193
|
-
ApiErrorType.
|
163
|
+
EXCHANGE_RATE_LIMIT = (
|
164
|
+
ApiErrorIdentifier.EXCHANGE_RATE_LIMIT,
|
165
|
+
ApiErrorType.EXCHANGE_ERROR,
|
194
166
|
ApiErrorLevel.ERROR,
|
195
167
|
)
|
196
|
-
|
197
|
-
ApiErrorIdentifier.
|
198
|
-
ApiErrorType.
|
168
|
+
EXCHANGE_SERVICE_UNAVAILABLE = (
|
169
|
+
ApiErrorIdentifier.EXCHANGE_SERVICE_UNAVAILABLE,
|
170
|
+
ApiErrorType.EXCHANGE_ERROR,
|
199
171
|
ApiErrorLevel.ERROR,
|
200
172
|
)
|
201
|
-
|
202
|
-
ApiErrorIdentifier.
|
203
|
-
ApiErrorType.
|
204
|
-
ApiErrorLevel.
|
173
|
+
EXCHANGE_SYSTEM_BUSY = (
|
174
|
+
ApiErrorIdentifier.EXCHANGE_SYSTEM_BUSY,
|
175
|
+
ApiErrorType.EXCHANGE_ERROR,
|
176
|
+
ApiErrorLevel.ERROR,
|
205
177
|
)
|
206
|
-
|
207
|
-
ApiErrorIdentifier.
|
208
|
-
ApiErrorType.
|
178
|
+
EXCHANGE_SYSTEM_CONFIG_ERROR = (
|
179
|
+
ApiErrorIdentifier.EXCHANGE_SYSTEM_CONFIG_ERROR,
|
180
|
+
ApiErrorType.EXCHANGE_ERROR,
|
209
181
|
ApiErrorLevel.ERROR,
|
210
182
|
)
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
) # not an error because user can close a position manually which we don't know about
|
219
|
-
POSITION_LIMIT_EXCEEDED = (
|
220
|
-
ApiErrorIdentifier.POSITION_LIMIT_EXCEEDED,
|
183
|
+
EXCHANGE_SYSTEM_ERROR = (
|
184
|
+
ApiErrorIdentifier.EXCHANGE_SYSTEM_ERROR,
|
185
|
+
ApiErrorType.EXCHANGE_ERROR,
|
186
|
+
ApiErrorLevel.ERROR,
|
187
|
+
)
|
188
|
+
EXCHANGE_USER_FROZEN = (
|
189
|
+
ApiErrorIdentifier.EXCHANGE_USER_FROZEN,
|
221
190
|
ApiErrorType.USER_ERROR,
|
222
191
|
ApiErrorLevel.ERROR,
|
223
192
|
)
|
224
|
-
|
225
|
-
ApiErrorIdentifier.
|
193
|
+
HEDGE_MODE_NOT_ACTIVE = (
|
194
|
+
ApiErrorIdentifier.HEDGE_MODE_NOT_ACTIVE,
|
195
|
+
ApiErrorType.USER_ERROR,
|
196
|
+
ApiErrorLevel.ERROR,
|
197
|
+
)
|
198
|
+
HTTP_ERROR = (
|
199
|
+
ApiErrorIdentifier.HTTP_ERROR,
|
226
200
|
ApiErrorType.EXCHANGE_ERROR,
|
227
201
|
ApiErrorLevel.ERROR,
|
228
202
|
)
|
229
|
-
# FUTURES_BRAWL_RESTRICTED = "Operation restricted for Futures Brawl", ApiErrorType.USER_ERROR
|
230
|
-
|
231
|
-
# Balance/Margin
|
232
203
|
INSUFFICIENT_BALANCE = (
|
233
204
|
ApiErrorIdentifier.INSUFFICIENT_BALANCE,
|
234
205
|
ApiErrorType.USER_ERROR,
|
@@ -239,20 +210,23 @@ class ApiError(Enum):
|
|
239
210
|
ApiErrorType.USER_ERROR,
|
240
211
|
ApiErrorLevel.ERROR,
|
241
212
|
)
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
ApiErrorIdentifier.LEVERAGE_EXCEEDED,
|
246
|
-
ApiErrorType.SERVER_ERROR,
|
213
|
+
INSUFFICIENT_SCOPES = (
|
214
|
+
ApiErrorIdentifier.INSUFFICIENT_SCOPES,
|
215
|
+
ApiErrorType.USER_ERROR,
|
247
216
|
ApiErrorLevel.ERROR,
|
248
217
|
)
|
249
|
-
|
250
|
-
ApiErrorIdentifier.
|
251
|
-
ApiErrorType.
|
218
|
+
INVALID_API_KEY = (
|
219
|
+
ApiErrorIdentifier.INVALID_API_KEY,
|
220
|
+
ApiErrorType.USER_ERROR,
|
252
221
|
ApiErrorLevel.ERROR,
|
253
222
|
)
|
254
|
-
|
255
|
-
ApiErrorIdentifier.
|
223
|
+
INVALID_BEARER = (
|
224
|
+
ApiErrorIdentifier.INVALID_BEARER,
|
225
|
+
ApiErrorType.USER_ERROR,
|
226
|
+
ApiErrorLevel.ERROR,
|
227
|
+
)
|
228
|
+
INVALID_EXCHANGE_API_KEY = (
|
229
|
+
ApiErrorIdentifier.INVALID_EXCHANGE_API_KEY,
|
256
230
|
ApiErrorType.SERVER_ERROR,
|
257
231
|
ApiErrorLevel.ERROR,
|
258
232
|
)
|
@@ -261,81 +235,63 @@ class ApiError(Enum):
|
|
261
235
|
ApiErrorType.SERVER_ERROR,
|
262
236
|
ApiErrorLevel.ERROR,
|
263
237
|
)
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
ApiErrorIdentifier.SYSTEM_ERROR,
|
268
|
-
ApiErrorType.EXCHANGE_ERROR,
|
238
|
+
INVALID_PARAMETER = (
|
239
|
+
ApiErrorIdentifier.INVALID_PARAMETER,
|
240
|
+
ApiErrorType.SERVER_ERROR,
|
269
241
|
ApiErrorLevel.ERROR,
|
270
242
|
)
|
271
|
-
|
272
|
-
ApiErrorIdentifier.
|
273
|
-
ApiErrorType.
|
243
|
+
JWT_EXPIRED = (
|
244
|
+
ApiErrorIdentifier.JWT_EXPIRED,
|
245
|
+
ApiErrorType.SERVER_ERROR,
|
274
246
|
ApiErrorLevel.ERROR,
|
275
247
|
)
|
276
|
-
|
277
|
-
ApiErrorIdentifier.
|
278
|
-
ApiErrorType.
|
248
|
+
LEVERAGE_EXCEEDED = (
|
249
|
+
ApiErrorIdentifier.LEVERAGE_EXCEEDED,
|
250
|
+
ApiErrorType.SERVER_ERROR,
|
279
251
|
ApiErrorLevel.ERROR,
|
280
252
|
)
|
281
|
-
|
282
|
-
ApiErrorIdentifier.
|
283
|
-
ApiErrorType.
|
253
|
+
LIQUIDATION_PRICE_VIOLATION = (
|
254
|
+
ApiErrorIdentifier.LIQUIDATION_PRICE_VIOLATION,
|
255
|
+
ApiErrorType.SERVER_ERROR,
|
284
256
|
ApiErrorLevel.ERROR,
|
285
257
|
)
|
286
|
-
|
287
|
-
ApiErrorIdentifier.
|
288
|
-
ApiErrorType.
|
258
|
+
NO_CREDENTIALS = (
|
259
|
+
ApiErrorIdentifier.NO_CREDENTIALS,
|
260
|
+
ApiErrorType.USER_ERROR,
|
289
261
|
ApiErrorLevel.ERROR,
|
290
262
|
)
|
291
|
-
|
292
|
-
ApiErrorIdentifier.
|
293
|
-
ApiErrorType.
|
263
|
+
OBJECT_NOT_FOUND = (
|
264
|
+
ApiErrorIdentifier.OBJECT_NOT_FOUND,
|
265
|
+
ApiErrorType.SERVER_ERROR,
|
294
266
|
ApiErrorLevel.ERROR,
|
295
267
|
)
|
296
|
-
|
297
|
-
ApiErrorIdentifier.
|
298
|
-
ApiErrorType.
|
299
|
-
ApiErrorLevel.
|
268
|
+
ORDER_ALREADY_FILLED = (
|
269
|
+
ApiErrorIdentifier.ORDER_ALREADY_FILLED,
|
270
|
+
ApiErrorType.SERVER_ERROR,
|
271
|
+
ApiErrorLevel.INFO,
|
300
272
|
)
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
ApiErrorType.EXCHANGE_ERROR,
|
306
|
-
ApiErrorLevel.ERROR,
|
273
|
+
ORDER_IN_PROCESS = (
|
274
|
+
ApiErrorIdentifier.ORDER_IN_PROCESS,
|
275
|
+
ApiErrorType.NO_ERROR,
|
276
|
+
ApiErrorLevel.INFO,
|
307
277
|
)
|
308
|
-
|
309
|
-
ApiErrorIdentifier.
|
310
|
-
ApiErrorType.
|
278
|
+
ORDER_LIMIT_EXCEEDED = (
|
279
|
+
ApiErrorIdentifier.ORDER_LIMIT_EXCEEDED,
|
280
|
+
ApiErrorType.USER_ERROR,
|
311
281
|
ApiErrorLevel.ERROR,
|
312
282
|
)
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
ApiErrorIdentifier.UNKNOWN_ERROR,
|
317
|
-
ApiErrorType.EXCHANGE_ERROR,
|
283
|
+
ORDER_NOT_FOUND = (
|
284
|
+
ApiErrorIdentifier.ORDER_NOT_FOUND,
|
285
|
+
ApiErrorType.SERVER_ERROR,
|
318
286
|
ApiErrorLevel.ERROR,
|
319
287
|
)
|
320
|
-
|
321
|
-
ApiErrorIdentifier.
|
322
|
-
ApiErrorType.
|
288
|
+
ORDER_PRICE_INVALID = (
|
289
|
+
ApiErrorIdentifier.ORDER_PRICE_INVALID,
|
290
|
+
ApiErrorType.SERVER_ERROR,
|
323
291
|
ApiErrorLevel.ERROR,
|
324
292
|
)
|
325
|
-
|
326
|
-
|
327
|
-
ACTION_EXPIRED = (
|
328
|
-
ApiErrorIdentifier.ACTION_EXPIRED,
|
329
|
-
ApiErrorType.NO_ERROR,
|
330
|
-
ApiErrorLevel.INFO,
|
331
|
-
)
|
332
|
-
ACTION_SKIPPED = (
|
333
|
-
ApiErrorIdentifier.ACTION_SKIPPED,
|
334
|
-
ApiErrorType.NO_ERROR,
|
335
|
-
ApiErrorLevel.INFO,
|
336
|
-
)
|
337
|
-
BOT_DISABLED = (
|
338
|
-
ApiErrorIdentifier.BOT_DISABLED,
|
293
|
+
ORDER_SIZE_TOO_LARGE = (
|
294
|
+
ApiErrorIdentifier.ORDER_SIZE_TOO_LARGE,
|
339
295
|
ApiErrorType.USER_ERROR,
|
340
296
|
ApiErrorLevel.WARNING,
|
341
297
|
)
|
@@ -344,41 +300,44 @@ class ApiError(Enum):
|
|
344
300
|
ApiErrorType.USER_ERROR,
|
345
301
|
ApiErrorLevel.WARNING,
|
346
302
|
)
|
347
|
-
|
348
|
-
ApiErrorIdentifier.
|
349
|
-
ApiErrorType.USER_ERROR,
|
350
|
-
ApiErrorLevel.WARNING,
|
351
|
-
)
|
352
|
-
HEDGE_MODE_NOT_ACTIVE = (
|
353
|
-
ApiErrorIdentifier.HEDGE_MODE_NOT_ACTIVE,
|
303
|
+
POSITION_LIMIT_EXCEEDED = (
|
304
|
+
ApiErrorIdentifier.POSITION_LIMIT_EXCEEDED,
|
354
305
|
ApiErrorType.USER_ERROR,
|
355
306
|
ApiErrorLevel.ERROR,
|
356
307
|
)
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
308
|
+
POSITION_NOT_FOUND = (
|
309
|
+
ApiErrorIdentifier.POSITION_NOT_FOUND,
|
310
|
+
ApiErrorType.NO_ERROR,
|
311
|
+
ApiErrorLevel.INFO,
|
312
|
+
)
|
313
|
+
POSITION_SUSPENDED = (
|
314
|
+
ApiErrorIdentifier.POSITION_SUSPENDED,
|
315
|
+
ApiErrorType.EXCHANGE_ERROR,
|
362
316
|
ApiErrorLevel.ERROR,
|
363
317
|
)
|
364
|
-
|
365
|
-
ApiErrorIdentifier.
|
318
|
+
POST_ONLY_REJECTED = (
|
319
|
+
ApiErrorIdentifier.POST_ONLY_REJECTED,
|
366
320
|
ApiErrorType.SERVER_ERROR,
|
367
321
|
ApiErrorLevel.ERROR,
|
368
322
|
)
|
369
|
-
|
370
|
-
ApiErrorIdentifier.
|
323
|
+
REQUEST_SCOPE_EXCEEDED = (
|
324
|
+
ApiErrorIdentifier.REQUEST_SCOPE_EXCEEDED,
|
325
|
+
ApiErrorType.EXCHANGE_ERROR,
|
326
|
+
ApiErrorLevel.ERROR,
|
327
|
+
)
|
328
|
+
RISK_LIMIT_EXCEEDED = (
|
329
|
+
ApiErrorIdentifier.RISK_LIMIT_EXCEEDED,
|
371
330
|
ApiErrorType.SERVER_ERROR,
|
372
331
|
ApiErrorLevel.ERROR,
|
373
332
|
)
|
374
|
-
|
375
|
-
ApiErrorIdentifier.
|
376
|
-
ApiErrorType.
|
377
|
-
ApiErrorLevel.
|
333
|
+
RPC_TIMEOUT = (
|
334
|
+
ApiErrorIdentifier.RPC_TIMEOUT,
|
335
|
+
ApiErrorType.EXCHANGE_ERROR,
|
336
|
+
ApiErrorLevel.ERROR,
|
378
337
|
)
|
379
|
-
|
380
|
-
ApiErrorIdentifier.
|
381
|
-
ApiErrorType.
|
338
|
+
SETTLEMENT_IN_PROGRESS = (
|
339
|
+
ApiErrorIdentifier.SETTLEMENT_IN_PROGRESS,
|
340
|
+
ApiErrorType.EXCHANGE_ERROR,
|
382
341
|
ApiErrorLevel.ERROR,
|
383
342
|
)
|
384
343
|
STRATEGY_DISABLED = (
|
@@ -386,36 +345,40 @@ class ApiError(Enum):
|
|
386
345
|
ApiErrorType.SERVER_ERROR,
|
387
346
|
ApiErrorLevel.ERROR,
|
388
347
|
)
|
389
|
-
|
390
|
-
|
348
|
+
SUCCESS = (ApiErrorIdentifier.SUCCESS, ApiErrorType.NO_ERROR, ApiErrorLevel.SUCCESS)
|
349
|
+
SYMBOL_NOT_FOUND = (
|
350
|
+
ApiErrorIdentifier.SYMBOL_NOT_FOUND,
|
391
351
|
ApiErrorType.SERVER_ERROR,
|
392
352
|
ApiErrorLevel.ERROR,
|
393
353
|
)
|
394
|
-
|
395
|
-
ApiErrorIdentifier.
|
396
|
-
ApiErrorType.
|
397
|
-
ApiErrorLevel.
|
354
|
+
TRADING_ACTION_EXPIRED = (
|
355
|
+
ApiErrorIdentifier.TRADING_ACTION_EXPIRED,
|
356
|
+
ApiErrorType.NO_ERROR,
|
357
|
+
ApiErrorLevel.INFO,
|
398
358
|
)
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
359
|
+
TRADING_ACTION_SKIPPED = (
|
360
|
+
ApiErrorIdentifier.TRADING_ACTION_SKIPPED,
|
361
|
+
ApiErrorType.NO_ERROR,
|
362
|
+
ApiErrorLevel.INFO,
|
363
|
+
)
|
364
|
+
TRADING_LOCKED = (
|
365
|
+
ApiErrorIdentifier.TRADING_LOCKED,
|
366
|
+
ApiErrorType.EXCHANGE_ERROR,
|
404
367
|
ApiErrorLevel.ERROR,
|
405
368
|
)
|
406
|
-
|
407
|
-
ApiErrorIdentifier.
|
408
|
-
ApiErrorType.
|
369
|
+
TRADING_SUSPENDED = (
|
370
|
+
ApiErrorIdentifier.TRADING_SUSPENDED,
|
371
|
+
ApiErrorType.EXCHANGE_ERROR,
|
409
372
|
ApiErrorLevel.ERROR,
|
410
373
|
)
|
411
|
-
|
412
|
-
ApiErrorIdentifier.
|
413
|
-
ApiErrorType.
|
374
|
+
UNKNOWN_ERROR = (
|
375
|
+
ApiErrorIdentifier.UNKNOWN_ERROR,
|
376
|
+
ApiErrorType.EXCHANGE_ERROR,
|
414
377
|
ApiErrorLevel.ERROR,
|
415
378
|
)
|
416
|
-
|
417
|
-
ApiErrorIdentifier.
|
418
|
-
ApiErrorType.
|
379
|
+
URL_NOT_FOUND = (
|
380
|
+
ApiErrorIdentifier.URL_NOT_FOUND,
|
381
|
+
ApiErrorType.SERVER_ERROR,
|
419
382
|
ApiErrorLevel.ERROR,
|
420
383
|
)
|
421
384
|
|
@@ -429,4 +392,4 @@ class ApiError(Enum):
|
|
429
392
|
|
430
393
|
@property
|
431
394
|
def level(self) -> ApiErrorLevel:
|
432
|
-
return self.value[2]
|
395
|
+
return self.value[2]
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import re
|
2
|
+
import pyperclip
|
3
|
+
|
4
|
+
def sort_api_errors(file_content):
|
5
|
+
# Find the start of the ApiError class definition
|
6
|
+
class_start = file_content.find("class ApiErrorIdentifier(str, Enum):")
|
7
|
+
if class_start == -1:
|
8
|
+
return "Could not find ApiErrorIdentifier class"
|
9
|
+
|
10
|
+
# Find all enum definitions
|
11
|
+
enum_pattern = r' ([A-Z_]+)\s*=\s*"([a-z_]+)"'
|
12
|
+
enum_matches = re.finditer(enum_pattern, file_content)
|
13
|
+
|
14
|
+
# Extract all enum entries
|
15
|
+
enum_entries = []
|
16
|
+
for match in enum_matches:
|
17
|
+
full_match = match.group(0)
|
18
|
+
enum_name = match.group(1)
|
19
|
+
enum_entries.append((enum_name, full_match.strip()))
|
20
|
+
|
21
|
+
# Sort entries by enum name
|
22
|
+
sorted_entries = sorted(enum_entries, key=lambda x: x[0])
|
23
|
+
|
24
|
+
# Reconstruct the class content
|
25
|
+
class_header = "class ApiErrorIdentifier(str, Enum):\n\n"
|
26
|
+
sorted_content = class_header + "\n ".join(entry[1] for entry in sorted_entries)
|
27
|
+
|
28
|
+
return sorted_content
|
29
|
+
|
30
|
+
# Example usage:
|
31
|
+
if __name__ == "__main__":
|
32
|
+
with open("python/crypticorn/common/errors.py", "r") as f:
|
33
|
+
content = f.read()
|
34
|
+
|
35
|
+
sorted_content = sort_api_errors(content)
|
36
|
+
pyperclip.copy(sorted_content)
|
@@ -44,6 +44,7 @@ from crypticorn.pay.client.models.now_webhook_payload import NowWebhookPayload
|
|
44
44
|
from crypticorn.pay.client.models.payment_status import PaymentStatus
|
45
45
|
from crypticorn.pay.client.models.product_model import ProductModel
|
46
46
|
from crypticorn.pay.client.models.product_subs_model import ProductSubsModel
|
47
|
+
from crypticorn.pay.client.models.scope import Scope
|
47
48
|
from crypticorn.pay.client.models.services import Services
|
48
49
|
from crypticorn.pay.client.models.unified_payment_model import UnifiedPaymentModel
|
49
50
|
from crypticorn.pay.client.models.validation_error import ValidationError
|