crypticorn 2.1.2__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.2 → crypticorn-2.1.4}/PKG-INFO +1 -1
- crypticorn-2.1.4/crypticorn/common/auth.py +14 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/common/auth_client.py +14 -18
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/common/errors.py +216 -253
- crypticorn-2.1.4/crypticorn/common/sorter.py +36 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/__init__.py +1 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/api/now_payments_api.py +3 -16
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/api/payments_api.py +0 -42
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/api/products_api.py +18 -57
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/configuration.py +2 -1
- {crypticorn-2.1.2 → 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.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_webhook_payload.py +1 -1
- {crypticorn-2.1.2 → 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.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/api_keys_api.py +5 -70
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/bots_api.py +4 -56
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/exchanges_api.py +2 -19
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/futures_trading_panel_api.py +6 -74
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/notifications_api.py +6 -87
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/orders_api.py +2 -15
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/strategies_api.py +4 -56
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/trading_actions_api.py +1 -14
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/configuration.py +2 -1
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/api_error_identifier.py +4 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn.egg-info/PKG-INFO +1 -1
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn.egg-info/SOURCES.txt +7 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/pyproject.toml +1 -1
- {crypticorn-2.1.2 → crypticorn-2.1.4}/tests/test_auth_client.py +2 -0
- crypticorn-2.1.2/crypticorn/common/auth.py +0 -42
- {crypticorn-2.1.2 → crypticorn-2.1.4}/README.md +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/api/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/api/admin_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/api/auth_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/api/service_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/api/user_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/api/wallet_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/api_client.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/api_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/configuration.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/exceptions.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/add_wallet200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/add_wallet_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/authorize_user200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/authorize_user200_response_auth.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/authorize_user_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/create_api_key200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/create_api_key_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/create_user_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/get_api_keys200_response_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_sale_round.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_balances_inner_wallet_vesting_wallets_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_data_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/list_wallets200_response_user_value.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/logout_default_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/logout_default_response_issues_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/oauth_callback200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/oauth_callback200_response_user.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/refresh_token_info200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/refresh_token_info200_response_user_session.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/resend_verification_email_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/revoke_user_tokens_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/rotate_tokens200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/token_info200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/unlink_wallet_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/update_user_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/user_reset_password_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/user_set_password_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_email200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_email200_response_auth.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_email200_response_auth_auth.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_email_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/verify_wallet_request.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/wallet_verified200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/models/whoami200_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/py.typed +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/client/rest.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/auth/main.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/client.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/common/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/common/scopes.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/common/urls.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/api/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/api/data_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/api/models_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/api/status_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/api_client.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/api_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/configuration.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/exceptions.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/coins.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/data_download_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/data_info.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/data_value_value_value_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/data_version.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/download_links.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/evaluation.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/evaluation_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/feature_size.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/http_validation_error.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/model_create.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/model_status.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/model_update.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/target.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/target_type.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/validation_error.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/models/validation_error_loc_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/py.typed +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/client/rest.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/hive/main.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/api/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/api/funding_rates_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/api/health_check_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/api/ohlcv_data_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/api/symbols_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/api/udf_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/api_client.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/api_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/configuration.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/exceptions.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/base_response_health_check_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/base_response_list_funding_rate_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/base_response_list_str.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/base_response_ohlcv_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/error_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/exchange.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/funding_rate_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/health_check_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/history_error_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/history_no_data_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/history_success_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/http_validation_error.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/market.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/ohlcv_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/resolution.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/response_get_history_udf_history_get.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/search_symbol_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/sort_direction.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/symbol_group_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/symbol_info_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/symbol_type.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/timeframe.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/udf_config_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/validation_error.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/models/validation_error_loc_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/py.typed +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/client/rest.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/klines/main.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/api/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/api/status_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/api_client.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/api_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/exceptions.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/api_status_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/combined_payment_history.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/create_invoice_req.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/create_invoice_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/currency.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/estimate_price_req.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/estimate_price_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/get_currencies_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/get_payment_status_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/get_payments_list_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/http_validation_error.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/min_amount_req.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/min_amount_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_api_status_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_create_invoice_req.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_create_invoice_res.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_fee_structure.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_payment_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/now_payment_status.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/payment.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/payment_status.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/product.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/product_subs_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/services.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/unified_payment_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/validation_error.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/models/validation_error_loc_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/py.typed +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/client/rest.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/pay/main.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api/status_api.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api_client.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/api_response.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/exceptions.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/__init__.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/action_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/api_error_level.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/api_error_type.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/api_key_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/bot_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/bot_status.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/exchange.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/execution_ids.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/futures_balance.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/futures_trading_action.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/http_validation_error.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/margin_mode.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/market_type.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/notification_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/notification_type.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/order_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/order_status.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/post_futures_action.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/strategy_exchange_info.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/strategy_model.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/strategy_model_input.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/strategy_model_output.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/tpsl.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/trading_action_type.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/update_notification.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/validation_error.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/models/validation_error_loc_inner.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/py.typed +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/client/rest.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn/trade/main.py +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn.egg-info/dependency_links.txt +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn.egg-info/requires.txt +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/crypticorn.egg-info/top_level.txt +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/requirements/dev.txt +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/requirements/main.txt +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/requirements/test.txt +0 -0
- {crypticorn-2.1.2 → crypticorn-2.1.4}/setup.cfg +0 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
from fastapi.security import APIKeyHeader, HTTPBearer
|
2
|
+
|
3
|
+
|
4
|
+
http_bearer = HTTPBearer(
|
5
|
+
bearerFormat="JWT",
|
6
|
+
auto_error=False,
|
7
|
+
description="The JWT to use for authentication.",
|
8
|
+
)
|
9
|
+
|
10
|
+
apikey_header = APIKeyHeader(
|
11
|
+
name="X-API-Key",
|
12
|
+
auto_error=False,
|
13
|
+
description="The API key to use for authentication.",
|
14
|
+
)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from fastapi import Depends, HTTPException, Query, status
|
2
|
-
from fastapi.security import HTTPAuthorizationCredentials
|
2
|
+
from fastapi.security import HTTPAuthorizationCredentials, SecurityScopes
|
3
3
|
from typing_extensions import Annotated, Doc
|
4
4
|
import json
|
5
5
|
|
@@ -109,13 +109,13 @@ class AuthHandler:
|
|
109
109
|
async def api_key_auth(
|
110
110
|
self,
|
111
111
|
api_key: Annotated[str | None, Depends(apikey_header)] = None,
|
112
|
-
|
112
|
+
sec: SecurityScopes = SecurityScopes(),
|
113
113
|
) -> Verify200Response:
|
114
114
|
"""
|
115
115
|
Verifies the API key and checks if the user scopes are a subset of the API scopes.
|
116
116
|
Use this function if you only want to allow access via the API key.
|
117
117
|
"""
|
118
|
-
return await self.combined_auth(bearer=None, api_key=api_key,
|
118
|
+
return await self.combined_auth(bearer=None, api_key=api_key, sec=sec)
|
119
119
|
|
120
120
|
async def bearer_auth(
|
121
121
|
self,
|
@@ -123,13 +123,13 @@ class AuthHandler:
|
|
123
123
|
HTTPAuthorizationCredentials | None,
|
124
124
|
Depends(http_bearer),
|
125
125
|
] = None,
|
126
|
-
|
126
|
+
sec: SecurityScopes = SecurityScopes(),
|
127
127
|
) -> Verify200Response:
|
128
128
|
"""
|
129
129
|
Verifies the bearer token and checks if the user scopes are a subset of the API scopes.
|
130
130
|
Use this function if you only want to allow access via the bearer token.
|
131
131
|
"""
|
132
|
-
return await self.combined_auth(bearer=bearer, api_key=None,
|
132
|
+
return await self.combined_auth(bearer=bearer, api_key=None, sec=sec)
|
133
133
|
|
134
134
|
async def combined_auth(
|
135
135
|
self,
|
@@ -137,7 +137,7 @@ class AuthHandler:
|
|
137
137
|
HTTPAuthorizationCredentials | None, Depends(http_bearer)
|
138
138
|
] = None,
|
139
139
|
api_key: Annotated[str | None, Depends(apikey_header)] = None,
|
140
|
-
|
140
|
+
sec: SecurityScopes = SecurityScopes(),
|
141
141
|
) -> Verify200Response:
|
142
142
|
"""
|
143
143
|
Verifies the bearer token and/or API key and checks if the user scopes are a subset of the API scopes.
|
@@ -158,10 +158,8 @@ class AuthHandler:
|
|
158
158
|
res = await self._verify_bearer(token)
|
159
159
|
if res is None:
|
160
160
|
continue
|
161
|
-
if
|
162
|
-
await self._validate_scopes(
|
163
|
-
scopes, [Scope.from_str(scope) for scope in res.scopes]
|
164
|
-
)
|
161
|
+
if sec:
|
162
|
+
await self._validate_scopes(sec.scopes, res.scopes)
|
165
163
|
return res
|
166
164
|
|
167
165
|
except Exception as e:
|
@@ -173,18 +171,18 @@ class AuthHandler:
|
|
173
171
|
async def ws_api_key_auth(
|
174
172
|
self,
|
175
173
|
api_key: Annotated[str | None, Query()] = None,
|
176
|
-
|
174
|
+
sec: SecurityScopes = SecurityScopes(),
|
177
175
|
) -> Verify200Response:
|
178
176
|
"""
|
179
177
|
Verifies the API key and checks if the user scopes are a subset of the API scopes.
|
180
178
|
Use this function if you only want to allow access via the API key.
|
181
179
|
"""
|
182
|
-
return await self.api_key_auth(api_key=api_key,
|
180
|
+
return await self.api_key_auth(api_key=api_key, sec=sec)
|
183
181
|
|
184
182
|
async def ws_bearer_auth(
|
185
183
|
self,
|
186
184
|
bearer: Annotated[str | None, Query()] = None,
|
187
|
-
|
185
|
+
sec: SecurityScopes = SecurityScopes(),
|
188
186
|
) -> Verify200Response:
|
189
187
|
"""
|
190
188
|
Verifies the bearer token and checks if the user scopes are a subset of the API scopes.
|
@@ -195,13 +193,13 @@ class AuthHandler:
|
|
195
193
|
if bearer
|
196
194
|
else None
|
197
195
|
)
|
198
|
-
return await self.bearer_auth(bearer=credentials,
|
196
|
+
return await self.bearer_auth(bearer=credentials, sec=sec)
|
199
197
|
|
200
198
|
async def ws_combined_auth(
|
201
199
|
self,
|
202
200
|
bearer: Annotated[str | None, Query()] = None,
|
203
201
|
api_key: Annotated[str | None, Query()] = None,
|
204
|
-
|
202
|
+
sec: SecurityScopes = SecurityScopes(),
|
205
203
|
) -> Verify200Response:
|
206
204
|
"""
|
207
205
|
Verifies the bearer token and/or API key and checks if the user scopes are a subset of the API scopes.
|
@@ -212,6 +210,4 @@ class AuthHandler:
|
|
212
210
|
if bearer
|
213
211
|
else None
|
214
212
|
)
|
215
|
-
return await self.combined_auth(
|
216
|
-
bearer=credentials, api_key=api_key, scopes=scopes
|
217
|
-
)
|
213
|
+
return await self.combined_auth(bearer=credentials, api_key=api_key, sec=sec)
|