graphsense-python 2.10.0__py3-none-any.whl → 2.12.0__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.
- graphsense/__init__.py +12 -2
- graphsense/api/__init__.py +1 -0
- graphsense/api/addresses_api.py +310 -7
- graphsense/api/blocks_api.py +1 -1
- graphsense/api/bulk_api.py +1 -1
- graphsense/api/clusters_api.py +2767 -0
- graphsense/api/entities_api.py +19 -13
- graphsense/api/general_api.py +1 -1
- graphsense/api/rates_api.py +1 -1
- graphsense/api/tags_api.py +1 -1
- graphsense/api/tokens_api.py +1 -1
- graphsense/api/txs_api.py +1 -1
- graphsense/api_client.py +2 -2
- graphsense/cli/__init__.py +1 -0
- graphsense/cli/__main__.py +4 -0
- graphsense/cli/bulk_cmd.py +95 -0
- graphsense/cli/context.py +64 -0
- graphsense/cli/convenience.py +444 -0
- graphsense/cli/errors.py +74 -0
- graphsense/cli/main.py +216 -0
- graphsense/cli/raw.py +259 -0
- graphsense/configuration.py +3 -3
- graphsense/exceptions.py +1 -1
- graphsense/ext/__init__.py +6 -0
- graphsense/ext/bulk.py +51 -0
- graphsense/ext/client.py +517 -0
- graphsense/ext/deprecation.py +81 -0
- graphsense/ext/io.py +238 -0
- graphsense/ext/output.py +245 -0
- graphsense/ext/selectors.py +28 -0
- graphsense/models/__init__.py +5 -1
- graphsense/models/actor.py +1 -1
- graphsense/models/actor_context.py +1 -1
- graphsense/models/address.py +10 -6
- graphsense/models/address_output.py +1 -1
- graphsense/models/address_tag.py +9 -5
- graphsense/models/address_tags.py +1 -1
- graphsense/models/address_tx.py +1 -1
- graphsense/models/address_tx_utxo.py +1 -1
- graphsense/models/address_txs.py +1 -1
- graphsense/models/block.py +1 -1
- graphsense/models/block_at_date.py +1 -1
- graphsense/models/change_heuristics.py +1 -1
- graphsense/models/cluster.py +140 -0
- graphsense/models/cluster_addresses.py +96 -0
- graphsense/models/coin_join_consensus.py +1 -1
- graphsense/models/coin_join_heuristics.py +1 -1
- graphsense/models/concept.py +1 -1
- graphsense/models/consensus_entry.py +1 -1
- graphsense/models/currency_stats.py +1 -1
- graphsense/models/direct_change_heuristic.py +1 -1
- graphsense/models/entity.py +2 -2
- graphsense/models/entity_addresses.py +2 -2
- graphsense/models/external_conversion.py +1 -1
- graphsense/models/http_validation_error.py +1 -1
- graphsense/models/join_market_heuristic.py +1 -1
- graphsense/models/label_summary.py +1 -1
- graphsense/models/labeled_item_ref.py +1 -1
- graphsense/models/link.py +1 -1
- graphsense/models/link_utxo.py +1 -1
- graphsense/models/links.py +1 -1
- graphsense/models/links_inner.py +1 -1
- graphsense/models/location_inner.py +1 -1
- graphsense/models/multi_input_change_heuristic.py +1 -1
- graphsense/models/neighbor_address.py +1 -1
- graphsense/models/neighbor_addresses.py +1 -1
- graphsense/models/neighbor_cluster.py +120 -0
- graphsense/models/neighbor_clusters.py +96 -0
- graphsense/models/neighbor_entities.py +2 -2
- graphsense/models/neighbor_entity.py +10 -4
- graphsense/models/one_time_change_heuristic.py +1 -1
- graphsense/models/rate.py +1 -1
- graphsense/models/rates.py +1 -1
- graphsense/models/related_address.py +1 -1
- graphsense/models/related_addresses.py +1 -1
- graphsense/models/search_result.py +1 -1
- graphsense/models/search_result_by_currency.py +1 -1
- graphsense/models/search_result_level1.py +1 -1
- graphsense/models/search_result_level2.py +1 -1
- graphsense/models/search_result_level3.py +1 -1
- graphsense/models/search_result_level4.py +1 -1
- graphsense/models/search_result_level5.py +1 -1
- graphsense/models/search_result_level6.py +1 -1
- graphsense/models/stats.py +1 -1
- graphsense/models/tag.py +1 -1
- graphsense/models/tag_cloud_entry.py +1 -1
- graphsense/models/tag_summary.py +1 -1
- graphsense/models/taxonomy.py +1 -1
- graphsense/models/token_config.py +1 -1
- graphsense/models/token_configs.py +1 -1
- graphsense/models/tx.py +1 -1
- graphsense/models/tx_account.py +1 -1
- graphsense/models/tx_ref.py +1 -1
- graphsense/models/tx_summary.py +1 -1
- graphsense/models/tx_utxo.py +1 -1
- graphsense/models/tx_value.py +1 -1
- graphsense/models/user_reported_tag.py +1 -1
- graphsense/models/user_tag_report_response.py +1 -1
- graphsense/models/utxo_heuristics.py +1 -1
- graphsense/models/validation_error.py +1 -1
- graphsense/models/values.py +1 -1
- graphsense/models/wasabi_heuristic.py +1 -1
- graphsense/models/whirlpool_coin_join_heuristic.py +1 -1
- graphsense/models/whirlpool_tx0_heuristic.py +1 -1
- graphsense/rest.py +1 -1
- {graphsense_python-2.10.0.dist-info → graphsense_python-2.12.0.dist-info}/METADATA +67 -18
- graphsense_python-2.12.0.dist-info/RECORD +170 -0
- graphsense_python-2.12.0.dist-info/entry_points.txt +2 -0
- graphsense_python-2.10.0.dist-info/RECORD +0 -149
- {graphsense_python-2.10.0.dist-info → graphsense_python-2.12.0.dist-info}/WHEEL +0 -0
- {graphsense_python-2.10.0.dist-info → graphsense_python-2.12.0.dist-info}/top_level.txt +0 -0
graphsense/__init__.py
CHANGED
|
@@ -5,20 +5,21 @@
|
|
|
5
5
|
"""
|
|
6
6
|
GraphSense API
|
|
7
7
|
|
|
8
|
-
GraphSense API provides programmatic access to blockchain analytics data across multiple ledgers. Use it to explore addresses,
|
|
8
|
+
GraphSense API provides programmatic access to blockchain analytics data across multiple ledgers. Use it to explore addresses, clusters, blocks, transactions, tags, token activity, and exchange-rate context, and to integrate investigation workflows into your own applications and automation. ## Versioning and deprecation policy The API follows semantic versioning. Minor releases are additive and backwards-compatible; breaking changes only happen in major releases, which are rare and announced in advance. Deprecated endpoints and fields remain fully functional for at least six months after they are marked deprecated. During that window they are highlighted with a strikethrough in the docs and in generated clients, and responses from deprecated endpoints carry a `Deprecation` HTTP header that client tooling can detect. Replacement endpoints and fields are always introduced before the deprecated surface is removed. See the [full versioning and deprecation policy](https://github.com/graphsense/graphsense-lib/blob/master/README.md#rest-api-evolution-and-deprecation-policy) for details. # noqa: E501
|
|
9
9
|
|
|
10
10
|
Contact: contact@iknaio.com
|
|
11
11
|
Generated by: https://openapi-generator.tech
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
__version__ = "2.
|
|
15
|
+
__version__ = "2.12.0"
|
|
16
16
|
|
|
17
17
|
# Define package exports
|
|
18
18
|
__all__ = [
|
|
19
19
|
"AddressesApi",
|
|
20
20
|
"BlocksApi",
|
|
21
21
|
"BulkApi",
|
|
22
|
+
"ClustersApi",
|
|
22
23
|
"EntitiesApi",
|
|
23
24
|
"GeneralApi",
|
|
24
25
|
"RatesApi",
|
|
@@ -46,6 +47,8 @@ __all__ = [
|
|
|
46
47
|
"Block",
|
|
47
48
|
"BlockAtDate",
|
|
48
49
|
"ChangeHeuristics",
|
|
50
|
+
"Cluster",
|
|
51
|
+
"ClusterAddresses",
|
|
49
52
|
"CoinJoinConsensus",
|
|
50
53
|
"CoinJoinHeuristics",
|
|
51
54
|
"Concept",
|
|
@@ -67,6 +70,8 @@ __all__ = [
|
|
|
67
70
|
"MultiInputChangeHeuristic",
|
|
68
71
|
"NeighborAddress",
|
|
69
72
|
"NeighborAddresses",
|
|
73
|
+
"NeighborCluster",
|
|
74
|
+
"NeighborClusters",
|
|
70
75
|
"NeighborEntities",
|
|
71
76
|
"NeighborEntity",
|
|
72
77
|
"OneTimeChangeHeuristic",
|
|
@@ -112,6 +117,7 @@ import graphsense.compat # noqa: F401
|
|
|
112
117
|
from graphsense.api.addresses_api import AddressesApi as AddressesApi
|
|
113
118
|
from graphsense.api.blocks_api import BlocksApi as BlocksApi
|
|
114
119
|
from graphsense.api.bulk_api import BulkApi as BulkApi
|
|
120
|
+
from graphsense.api.clusters_api import ClustersApi as ClustersApi
|
|
115
121
|
from graphsense.api.entities_api import EntitiesApi as EntitiesApi
|
|
116
122
|
from graphsense.api.general_api import GeneralApi as GeneralApi
|
|
117
123
|
from graphsense.api.rates_api import RatesApi as RatesApi
|
|
@@ -143,6 +149,8 @@ from graphsense.models.address_txs import AddressTxs as AddressTxs
|
|
|
143
149
|
from graphsense.models.block import Block as Block
|
|
144
150
|
from graphsense.models.block_at_date import BlockAtDate as BlockAtDate
|
|
145
151
|
from graphsense.models.change_heuristics import ChangeHeuristics as ChangeHeuristics
|
|
152
|
+
from graphsense.models.cluster import Cluster as Cluster
|
|
153
|
+
from graphsense.models.cluster_addresses import ClusterAddresses as ClusterAddresses
|
|
146
154
|
from graphsense.models.coin_join_consensus import CoinJoinConsensus as CoinJoinConsensus
|
|
147
155
|
from graphsense.models.coin_join_heuristics import CoinJoinHeuristics as CoinJoinHeuristics
|
|
148
156
|
from graphsense.models.concept import Concept as Concept
|
|
@@ -164,6 +172,8 @@ from graphsense.models.location_inner import LocationInner as LocationInner
|
|
|
164
172
|
from graphsense.models.multi_input_change_heuristic import MultiInputChangeHeuristic as MultiInputChangeHeuristic
|
|
165
173
|
from graphsense.models.neighbor_address import NeighborAddress as NeighborAddress
|
|
166
174
|
from graphsense.models.neighbor_addresses import NeighborAddresses as NeighborAddresses
|
|
175
|
+
from graphsense.models.neighbor_cluster import NeighborCluster as NeighborCluster
|
|
176
|
+
from graphsense.models.neighbor_clusters import NeighborClusters as NeighborClusters
|
|
167
177
|
from graphsense.models.neighbor_entities import NeighborEntities as NeighborEntities
|
|
168
178
|
from graphsense.models.neighbor_entity import NeighborEntity as NeighborEntity
|
|
169
179
|
from graphsense.models.one_time_change_heuristic import OneTimeChangeHeuristic as OneTimeChangeHeuristic
|
graphsense/api/__init__.py
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
from graphsense.api.addresses_api import AddressesApi
|
|
5
5
|
from graphsense.api.blocks_api import BlocksApi
|
|
6
6
|
from graphsense.api.bulk_api import BulkApi
|
|
7
|
+
from graphsense.api.clusters_api import ClustersApi
|
|
7
8
|
from graphsense.api.entities_api import EntitiesApi
|
|
8
9
|
from graphsense.api.general_api import GeneralApi
|
|
9
10
|
from graphsense.api.rates_api import RatesApi
|
graphsense/api/addresses_api.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"""
|
|
4
4
|
GraphSense API
|
|
5
5
|
|
|
6
|
-
GraphSense API provides programmatic access to blockchain analytics data across multiple ledgers. Use it to explore addresses,
|
|
6
|
+
GraphSense API provides programmatic access to blockchain analytics data across multiple ledgers. Use it to explore addresses, clusters, blocks, transactions, tags, token activity, and exchange-rate context, and to integrate investigation workflows into your own applications and automation. ## Versioning and deprecation policy The API follows semantic versioning. Minor releases are additive and backwards-compatible; breaking changes only happen in major releases, which are rare and announced in advance. Deprecated endpoints and fields remain fully functional for at least six months after they are marked deprecated. During that window they are highlighted with a strikethrough in the docs and in generated clients, and responses from deprecated endpoints carry a `Deprecation` HTTP header that client tooling can detect. Replacement endpoints and fields are always introduced before the deprecated surface is removed. See the [full versioning and deprecation policy](https://github.com/graphsense/graphsense-lib/blob/master/README.md#rest-api-evolution-and-deprecation-policy) for details. # noqa: E501
|
|
7
7
|
|
|
8
8
|
Contact: contact@iknaio.com
|
|
9
9
|
Generated by: https://openapi-generator.tech
|
|
@@ -20,6 +20,7 @@ from typing_extensions import Annotated
|
|
|
20
20
|
from graphsense.models.address import Address
|
|
21
21
|
from graphsense.models.address_tags import AddressTags
|
|
22
22
|
from graphsense.models.address_txs import AddressTxs
|
|
23
|
+
from graphsense.models.cluster import Cluster
|
|
23
24
|
from graphsense.models.entity import Entity
|
|
24
25
|
from graphsense.models.links import Links
|
|
25
26
|
from graphsense.models.neighbor_addresses import NeighborAddresses
|
|
@@ -433,6 +434,305 @@ class AddressesApi:
|
|
|
433
434
|
|
|
434
435
|
|
|
435
436
|
|
|
437
|
+
@validate_call_compat
|
|
438
|
+
def get_address_cluster(
|
|
439
|
+
self,
|
|
440
|
+
currency: Annotated[StrictStr, Field(description="The cryptocurrency code (e.g., btc)")],
|
|
441
|
+
address: Annotated[StrictStr, Field(description="The cryptocurrency address")],
|
|
442
|
+
include_actors: Annotated[Optional[StrictBool], Field(description="Whether to include actor information")] = None,
|
|
443
|
+
_request_timeout: Union[
|
|
444
|
+
None,
|
|
445
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
446
|
+
Tuple[
|
|
447
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
448
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
449
|
+
]
|
|
450
|
+
] = None,
|
|
451
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
452
|
+
_content_type: Optional[StrictStr] = None,
|
|
453
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
454
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
455
|
+
) -> Cluster:
|
|
456
|
+
"""Get the cluster for an address
|
|
457
|
+
|
|
458
|
+
Returns the address cluster that contains the given address.
|
|
459
|
+
|
|
460
|
+
:param currency: The cryptocurrency code (e.g., btc) (required)
|
|
461
|
+
:type currency: str
|
|
462
|
+
:param address: The cryptocurrency address (required)
|
|
463
|
+
:type address: str
|
|
464
|
+
:param include_actors: Whether to include actor information
|
|
465
|
+
:type include_actors: bool
|
|
466
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
467
|
+
number provided, it will be total request
|
|
468
|
+
timeout. It can also be a pair (tuple) of
|
|
469
|
+
(connection, read) timeouts.
|
|
470
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
471
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
472
|
+
request; this effectively ignores the
|
|
473
|
+
authentication in the spec for a single request.
|
|
474
|
+
:type _request_auth: dict, optional
|
|
475
|
+
:param _content_type: force content-type for the request.
|
|
476
|
+
:type _content_type: str, Optional
|
|
477
|
+
:param _headers: set to override the headers for a single
|
|
478
|
+
request; this effectively ignores the headers
|
|
479
|
+
in the spec for a single request.
|
|
480
|
+
:type _headers: dict, optional
|
|
481
|
+
:param _host_index: set to override the host_index for a single
|
|
482
|
+
request; this effectively ignores the host_index
|
|
483
|
+
in the spec for a single request.
|
|
484
|
+
:type _host_index: int, optional
|
|
485
|
+
:return: Returns the result object.
|
|
486
|
+
""" # noqa: E501
|
|
487
|
+
|
|
488
|
+
_param = self._get_address_cluster_serialize(
|
|
489
|
+
currency=currency,
|
|
490
|
+
address=address,
|
|
491
|
+
include_actors=include_actors,
|
|
492
|
+
_request_auth=_request_auth,
|
|
493
|
+
_content_type=_content_type,
|
|
494
|
+
_headers=_headers,
|
|
495
|
+
_host_index=_host_index
|
|
496
|
+
)
|
|
497
|
+
|
|
498
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
499
|
+
'200': "Cluster",
|
|
500
|
+
'404': None,
|
|
501
|
+
'422': "HTTPValidationError",
|
|
502
|
+
}
|
|
503
|
+
response_data = self.api_client.call_api(
|
|
504
|
+
*_param,
|
|
505
|
+
_request_timeout=_request_timeout
|
|
506
|
+
)
|
|
507
|
+
response_data.read()
|
|
508
|
+
return self.api_client.response_deserialize(
|
|
509
|
+
response_data=response_data,
|
|
510
|
+
response_types_map=_response_types_map,
|
|
511
|
+
).data
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
@validate_call_compat
|
|
515
|
+
def get_address_cluster_with_http_info(
|
|
516
|
+
self,
|
|
517
|
+
currency: Annotated[StrictStr, Field(description="The cryptocurrency code (e.g., btc)")],
|
|
518
|
+
address: Annotated[StrictStr, Field(description="The cryptocurrency address")],
|
|
519
|
+
include_actors: Annotated[Optional[StrictBool], Field(description="Whether to include actor information")] = None,
|
|
520
|
+
_request_timeout: Union[
|
|
521
|
+
None,
|
|
522
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
523
|
+
Tuple[
|
|
524
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
525
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
526
|
+
]
|
|
527
|
+
] = None,
|
|
528
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
529
|
+
_content_type: Optional[StrictStr] = None,
|
|
530
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
531
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
532
|
+
) -> ApiResponse[Cluster]:
|
|
533
|
+
"""Get the cluster for an address
|
|
534
|
+
|
|
535
|
+
Returns the address cluster that contains the given address.
|
|
536
|
+
|
|
537
|
+
:param currency: The cryptocurrency code (e.g., btc) (required)
|
|
538
|
+
:type currency: str
|
|
539
|
+
:param address: The cryptocurrency address (required)
|
|
540
|
+
:type address: str
|
|
541
|
+
:param include_actors: Whether to include actor information
|
|
542
|
+
:type include_actors: bool
|
|
543
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
544
|
+
number provided, it will be total request
|
|
545
|
+
timeout. It can also be a pair (tuple) of
|
|
546
|
+
(connection, read) timeouts.
|
|
547
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
548
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
549
|
+
request; this effectively ignores the
|
|
550
|
+
authentication in the spec for a single request.
|
|
551
|
+
:type _request_auth: dict, optional
|
|
552
|
+
:param _content_type: force content-type for the request.
|
|
553
|
+
:type _content_type: str, Optional
|
|
554
|
+
:param _headers: set to override the headers for a single
|
|
555
|
+
request; this effectively ignores the headers
|
|
556
|
+
in the spec for a single request.
|
|
557
|
+
:type _headers: dict, optional
|
|
558
|
+
:param _host_index: set to override the host_index for a single
|
|
559
|
+
request; this effectively ignores the host_index
|
|
560
|
+
in the spec for a single request.
|
|
561
|
+
:type _host_index: int, optional
|
|
562
|
+
:return: Returns the result object.
|
|
563
|
+
""" # noqa: E501
|
|
564
|
+
|
|
565
|
+
_param = self._get_address_cluster_serialize(
|
|
566
|
+
currency=currency,
|
|
567
|
+
address=address,
|
|
568
|
+
include_actors=include_actors,
|
|
569
|
+
_request_auth=_request_auth,
|
|
570
|
+
_content_type=_content_type,
|
|
571
|
+
_headers=_headers,
|
|
572
|
+
_host_index=_host_index
|
|
573
|
+
)
|
|
574
|
+
|
|
575
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
576
|
+
'200': "Cluster",
|
|
577
|
+
'404': None,
|
|
578
|
+
'422': "HTTPValidationError",
|
|
579
|
+
}
|
|
580
|
+
response_data = self.api_client.call_api(
|
|
581
|
+
*_param,
|
|
582
|
+
_request_timeout=_request_timeout
|
|
583
|
+
)
|
|
584
|
+
response_data.read()
|
|
585
|
+
return self.api_client.response_deserialize(
|
|
586
|
+
response_data=response_data,
|
|
587
|
+
response_types_map=_response_types_map,
|
|
588
|
+
)
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
@validate_call_compat
|
|
592
|
+
def get_address_cluster_without_preload_content(
|
|
593
|
+
self,
|
|
594
|
+
currency: Annotated[StrictStr, Field(description="The cryptocurrency code (e.g., btc)")],
|
|
595
|
+
address: Annotated[StrictStr, Field(description="The cryptocurrency address")],
|
|
596
|
+
include_actors: Annotated[Optional[StrictBool], Field(description="Whether to include actor information")] = None,
|
|
597
|
+
_request_timeout: Union[
|
|
598
|
+
None,
|
|
599
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
600
|
+
Tuple[
|
|
601
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
602
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
603
|
+
]
|
|
604
|
+
] = None,
|
|
605
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
606
|
+
_content_type: Optional[StrictStr] = None,
|
|
607
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
608
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
609
|
+
) -> RESTResponseType:
|
|
610
|
+
"""Get the cluster for an address
|
|
611
|
+
|
|
612
|
+
Returns the address cluster that contains the given address.
|
|
613
|
+
|
|
614
|
+
:param currency: The cryptocurrency code (e.g., btc) (required)
|
|
615
|
+
:type currency: str
|
|
616
|
+
:param address: The cryptocurrency address (required)
|
|
617
|
+
:type address: str
|
|
618
|
+
:param include_actors: Whether to include actor information
|
|
619
|
+
:type include_actors: bool
|
|
620
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
621
|
+
number provided, it will be total request
|
|
622
|
+
timeout. It can also be a pair (tuple) of
|
|
623
|
+
(connection, read) timeouts.
|
|
624
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
625
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
626
|
+
request; this effectively ignores the
|
|
627
|
+
authentication in the spec for a single request.
|
|
628
|
+
:type _request_auth: dict, optional
|
|
629
|
+
:param _content_type: force content-type for the request.
|
|
630
|
+
:type _content_type: str, Optional
|
|
631
|
+
:param _headers: set to override the headers for a single
|
|
632
|
+
request; this effectively ignores the headers
|
|
633
|
+
in the spec for a single request.
|
|
634
|
+
:type _headers: dict, optional
|
|
635
|
+
:param _host_index: set to override the host_index for a single
|
|
636
|
+
request; this effectively ignores the host_index
|
|
637
|
+
in the spec for a single request.
|
|
638
|
+
:type _host_index: int, optional
|
|
639
|
+
:return: Returns the result object.
|
|
640
|
+
""" # noqa: E501
|
|
641
|
+
|
|
642
|
+
_param = self._get_address_cluster_serialize(
|
|
643
|
+
currency=currency,
|
|
644
|
+
address=address,
|
|
645
|
+
include_actors=include_actors,
|
|
646
|
+
_request_auth=_request_auth,
|
|
647
|
+
_content_type=_content_type,
|
|
648
|
+
_headers=_headers,
|
|
649
|
+
_host_index=_host_index
|
|
650
|
+
)
|
|
651
|
+
|
|
652
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
653
|
+
'200': "Cluster",
|
|
654
|
+
'404': None,
|
|
655
|
+
'422': "HTTPValidationError",
|
|
656
|
+
}
|
|
657
|
+
response_data = self.api_client.call_api(
|
|
658
|
+
*_param,
|
|
659
|
+
_request_timeout=_request_timeout
|
|
660
|
+
)
|
|
661
|
+
return response_data.response
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
def _get_address_cluster_serialize(
|
|
665
|
+
self,
|
|
666
|
+
currency,
|
|
667
|
+
address,
|
|
668
|
+
include_actors,
|
|
669
|
+
_request_auth,
|
|
670
|
+
_content_type,
|
|
671
|
+
_headers,
|
|
672
|
+
_host_index,
|
|
673
|
+
) -> RequestSerialized:
|
|
674
|
+
|
|
675
|
+
_host = None
|
|
676
|
+
|
|
677
|
+
_collection_formats: Dict[str, str] = {
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
_path_params: Dict[str, str] = {}
|
|
681
|
+
_query_params: List[Tuple[str, str]] = []
|
|
682
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
683
|
+
_form_params: List[Tuple[str, str]] = []
|
|
684
|
+
_files: Dict[
|
|
685
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
686
|
+
] = {}
|
|
687
|
+
_body_params: Optional[bytes] = None
|
|
688
|
+
|
|
689
|
+
# process the path parameters
|
|
690
|
+
if currency is not None:
|
|
691
|
+
_path_params['currency'] = currency
|
|
692
|
+
if address is not None:
|
|
693
|
+
_path_params['address'] = address
|
|
694
|
+
# process the query parameters
|
|
695
|
+
if include_actors is not None:
|
|
696
|
+
|
|
697
|
+
_query_params.append(('include_actors', include_actors))
|
|
698
|
+
|
|
699
|
+
# process the header parameters
|
|
700
|
+
# process the form parameters
|
|
701
|
+
# process the body parameter
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
# set the HTTP header `Accept`
|
|
705
|
+
if 'Accept' not in _header_params:
|
|
706
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
707
|
+
[
|
|
708
|
+
'application/json'
|
|
709
|
+
]
|
|
710
|
+
)
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
# authentication setting
|
|
714
|
+
_auth_settings: List[str] = [
|
|
715
|
+
'api_key'
|
|
716
|
+
]
|
|
717
|
+
|
|
718
|
+
return self.api_client.param_serialize(
|
|
719
|
+
method='GET',
|
|
720
|
+
resource_path='/{currency}/addresses/{address}/cluster',
|
|
721
|
+
path_params=_path_params,
|
|
722
|
+
query_params=_query_params,
|
|
723
|
+
header_params=_header_params,
|
|
724
|
+
body=_body_params,
|
|
725
|
+
post_params=_form_params,
|
|
726
|
+
files=_files,
|
|
727
|
+
auth_settings=_auth_settings,
|
|
728
|
+
collection_formats=_collection_formats,
|
|
729
|
+
_host=_host,
|
|
730
|
+
_request_auth=_request_auth
|
|
731
|
+
)
|
|
732
|
+
|
|
733
|
+
|
|
734
|
+
|
|
735
|
+
|
|
436
736
|
@validate_call_compat
|
|
437
737
|
def get_address_entity(
|
|
438
738
|
self,
|
|
@@ -452,9 +752,9 @@ class AddressesApi:
|
|
|
452
752
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
453
753
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
454
754
|
) -> Entity:
|
|
455
|
-
"""Get the entity for an address
|
|
755
|
+
"""(Deprecated) Get the entity for an address
|
|
456
756
|
|
|
457
|
-
Returns the
|
|
757
|
+
Deprecated alias for `GET /{currency}/addresses/{address}/cluster`. Returns the address cluster that contains the given address.
|
|
458
758
|
|
|
459
759
|
:param currency: The cryptocurrency code (e.g., btc) (required)
|
|
460
760
|
:type currency: str
|
|
@@ -483,6 +783,7 @@ class AddressesApi:
|
|
|
483
783
|
:type _host_index: int, optional
|
|
484
784
|
:return: Returns the result object.
|
|
485
785
|
""" # noqa: E501
|
|
786
|
+
warnings.warn("GET /{currency}/addresses/{address}/entity is deprecated.", DeprecationWarning)
|
|
486
787
|
|
|
487
788
|
_param = self._get_address_entity_serialize(
|
|
488
789
|
currency=currency,
|
|
@@ -529,9 +830,9 @@ class AddressesApi:
|
|
|
529
830
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
530
831
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
531
832
|
) -> ApiResponse[Entity]:
|
|
532
|
-
"""Get the entity for an address
|
|
833
|
+
"""(Deprecated) Get the entity for an address
|
|
533
834
|
|
|
534
|
-
Returns the
|
|
835
|
+
Deprecated alias for `GET /{currency}/addresses/{address}/cluster`. Returns the address cluster that contains the given address.
|
|
535
836
|
|
|
536
837
|
:param currency: The cryptocurrency code (e.g., btc) (required)
|
|
537
838
|
:type currency: str
|
|
@@ -560,6 +861,7 @@ class AddressesApi:
|
|
|
560
861
|
:type _host_index: int, optional
|
|
561
862
|
:return: Returns the result object.
|
|
562
863
|
""" # noqa: E501
|
|
864
|
+
warnings.warn("GET /{currency}/addresses/{address}/entity is deprecated.", DeprecationWarning)
|
|
563
865
|
|
|
564
866
|
_param = self._get_address_entity_serialize(
|
|
565
867
|
currency=currency,
|
|
@@ -606,9 +908,9 @@ class AddressesApi:
|
|
|
606
908
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
607
909
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
608
910
|
) -> RESTResponseType:
|
|
609
|
-
"""Get the entity for an address
|
|
911
|
+
"""(Deprecated) Get the entity for an address
|
|
610
912
|
|
|
611
|
-
Returns the
|
|
913
|
+
Deprecated alias for `GET /{currency}/addresses/{address}/cluster`. Returns the address cluster that contains the given address.
|
|
612
914
|
|
|
613
915
|
:param currency: The cryptocurrency code (e.g., btc) (required)
|
|
614
916
|
:type currency: str
|
|
@@ -637,6 +939,7 @@ class AddressesApi:
|
|
|
637
939
|
:type _host_index: int, optional
|
|
638
940
|
:return: Returns the result object.
|
|
639
941
|
""" # noqa: E501
|
|
942
|
+
warnings.warn("GET /{currency}/addresses/{address}/entity is deprecated.", DeprecationWarning)
|
|
640
943
|
|
|
641
944
|
_param = self._get_address_entity_serialize(
|
|
642
945
|
currency=currency,
|
graphsense/api/blocks_api.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"""
|
|
4
4
|
GraphSense API
|
|
5
5
|
|
|
6
|
-
GraphSense API provides programmatic access to blockchain analytics data across multiple ledgers. Use it to explore addresses,
|
|
6
|
+
GraphSense API provides programmatic access to blockchain analytics data across multiple ledgers. Use it to explore addresses, clusters, blocks, transactions, tags, token activity, and exchange-rate context, and to integrate investigation workflows into your own applications and automation. ## Versioning and deprecation policy The API follows semantic versioning. Minor releases are additive and backwards-compatible; breaking changes only happen in major releases, which are rare and announced in advance. Deprecated endpoints and fields remain fully functional for at least six months after they are marked deprecated. During that window they are highlighted with a strikethrough in the docs and in generated clients, and responses from deprecated endpoints carry a `Deprecation` HTTP header that client tooling can detect. Replacement endpoints and fields are always introduced before the deprecated surface is removed. See the [full versioning and deprecation policy](https://github.com/graphsense/graphsense-lib/blob/master/README.md#rest-api-evolution-and-deprecation-policy) for details. # noqa: E501
|
|
7
7
|
|
|
8
8
|
Contact: contact@iknaio.com
|
|
9
9
|
Generated by: https://openapi-generator.tech
|
graphsense/api/bulk_api.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"""
|
|
4
4
|
GraphSense API
|
|
5
5
|
|
|
6
|
-
GraphSense API provides programmatic access to blockchain analytics data across multiple ledgers. Use it to explore addresses,
|
|
6
|
+
GraphSense API provides programmatic access to blockchain analytics data across multiple ledgers. Use it to explore addresses, clusters, blocks, transactions, tags, token activity, and exchange-rate context, and to integrate investigation workflows into your own applications and automation. ## Versioning and deprecation policy The API follows semantic versioning. Minor releases are additive and backwards-compatible; breaking changes only happen in major releases, which are rare and announced in advance. Deprecated endpoints and fields remain fully functional for at least six months after they are marked deprecated. During that window they are highlighted with a strikethrough in the docs and in generated clients, and responses from deprecated endpoints carry a `Deprecation` HTTP header that client tooling can detect. Replacement endpoints and fields are always introduced before the deprecated surface is removed. See the [full versioning and deprecation policy](https://github.com/graphsense/graphsense-lib/blob/master/README.md#rest-api-evolution-and-deprecation-policy) for details. # noqa: E501
|
|
7
7
|
|
|
8
8
|
Contact: contact@iknaio.com
|
|
9
9
|
Generated by: https://openapi-generator.tech
|