crypticorn 2.4.4__py3-none-any.whl → 2.4.5__py3-none-any.whl

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.
@@ -1,4 +1,4 @@
1
- from enum import Enum, EnumMeta
1
+ from enum import Enum, EnumMeta, StrEnum
2
2
  import logging
3
3
  from fastapi import status
4
4
 
@@ -6,15 +6,19 @@ logger = logging.getLogger(__name__)
6
6
 
7
7
 
8
8
  class Fallback(EnumMeta):
9
+ """Fallback to UNKNOWN_ERROR for error codes not yet published to PyPI."""
10
+
9
11
  def __getattr__(cls, name):
10
- """Fallback to UNKNOWN_ERROR for error codes not yet published to PyPI."""
12
+ # Let Pydantic/internal stuff pass silently ! fragile
13
+ if name.startswith("__"):
14
+ raise AttributeError(name)
11
15
  logger.warning(
12
16
  f"Unknown error code '{name}' - update crypticorn package or check for typos"
13
17
  )
14
18
  return cls.UNKNOWN_ERROR
15
19
 
16
20
 
17
- class ApiErrorType(str, Enum):
21
+ class ApiErrorType(StrEnum):
18
22
  """Type of API error"""
19
23
 
20
24
  USER_ERROR = "user error"
@@ -27,7 +31,7 @@ class ApiErrorType(str, Enum):
27
31
  """error that does not need to be handled or does not affect the program or is a placeholder."""
28
32
 
29
33
 
30
- class ApiErrorIdentifier(str, Enum):
34
+ class ApiErrorIdentifier(StrEnum):
31
35
  """API error identifiers"""
32
36
 
33
37
  ALLOCATION_BELOW_EXPOSURE = "allocation_below_current_exposure"
@@ -97,7 +101,7 @@ class ApiErrorIdentifier(str, Enum):
97
101
  URL_NOT_FOUND = "requested_resource_not_found"
98
102
 
99
103
 
100
- class ApiErrorLevel(str, Enum):
104
+ class ApiErrorLevel(StrEnum):
101
105
  """API error levels"""
102
106
 
103
107
  ERROR = "error"
@@ -6,8 +6,13 @@ logger = logging.getLogger("uvicorn")
6
6
 
7
7
  class Fallback(EnumMeta):
8
8
  """Fallback to no scope for unknown scopes."""
9
+ # Note: This is a workaround to avoid the AttributeError when an unknown scope is accessed.
10
+ # As soon as we have stable scopes, we can remove this.
9
11
 
10
12
  def __getattr__(cls, name):
13
+ # Let Pydantic/internal stuff pass silently ! fragile
14
+ if name.startswith("__"):
15
+ raise AttributeError(name)
11
16
  logger.warning(
12
17
  f"Unknown scope '{name}' - falling back to no scope - update crypticorn package or check for typos"
13
18
  )
@@ -4,7 +4,7 @@ import pyperclip
4
4
 
5
5
  def sort_api_errors(file_content, class_name="ApiErrorIdentifier"):
6
6
  # Find the start of the ApiError class definition
7
- class_start = file_content.find(f"class {class_name}(str, Enum):")
7
+ class_start = file_content.find(f"class {class_name}(StrEnum):")
8
8
  if class_start == -1:
9
9
  return f"Could not find {class_name} class"
10
10
 
@@ -23,7 +23,7 @@ def sort_api_errors(file_content, class_name="ApiErrorIdentifier"):
23
23
  sorted_entries = sorted(enum_entries, key=lambda x: x[0])
24
24
 
25
25
  # Reconstruct the class content
26
- class_header = f"class {class_name}(str, Enum):\n\n"
26
+ class_header = f"class {class_name}(StrEnum):\n\n"
27
27
  sorted_content = class_header + "\n ".join(entry[1] for entry in sorted_entries)
28
28
 
29
29
  return sorted_content
@@ -41,12 +41,10 @@ from crypticorn.pay.client.models.now_create_invoice_res import NowCreateInvoice
41
41
  from crypticorn.pay.client.models.now_fee_structure import NowFeeStructure
42
42
  from crypticorn.pay.client.models.now_payment_status import NowPaymentStatus
43
43
  from crypticorn.pay.client.models.now_webhook_payload import NowWebhookPayload
44
- from crypticorn.pay.client.models.partial_product_update_model import (
45
- PartialProductUpdateModel,
46
- )
47
44
  from crypticorn.pay.client.models.payment_status import PaymentStatus
48
45
  from crypticorn.pay.client.models.product_model import ProductModel
49
46
  from crypticorn.pay.client.models.product_subs_model import ProductSubsModel
47
+ from crypticorn.pay.client.models.product_update_model import ProductUpdateModel
50
48
  from crypticorn.pay.client.models.scope import Scope
51
49
  from crypticorn.pay.client.models.services import Services
52
50
  from crypticorn.pay.client.models.unified_payment_model import UnifiedPaymentModel
@@ -16,7 +16,7 @@ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
16
  from typing import Any, Dict, List, Optional, Tuple, Union
17
17
  from typing_extensions import Annotated
18
18
 
19
- from pydantic import Field, StrictStr
19
+ from pydantic import Field, StrictInt, StrictStr
20
20
  from typing import List, Optional
21
21
  from typing_extensions import Annotated
22
22
  from crypticorn.pay.client.models.product_subs_model import ProductSubsModel
@@ -298,6 +298,18 @@ class PaymentsApi:
298
298
  @validate_call
299
299
  async def get_payment_history(
300
300
  self,
301
+ limit: Annotated[
302
+ Optional[StrictInt],
303
+ Field(
304
+ description="Limit the number of payments returned. 0 means no limit."
305
+ ),
306
+ ] = None,
307
+ offset: Annotated[
308
+ Optional[StrictInt],
309
+ Field(
310
+ description="Offset the number of payments returned. 0 means no offset."
311
+ ),
312
+ ] = None,
301
313
  _request_timeout: Union[
302
314
  None,
303
315
  Annotated[StrictFloat, Field(gt=0)],
@@ -314,6 +326,10 @@ class PaymentsApi:
314
326
 
315
327
  Get the combined payment history for a user across all payment services.
316
328
 
329
+ :param limit: Limit the number of payments returned. 0 means no limit.
330
+ :type limit: int
331
+ :param offset: Offset the number of payments returned. 0 means no offset.
332
+ :type offset: int
317
333
  :param _request_timeout: timeout setting for this request. If one
318
334
  number provided, it will be total request
319
335
  timeout. It can also be a pair (tuple) of
@@ -337,6 +353,8 @@ class PaymentsApi:
337
353
  """ # noqa: E501
338
354
 
339
355
  _param = self._get_payment_history_serialize(
356
+ limit=limit,
357
+ offset=offset,
340
358
  _request_auth=_request_auth,
341
359
  _content_type=_content_type,
342
360
  _headers=_headers,
@@ -345,6 +363,7 @@ class PaymentsApi:
345
363
 
346
364
  _response_types_map: Dict[str, Optional[str]] = {
347
365
  "200": "List[UnifiedPaymentModel]",
366
+ "422": "HTTPValidationError",
348
367
  }
349
368
  response_data = await self.api_client.call_api(
350
369
  *_param, _request_timeout=_request_timeout
@@ -358,6 +377,18 @@ class PaymentsApi:
358
377
  @validate_call
359
378
  async def get_payment_history_with_http_info(
360
379
  self,
380
+ limit: Annotated[
381
+ Optional[StrictInt],
382
+ Field(
383
+ description="Limit the number of payments returned. 0 means no limit."
384
+ ),
385
+ ] = None,
386
+ offset: Annotated[
387
+ Optional[StrictInt],
388
+ Field(
389
+ description="Offset the number of payments returned. 0 means no offset."
390
+ ),
391
+ ] = None,
361
392
  _request_timeout: Union[
362
393
  None,
363
394
  Annotated[StrictFloat, Field(gt=0)],
@@ -374,6 +405,10 @@ class PaymentsApi:
374
405
 
375
406
  Get the combined payment history for a user across all payment services.
376
407
 
408
+ :param limit: Limit the number of payments returned. 0 means no limit.
409
+ :type limit: int
410
+ :param offset: Offset the number of payments returned. 0 means no offset.
411
+ :type offset: int
377
412
  :param _request_timeout: timeout setting for this request. If one
378
413
  number provided, it will be total request
379
414
  timeout. It can also be a pair (tuple) of
@@ -397,6 +432,8 @@ class PaymentsApi:
397
432
  """ # noqa: E501
398
433
 
399
434
  _param = self._get_payment_history_serialize(
435
+ limit=limit,
436
+ offset=offset,
400
437
  _request_auth=_request_auth,
401
438
  _content_type=_content_type,
402
439
  _headers=_headers,
@@ -405,6 +442,7 @@ class PaymentsApi:
405
442
 
406
443
  _response_types_map: Dict[str, Optional[str]] = {
407
444
  "200": "List[UnifiedPaymentModel]",
445
+ "422": "HTTPValidationError",
408
446
  }
409
447
  response_data = await self.api_client.call_api(
410
448
  *_param, _request_timeout=_request_timeout
@@ -418,6 +456,18 @@ class PaymentsApi:
418
456
  @validate_call
419
457
  async def get_payment_history_without_preload_content(
420
458
  self,
459
+ limit: Annotated[
460
+ Optional[StrictInt],
461
+ Field(
462
+ description="Limit the number of payments returned. 0 means no limit."
463
+ ),
464
+ ] = None,
465
+ offset: Annotated[
466
+ Optional[StrictInt],
467
+ Field(
468
+ description="Offset the number of payments returned. 0 means no offset."
469
+ ),
470
+ ] = None,
421
471
  _request_timeout: Union[
422
472
  None,
423
473
  Annotated[StrictFloat, Field(gt=0)],
@@ -434,6 +484,10 @@ class PaymentsApi:
434
484
 
435
485
  Get the combined payment history for a user across all payment services.
436
486
 
487
+ :param limit: Limit the number of payments returned. 0 means no limit.
488
+ :type limit: int
489
+ :param offset: Offset the number of payments returned. 0 means no offset.
490
+ :type offset: int
437
491
  :param _request_timeout: timeout setting for this request. If one
438
492
  number provided, it will be total request
439
493
  timeout. It can also be a pair (tuple) of
@@ -457,6 +511,8 @@ class PaymentsApi:
457
511
  """ # noqa: E501
458
512
 
459
513
  _param = self._get_payment_history_serialize(
514
+ limit=limit,
515
+ offset=offset,
460
516
  _request_auth=_request_auth,
461
517
  _content_type=_content_type,
462
518
  _headers=_headers,
@@ -465,6 +521,7 @@ class PaymentsApi:
465
521
 
466
522
  _response_types_map: Dict[str, Optional[str]] = {
467
523
  "200": "List[UnifiedPaymentModel]",
524
+ "422": "HTTPValidationError",
468
525
  }
469
526
  response_data = await self.api_client.call_api(
470
527
  *_param, _request_timeout=_request_timeout
@@ -473,6 +530,8 @@ class PaymentsApi:
473
530
 
474
531
  def _get_payment_history_serialize(
475
532
  self,
533
+ limit,
534
+ offset,
476
535
  _request_auth,
477
536
  _content_type,
478
537
  _headers,
@@ -494,6 +553,14 @@ class PaymentsApi:
494
553
 
495
554
  # process the path parameters
496
555
  # process the query parameters
556
+ if limit is not None:
557
+
558
+ _query_params.append(("limit", limit))
559
+
560
+ if offset is not None:
561
+
562
+ _query_params.append(("offset", offset))
563
+
497
564
  # process the header parameters
498
565
  # process the form parameters
499
566
  # process the body parameter
@@ -19,10 +19,8 @@ from typing_extensions import Annotated
19
19
  from pydantic import Field, StrictInt, StrictStr
20
20
  from typing import Any, List, Optional
21
21
  from typing_extensions import Annotated
22
- from crypticorn.pay.client.models.partial_product_update_model import (
23
- PartialProductUpdateModel,
24
- )
25
22
  from crypticorn.pay.client.models.product_model import ProductModel
23
+ from crypticorn.pay.client.models.product_update_model import ProductUpdateModel
26
24
 
27
25
  from crypticorn.pay.client.api_client import ApiClient, RequestSerialized
28
26
  from crypticorn.pay.client.api_response import ApiResponse
@@ -594,7 +592,7 @@ class ProductsApi:
594
592
  async def update_product(
595
593
  self,
596
594
  id: Annotated[StrictStr, Field(description="The ID of the product to update")],
597
- partial_product_update_model: PartialProductUpdateModel,
595
+ product_update_model: ProductUpdateModel,
598
596
  _request_timeout: Union[
599
597
  None,
600
598
  Annotated[StrictFloat, Field(gt=0)],
@@ -613,8 +611,8 @@ class ProductsApi:
613
611
 
614
612
  :param id: The ID of the product to update (required)
615
613
  :type id: str
616
- :param partial_product_update_model: (required)
617
- :type partial_product_update_model: PartialProductUpdateModel
614
+ :param product_update_model: (required)
615
+ :type product_update_model: ProductUpdateModel
618
616
  :param _request_timeout: timeout setting for this request. If one
619
617
  number provided, it will be total request
620
618
  timeout. It can also be a pair (tuple) of
@@ -639,7 +637,7 @@ class ProductsApi:
639
637
 
640
638
  _param = self._update_product_serialize(
641
639
  id=id,
642
- partial_product_update_model=partial_product_update_model,
640
+ product_update_model=product_update_model,
643
641
  _request_auth=_request_auth,
644
642
  _content_type=_content_type,
645
643
  _headers=_headers,
@@ -663,7 +661,7 @@ class ProductsApi:
663
661
  async def update_product_with_http_info(
664
662
  self,
665
663
  id: Annotated[StrictStr, Field(description="The ID of the product to update")],
666
- partial_product_update_model: PartialProductUpdateModel,
664
+ product_update_model: ProductUpdateModel,
667
665
  _request_timeout: Union[
668
666
  None,
669
667
  Annotated[StrictFloat, Field(gt=0)],
@@ -682,8 +680,8 @@ class ProductsApi:
682
680
 
683
681
  :param id: The ID of the product to update (required)
684
682
  :type id: str
685
- :param partial_product_update_model: (required)
686
- :type partial_product_update_model: PartialProductUpdateModel
683
+ :param product_update_model: (required)
684
+ :type product_update_model: ProductUpdateModel
687
685
  :param _request_timeout: timeout setting for this request. If one
688
686
  number provided, it will be total request
689
687
  timeout. It can also be a pair (tuple) of
@@ -708,7 +706,7 @@ class ProductsApi:
708
706
 
709
707
  _param = self._update_product_serialize(
710
708
  id=id,
711
- partial_product_update_model=partial_product_update_model,
709
+ product_update_model=product_update_model,
712
710
  _request_auth=_request_auth,
713
711
  _content_type=_content_type,
714
712
  _headers=_headers,
@@ -732,7 +730,7 @@ class ProductsApi:
732
730
  async def update_product_without_preload_content(
733
731
  self,
734
732
  id: Annotated[StrictStr, Field(description="The ID of the product to update")],
735
- partial_product_update_model: PartialProductUpdateModel,
733
+ product_update_model: ProductUpdateModel,
736
734
  _request_timeout: Union[
737
735
  None,
738
736
  Annotated[StrictFloat, Field(gt=0)],
@@ -751,8 +749,8 @@ class ProductsApi:
751
749
 
752
750
  :param id: The ID of the product to update (required)
753
751
  :type id: str
754
- :param partial_product_update_model: (required)
755
- :type partial_product_update_model: PartialProductUpdateModel
752
+ :param product_update_model: (required)
753
+ :type product_update_model: ProductUpdateModel
756
754
  :param _request_timeout: timeout setting for this request. If one
757
755
  number provided, it will be total request
758
756
  timeout. It can also be a pair (tuple) of
@@ -777,7 +775,7 @@ class ProductsApi:
777
775
 
778
776
  _param = self._update_product_serialize(
779
777
  id=id,
780
- partial_product_update_model=partial_product_update_model,
778
+ product_update_model=product_update_model,
781
779
  _request_auth=_request_auth,
782
780
  _content_type=_content_type,
783
781
  _headers=_headers,
@@ -796,7 +794,7 @@ class ProductsApi:
796
794
  def _update_product_serialize(
797
795
  self,
798
796
  id,
799
- partial_product_update_model,
797
+ product_update_model,
800
798
  _request_auth,
801
799
  _content_type,
802
800
  _headers,
@@ -823,8 +821,8 @@ class ProductsApi:
823
821
  # process the header parameters
824
822
  # process the form parameters
825
823
  # process the body parameter
826
- if partial_product_update_model is not None:
827
- _body_params = partial_product_update_model
824
+ if product_update_model is not None:
825
+ _body_params = product_update_model
828
826
 
829
827
  # set the HTTP header `Accept`
830
828
  if "Accept" not in _header_params:
@@ -17,7 +17,7 @@ import http.client as httplib
17
17
  import logging
18
18
  from logging import FileHandler
19
19
  import sys
20
- from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict
20
+ from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
21
21
  from typing_extensions import NotRequired, Self
22
22
 
23
23
  import urllib3
@@ -168,6 +168,8 @@ class Configuration:
168
168
  :param ssl_ca_cert: str - the path to a file of concatenated CA certificates
169
169
  in PEM format.
170
170
  :param retries: Number of retries for API requests.
171
+ :param ca_cert_data: verify the peer using concatenated CA certificate data
172
+ in PEM (str) or DER (bytes) format.
171
173
 
172
174
  :Example:
173
175
 
@@ -208,6 +210,7 @@ class Configuration:
208
210
  ignore_operation_servers: bool = False,
209
211
  ssl_ca_cert: Optional[str] = None,
210
212
  retries: Optional[int] = None,
213
+ ca_cert_data: Optional[Union[str, bytes]] = None,
211
214
  *,
212
215
  debug: Optional[bool] = None,
213
216
  ) -> None:
@@ -284,6 +287,10 @@ class Configuration:
284
287
  self.ssl_ca_cert = ssl_ca_cert
285
288
  """Set this to customize the certificate file to verify the peer.
286
289
  """
290
+ self.ca_cert_data = ca_cert_data
291
+ """Set this to verify the peer using PEM (str) or DER (bytes)
292
+ certificate data.
293
+ """
287
294
  self.cert_file = None
288
295
  """client certificate file
289
296
  """
@@ -21,12 +21,10 @@ from crypticorn.pay.client.models.now_create_invoice_res import NowCreateInvoice
21
21
  from crypticorn.pay.client.models.now_fee_structure import NowFeeStructure
22
22
  from crypticorn.pay.client.models.now_payment_status import NowPaymentStatus
23
23
  from crypticorn.pay.client.models.now_webhook_payload import NowWebhookPayload
24
- from crypticorn.pay.client.models.partial_product_update_model import (
25
- PartialProductUpdateModel,
26
- )
27
24
  from crypticorn.pay.client.models.payment_status import PaymentStatus
28
25
  from crypticorn.pay.client.models.product_model import ProductModel
29
26
  from crypticorn.pay.client.models.product_subs_model import ProductSubsModel
27
+ from crypticorn.pay.client.models.product_update_model import ProductUpdateModel
30
28
  from crypticorn.pay.client.models.scope import Scope
31
29
  from crypticorn.pay.client.models.services import Services
32
30
  from crypticorn.pay.client.models.unified_payment_model import UnifiedPaymentModel
@@ -37,12 +37,12 @@ class ProductUpdateModel(BaseModel):
37
37
  """ # noqa: E501
38
38
 
39
39
  id: Optional[StrictStr] = None
40
- name: Optional[StrictStr]
41
- price: Optional[Union[StrictFloat, StrictInt]]
42
- scopes: Optional[List[Scope]]
43
- duration: Optional[StrictInt]
44
- description: Optional[StrictStr]
45
- is_active: Optional[StrictBool]
40
+ name: Optional[StrictStr] = None
41
+ price: Optional[Union[StrictFloat, StrictInt]] = None
42
+ scopes: Optional[List[Scope]] = None
43
+ duration: Optional[StrictInt] = None
44
+ description: Optional[StrictStr] = None
45
+ is_active: Optional[StrictBool] = None
46
46
  __properties: ClassVar[List[str]] = [
47
47
  "id",
48
48
  "name",
@@ -31,8 +31,8 @@ class Scope(str, Enum):
31
31
  WRITE_COLON_HIVE_COLON_MODEL = "write:hive:model"
32
32
  READ_COLON_TRADE_COLON_BOTS = "read:trade:bots"
33
33
  WRITE_COLON_TRADE_COLON_BOTS = "write:trade:bots"
34
- READ_COLON_TRADE_COLON_API_KEYS = "read:trade:api_keys"
35
- WRITE_COLON_TRADE_COLON_API_KEYS = "write:trade:api_keys"
34
+ READ_COLON_TRADE_COLON_EXCHANGEKEYS = "read:trade:exchangekeys"
35
+ WRITE_COLON_TRADE_COLON_EXCHANGEKEYS = "write:trade:exchangekeys"
36
36
  READ_COLON_TRADE_COLON_ORDERS = "read:trade:orders"
37
37
  READ_COLON_TRADE_COLON_ACTIONS = "read:trade:actions"
38
38
  WRITE_COLON_TRADE_COLON_ACTIONS = "write:trade:actions"
@@ -57,7 +57,10 @@ class RESTClientObject:
57
57
  # maxsize is number of requests to host that are allowed in parallel
58
58
  self.maxsize = configuration.connection_pool_maxsize
59
59
 
60
- self.ssl_context = ssl.create_default_context(cafile=configuration.ssl_ca_cert)
60
+ self.ssl_context = ssl.create_default_context(
61
+ cafile=configuration.ssl_ca_cert,
62
+ cadata=configuration.ca_cert_data,
63
+ )
61
64
  if configuration.cert_file:
62
65
  self.ssl_context.load_cert_chain(
63
66
  configuration.cert_file, keyfile=configuration.key_file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.4.4
3
+ Version: 2.4.5
4
4
  Summary: Maximise Your Crypto Trading Profits with AI Predictions
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  Project-URL: Homepage, https://crypticorn.com
@@ -62,10 +62,10 @@ crypticorn/cli/templates/auth.py,sha256=Q1TxlA7qzhjvrqp1xz1aV2vGnj3DKFNN-VSl3o0B
62
62
  crypticorn/common/__init__.py,sha256=7DCYhqkqmzCyACdLWn3GuhccBcx5jQcwlIsl_cCr7gM,269
63
63
  crypticorn/common/auth.py,sha256=wPdPLgTva4-bN-iOv8woe6n1t06LXNRbhbsNIEAHkuE,7496
64
64
  crypticorn/common/enums.py,sha256=6cCwQZVdXUoN33WA8kSf4LeSZyExZcWO2ahSsgGddCs,1243
65
- crypticorn/common/errors.py,sha256=-J7EA1DuNjS583j9ZaSybMUma7Fws2Z8D7PV2YaS30g,19833
65
+ crypticorn/common/errors.py,sha256=7SQmnpTt4lr4xMf6lcMO6po6d5DyTQptqPdd7DUb4XE,19972
66
66
  crypticorn/common/pydantic.py,sha256=pmnGYCIrLv59wZkDbvPyK9NJmgPJWW74LXTdIWSjOkY,1063
67
- crypticorn/common/scopes.py,sha256=LaT0qqhe1ePL0B5KbooXvPs0aIwXzSc69KyDvrZKSdU,2135
68
- crypticorn/common/sorter.py,sha256=Lx7hZMzsqrx2nqWOO0sFrSXSK1t2CqQJux70xU49Bz0,1282
67
+ crypticorn/common/scopes.py,sha256=Kr_qSaGAJ2n8R4o3973xWV_mxQRfDiRUdg2o21F7xzY,2426
68
+ crypticorn/common/sorter.py,sha256=keRRp4u7KJk3nS2A8tMdSF8Hbc1jcsre8KdTVuetfGc,1278
69
69
  crypticorn/common/urls.py,sha256=X557WaODUqW2dECi-mOjTbmhkSpnp40fPXDdvlnBXfo,805
70
70
  crypticorn/common/utils.py,sha256=qzpTTdZarpK9vgCQi36puS2GS_vmdIA6ApxoOVuszPg,1460
71
71
  crypticorn/hive/__init__.py,sha256=hRfTlEzEql4msytdUC_04vfaHzVKG5CGZle1M-9QFgY,81
@@ -177,19 +177,19 @@ crypticorn/metrics/client/models/validation_error.py,sha256=XAkAm1zTjroJLvnmQB6r
177
177
  crypticorn/metrics/client/models/validation_error_loc_inner.py,sha256=p0a-GosxsFHZV22hz3u4PNwj0kPd8-7CWRNwAO05pvk,5277
178
178
  crypticorn/pay/__init__.py,sha256=ux-B-YbNetpTlZTb2fijuGUOEmSm4IB0fYtieGnVDBg,78
179
179
  crypticorn/pay/main.py,sha256=6sCELtBpQglCDpHlOtCMfWct_itCNv9QZCeumZI22A0,601
180
- crypticorn/pay/client/__init__.py,sha256=VvFPPjSvkruLlQsg97KBjUMwMgXpFXoEorTfhqOtirw,2462
180
+ crypticorn/pay/client/__init__.py,sha256=PX6uZRiEphtBJiOxvUqd_IxXVsi2_Lqqq_Q1MWvV1Wc,2438
181
181
  crypticorn/pay/client/api_client.py,sha256=axhwIXY3gZod8xn8BCHjA-8v-wnyyHrxV5TxcMFqjVA,26924
182
182
  crypticorn/pay/client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
183
- crypticorn/pay/client/configuration.py,sha256=QcpgsaN8rEps6KkG6ae6VivtbD83s3ZyIGQfrvMH0KI,18817
183
+ crypticorn/pay/client/configuration.py,sha256=3OBBS0Q5lthyqgjRpAssw_fJStRpzsd39PUpyg7OQfM,19164
184
184
  crypticorn/pay/client/exceptions.py,sha256=BewSfp_OiqQ9ybRNlkZ7A_nn-8kDY1iiBSlYocagl3w,6435
185
185
  crypticorn/pay/client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
- crypticorn/pay/client/rest.py,sha256=NzurADRfSK0yVNclrc2QDdV1yfIq5cVg1rg3Hiin1wI,6965
186
+ crypticorn/pay/client/rest.py,sha256=q0P8SwRU9kXGGOaeJJjYx8JSyPU_KlO1XSZ5t8G0Nn8,7035
187
187
  crypticorn/pay/client/api/__init__.py,sha256=vbisPmBd4c5G3_MHAlInKeu1obSr8witdtwxC43BnN8,302
188
188
  crypticorn/pay/client/api/now_payments_api.py,sha256=nbTM9vqDwf5OgGIT3Fsg84AoTCCWLAnSwpOz3S9N18Q,33011
189
- crypticorn/pay/client/api/payments_api.py,sha256=B9ktLcSH6SyBAl-uXzYBP7Zf3Cqea54D15eAGj74X8c,32086
190
- crypticorn/pay/client/api/products_api.py,sha256=l9ICy1E4aBxZm5bXlLWO7Lyr_FcnLRoMXclYuOMBBEo,34245
189
+ crypticorn/pay/client/api/payments_api.py,sha256=Icr1LHNHgYN9sj86eJlFdGXg6sWYJniZwVOfEc4C_R4,34412
190
+ crypticorn/pay/client/api/products_api.py,sha256=kDUKuMOOKuhK1AbxzHBaEv1f-TPUiKBvwGXhN9F-b4o,34035
191
191
  crypticorn/pay/client/api/status_api.py,sha256=XSfwyUDRS3XMB8mfngLhtYqEFMOE2t6m_PAWcwX9eg0,9908
192
- crypticorn/pay/client/models/__init__.py,sha256=7ejVmyOaJI87wQMe2-tK-S4XDjM7SymPVPFWObtCGj4,1600
192
+ crypticorn/pay/client/models/__init__.py,sha256=-2KlYhxZkxh_h-zV222LiLQH3YKO12qv_GGOJ6hrWCo,1576
193
193
  crypticorn/pay/client/models/api_status_res.py,sha256=2MSDgnzQZpQyjFu7I-4HkJI3ygy0Dzs1lPdvgzM63Jg,2494
194
194
  crypticorn/pay/client/models/body_create_now_invoice.py,sha256=F--oFNyB0bv2mmFpwd3jG9ZGEl0Ip7slVFdSkxbVbe8,3045
195
195
  crypticorn/pay/client/models/body_create_product.py,sha256=_Jh3LqwcC8U3Rz14NP6Aohimea7d3TsrSWTexm5iB5Q,3030
@@ -221,8 +221,8 @@ crypticorn/pay/client/models/payment_status.py,sha256=X27W1roil70iUNkcJVKABK1dRp
221
221
  crypticorn/pay/client/models/product.py,sha256=6_L59YIz-rdN5fHypJUcRpaU-hpG1l4xF1Cl2n8sF0k,2572
222
222
  crypticorn/pay/client/models/product_model.py,sha256=emo_bZGfI9k3dtR_jfzlJGFUTR1SZosLRfkaObj3J6g,3855
223
223
  crypticorn/pay/client/models/product_subs_model.py,sha256=DeeVu-8aDJneHov97hlNR4JFph_jGu2yt9_eVTPWzpw,3355
224
- crypticorn/pay/client/models/product_update_model.py,sha256=HsVGh7Pah0ow1YIcyyWJ1Iuanxt4pP1llk4hqJyi-vU,4735
225
- crypticorn/pay/client/models/scope.py,sha256=od_qzhr6qv3GW6JAqTcp6Ijyj_rZGaR04Cz4OD36Mak,2017
224
+ crypticorn/pay/client/models/product_update_model.py,sha256=j6EGDSqko5owqk-Qrx_9fh1mQQB87welVhCBmDkWcS0,4777
225
+ crypticorn/pay/client/models/scope.py,sha256=RQ6j1jQfNiu1CVnh_LMoAGSeunaXyISMgU-naCncBQw,2033
226
226
  crypticorn/pay/client/models/services.py,sha256=GSR4E0IVNzmMkPW6AdhW9MmHFmku0YBfx27xWzAFDGI,709
227
227
  crypticorn/pay/client/models/unified_payment_model.py,sha256=5IXOcKctWFejLAq_x3btO2R29fRaKMDSgMfgcYYJKY4,3621
228
228
  crypticorn/pay/client/models/validation_error.py,sha256=dEYMLbX_N7IfQLeuL-BRBVnh5-plOpUe6R2YZTMzEX4,3206
@@ -273,8 +273,8 @@ crypticorn/trade/client/models/tpsl.py,sha256=LlqzHaSA-HgQp1k4PhRckmxWNhgVZU6NgB
273
273
  crypticorn/trade/client/models/trading_action_type.py,sha256=oLVDp94VeC9kjYbgZN7dHn2t07YGGUrAkNr2PE435eM,827
274
274
  crypticorn/trade/client/models/validation_error.py,sha256=x4rR325juK4EJiFJ8l5IKp2werY8y6PWbLx_WJMxbbA,3208
275
275
  crypticorn/trade/client/models/validation_error_loc_inner.py,sha256=ZB2NbHkxhjDZ2-qK1HyvzTUnabeCdxeTjbSAHNmWq5A,5111
276
- crypticorn-2.4.4.dist-info/METADATA,sha256=LdYWgZGBIsqRje0cre_C8Fv8lmCCBaEqArVLkYjNSoY,5895
277
- crypticorn-2.4.4.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
278
- crypticorn-2.4.4.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
279
- crypticorn-2.4.4.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
280
- crypticorn-2.4.4.dist-info/RECORD,,
276
+ crypticorn-2.4.5.dist-info/METADATA,sha256=PwuvqEgCUP8ZsVR9MqYiBieHqDi8hiK3TZTfh7AYSFo,5895
277
+ crypticorn-2.4.5.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
278
+ crypticorn-2.4.5.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
279
+ crypticorn-2.4.5.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
280
+ crypticorn-2.4.5.dist-info/RECORD,,