diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 11364fb..37ab040 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -18,8 +18,11 @@ docs/AddCollateralRequestBody.md
docs/AddContractAssetRequest.md
docs/AddCosignerRequest.md
docs/AddCosignerResponse.md
+docs/AddExchangeAccountRequest.md
+docs/AddExchangeAccountResponse.md
docs/AdditionalInfo.md
docs/AmlRegistrationResult.md
+docs/AmlRegistrationResultFullPayload.md
docs/AmlScreeningResult.md
docs/AmountAggregationTimePeriodMethod.md
docs/AmountAndChainDescriptor.md
@@ -83,8 +86,10 @@ docs/CollectionTokenMetadataDto.md
docs/CollectionType.md
docs/ComplianceApi.md
docs/ComplianceResult.md
+docs/ComplianceResultFullPayload.md
docs/ComplianceScreeningConfigurationApi.md
docs/ComplianceScreeningResult.md
+docs/ComplianceScreeningResultFullPayload.md
docs/ConfigChangeRequestStatus.md
docs/ConfigConversionOperationSnapshot.md
docs/ConfigDisbursementOperationSnapshot.md
@@ -619,8 +624,11 @@ fireblocks/models/add_collateral_request_body.py
fireblocks/models/add_contract_asset_request.py
fireblocks/models/add_cosigner_request.py
fireblocks/models/add_cosigner_response.py
+fireblocks/models/add_exchange_account_request.py
+fireblocks/models/add_exchange_account_response.py
fireblocks/models/additional_info.py
fireblocks/models/aml_registration_result.py
+fireblocks/models/aml_registration_result_full_payload.py
fireblocks/models/aml_screening_result.py
fireblocks/models/amount_aggregation_time_period_method.py
fireblocks/models/amount_and_chain_descriptor.py
@@ -679,7 +687,9 @@ fireblocks/models/collection_token_metadata_attribute_dto.py
fireblocks/models/collection_token_metadata_dto.py
fireblocks/models/collection_type.py
fireblocks/models/compliance_result.py
+fireblocks/models/compliance_result_full_payload.py
fireblocks/models/compliance_screening_result.py
+fireblocks/models/compliance_screening_result_full_payload.py
fireblocks/models/config_change_request_status.py
fireblocks/models/config_conversion_operation_snapshot.py
fireblocks/models/config_disbursement_operation_snapshot.py
@@ -1148,8 +1158,11 @@ test/test_add_collateral_request_body.py
test/test_add_contract_asset_request.py
test/test_add_cosigner_request.py
test/test_add_cosigner_response.py
+test/test_add_exchange_account_request.py
+test/test_add_exchange_account_response.py
test/test_additional_info.py
test/test_aml_registration_result.py
+test/test_aml_registration_result_full_payload.py
test/test_aml_screening_result.py
test/test_amount_aggregation_time_period_method.py
test/test_amount_and_chain_descriptor.py
@@ -1214,8 +1227,10 @@ test/test_collection_token_metadata_dto.py
test/test_collection_type.py
test/test_compliance_api.py
test/test_compliance_result.py
+test/test_compliance_result_full_payload.py
test/test_compliance_screening_configuration_api.py
test/test_compliance_screening_result.py
+test/test_compliance_screening_result_full_payload.py
test/test_config_change_request_status.py
test/test_config_conversion_operation_snapshot.py
test/test_config_disbursement_operation_snapshot.py
diff --git a/README.md b/README.md
index dfdb3ae..21bc2a0 100644
--- a/README.md
+++ b/README.md
@@ -247,6 +247,7 @@ Class | Method | HTTP request | Description
*ComplianceApi* | [**get_aml_post_screening_policy**](docs/ComplianceApi.md#get_aml_post_screening_policy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy
*ComplianceApi* | [**get_aml_screening_policy**](docs/ComplianceApi.md#get_aml_screening_policy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy
*ComplianceApi* | [**get_post_screening_policy**](docs/ComplianceApi.md#get_post_screening_policy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy
+*ComplianceApi* | [**get_screening_full_details**](docs/ComplianceApi.md#get_screening_full_details) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction.
*ComplianceApi* | [**get_screening_policy**](docs/ComplianceApi.md#get_screening_policy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy
*ComplianceApi* | [**retry_rejected_transaction_bypass_screening_checks**](docs/ComplianceApi.md#retry_rejected_transaction_bypass_screening_checks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check
*ComplianceApi* | [**update_aml_screening_configuration**](docs/ComplianceApi.md#update_aml_screening_configuration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration
@@ -291,9 +292,11 @@ Class | Method | HTTP request | Description
*DeployedContractsApi* | [**get_deployed_contracts**](docs/DeployedContractsApi.md#get_deployed_contracts) | **GET** /tokenization/contracts | List deployed contracts data
*EmbeddedWalletsApi* | [**get_public_key_info_for_address_ncw**](docs/EmbeddedWalletsApi.md#get_public_key_info_for_address_ncw) | **GET** /ncw/{walletId}/accounts/{accountId}/{assetId}/{change}/{addressIndex}/public_key_info | Get the public key of an asset
*EmbeddedWalletsApi* | [**get_public_key_info_ncw**](docs/EmbeddedWalletsApi.md#get_public_key_info_ncw) | **GET** /ncw/{walletId}/public_key_info | Get the public key for a derivation path
+*ExchangeAccountsApi* | [**add_exchange_account**](docs/ExchangeAccountsApi.md#add_exchange_account) | **POST** /exchange_accounts | Add an exchange account
*ExchangeAccountsApi* | [**convert_assets**](docs/ExchangeAccountsApi.md#convert_assets) | **POST** /exchange_accounts/{exchangeAccountId}/convert | Convert exchange account funds from the source asset to the destination asset.
*ExchangeAccountsApi* | [**get_exchange_account**](docs/ExchangeAccountsApi.md#get_exchange_account) | **GET** /exchange_accounts/{exchangeAccountId} | Find a specific exchange account
*ExchangeAccountsApi* | [**get_exchange_account_asset**](docs/ExchangeAccountsApi.md#get_exchange_account_asset) | **GET** /exchange_accounts/{exchangeAccountId}/{assetId} | Find an asset for an exchange account
+*ExchangeAccountsApi* | [**get_exchange_accounts_credentials_public_key**](docs/ExchangeAccountsApi.md#get_exchange_accounts_credentials_public_key) | **GET** /exchange_accounts/credentials_public_key | Get public key to encrypt exchange credentials
*ExchangeAccountsApi* | [**get_paged_exchange_accounts**](docs/ExchangeAccountsApi.md#get_paged_exchange_accounts) | **GET** /exchange_accounts/paged | Pagination list exchange accounts
*ExchangeAccountsApi* | [**internal_transfer**](docs/ExchangeAccountsApi.md#internal_transfer) | **POST** /exchange_accounts/{exchangeAccountId}/internal_transfer | Internal transfer for exchange accounts
*ExternalWalletsApi* | [**add_asset_to_external_wallet**](docs/ExternalWalletsApi.md#add_asset_to_external_wallet) | **POST** /external_wallets/{walletId}/{assetId} | Add an asset to an external wallet.
@@ -509,8 +512,11 @@ Class | Method | HTTP request | Description
- [AddContractAssetRequest](docs/AddContractAssetRequest.md)
- [AddCosignerRequest](docs/AddCosignerRequest.md)
- [AddCosignerResponse](docs/AddCosignerResponse.md)
+ - [AddExchangeAccountRequest](docs/AddExchangeAccountRequest.md)
+ - [AddExchangeAccountResponse](docs/AddExchangeAccountResponse.md)
- [AdditionalInfo](docs/AdditionalInfo.md)
- [AmlRegistrationResult](docs/AmlRegistrationResult.md)
+ - [AmlRegistrationResultFullPayload](docs/AmlRegistrationResultFullPayload.md)
- [AmlScreeningResult](docs/AmlScreeningResult.md)
- [AmountAggregationTimePeriodMethod](docs/AmountAggregationTimePeriodMethod.md)
- [AmountAndChainDescriptor](docs/AmountAndChainDescriptor.md)
@@ -568,7 +574,9 @@ Class | Method | HTTP request | Description
- [CollectionTokenMetadataDto](docs/CollectionTokenMetadataDto.md)
- [CollectionType](docs/CollectionType.md)
- [ComplianceResult](docs/ComplianceResult.md)
+ - [ComplianceResultFullPayload](docs/ComplianceResultFullPayload.md)
- [ComplianceScreeningResult](docs/ComplianceScreeningResult.md)
+ - [ComplianceScreeningResultFullPayload](docs/ComplianceScreeningResultFullPayload.md)
- [ConfigChangeRequestStatus](docs/ConfigChangeRequestStatus.md)
- [ConfigConversionOperationSnapshot](docs/ConfigConversionOperationSnapshot.md)
- [ConfigDisbursementOperationSnapshot](docs/ConfigDisbursementOperationSnapshot.md)
diff --git a/docs/AddExchangeAccountRequest.md b/docs/AddExchangeAccountRequest.md
new file mode 100644
index 0000000..bd19da3
--- /dev/null
+++ b/docs/AddExchangeAccountRequest.md
@@ -0,0 +1,33 @@
+# AddExchangeAccountRequest
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**exchange_type** | [**ExchangeType**](ExchangeType.md) | |
+**name** | **str** | Display name of the exchange account |
+**creds** | **str** | Encrypted credentials | [optional]
+**key** | **str** | Api key of the exchange | [optional]
+**main_account_id** | **str** | Optional - main account id of the exchange | [optional]
+
+## Example
+
+```python
+from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AddExchangeAccountRequest from a JSON string
+add_exchange_account_request_instance = AddExchangeAccountRequest.from_json(json)
+# print the JSON string representation of the object
+print(AddExchangeAccountRequest.to_json())
+
+# convert the object into a dict
+add_exchange_account_request_dict = add_exchange_account_request_instance.to_dict()
+# create an instance of AddExchangeAccountRequest from a dict
+add_exchange_account_request_from_dict = AddExchangeAccountRequest.from_dict(add_exchange_account_request_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/AddExchangeAccountResponse.md b/docs/AddExchangeAccountResponse.md
new file mode 100644
index 0000000..c1c4e3a
--- /dev/null
+++ b/docs/AddExchangeAccountResponse.md
@@ -0,0 +1,31 @@
+# AddExchangeAccountResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Exchange account's identifier | [optional]
+**name** | **str** | Display name of the exchange account | [optional]
+**exchange_type** | [**ExchangeType**](ExchangeType.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AddExchangeAccountResponse from a JSON string
+add_exchange_account_response_instance = AddExchangeAccountResponse.from_json(json)
+# print the JSON string representation of the object
+print(AddExchangeAccountResponse.to_json())
+
+# convert the object into a dict
+add_exchange_account_response_dict = add_exchange_account_response_instance.to_dict()
+# create an instance of AddExchangeAccountResponse from a dict
+add_exchange_account_response_from_dict = AddExchangeAccountResponse.from_dict(add_exchange_account_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/AmlRegistrationResultFullPayload.md b/docs/AmlRegistrationResultFullPayload.md
new file mode 100644
index 0000000..05914be
--- /dev/null
+++ b/docs/AmlRegistrationResultFullPayload.md
@@ -0,0 +1,31 @@
+# AmlRegistrationResultFullPayload
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**provider** | **str** | | [optional]
+**success** | **bool** | | [optional]
+**timestamp** | **float** | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AmlRegistrationResultFullPayload from a JSON string
+aml_registration_result_full_payload_instance = AmlRegistrationResultFullPayload.from_json(json)
+# print the JSON string representation of the object
+print(AmlRegistrationResultFullPayload.to_json())
+
+# convert the object into a dict
+aml_registration_result_full_payload_dict = aml_registration_result_full_payload_instance.to_dict()
+# create an instance of AmlRegistrationResultFullPayload from a dict
+aml_registration_result_full_payload_from_dict = AmlRegistrationResultFullPayload.from_dict(aml_registration_result_full_payload_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md
index d7905f3..53bb8a0 100644
--- a/docs/ComplianceApi.md
+++ b/docs/ComplianceApi.md
@@ -7,6 +7,7 @@ Method | HTTP request | Description
[**get_aml_post_screening_policy**](ComplianceApi.md#get_aml_post_screening_policy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy
[**get_aml_screening_policy**](ComplianceApi.md#get_aml_screening_policy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy
[**get_post_screening_policy**](ComplianceApi.md#get_post_screening_policy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy
+[**get_screening_full_details**](ComplianceApi.md#get_screening_full_details) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction.
[**get_screening_policy**](ComplianceApi.md#get_screening_policy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy
[**retry_rejected_transaction_bypass_screening_checks**](ComplianceApi.md#retry_rejected_transaction_bypass_screening_checks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check
[**update_aml_screening_configuration**](ComplianceApi.md#update_aml_screening_configuration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration
@@ -221,6 +222,80 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **get_screening_full_details**
+> ComplianceResultFullPayload get_screening_full_details(tx_id)
+
+Provides all the compliance details for the given screened transaction.
+
+Provides all the compliance details for the given screened transaction.
+
+### Example
+
+
+```python
+from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+from pprint import pprint
+
+# load the secret key content from a file
+with open('your_secret_key_file_path', 'r') as file:
+ secret_key_value = file.read()
+
+# build the configuration
+configuration = ClientConfiguration(
+ api_key="your_api_key",
+ secret_key=secret_key_value,
+ base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with Fireblocks(configuration) as fireblocks:
+ tx_id = '550e8400-e29b-41d4-a716-446655440000' # str | Fireblocks transaction ID of the screened transaction
+
+ try:
+ # Provides all the compliance details for the given screened transaction.
+ api_response = fireblocks.compliance.get_screening_full_details(tx_id).result()
+ print("The response of ComplianceApi->get_screening_full_details:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ComplianceApi->get_screening_full_details: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **tx_id** | **str**| Fireblocks transaction ID of the screened transaction |
+
+### Return type
+
+[**ComplianceResultFullPayload**](ComplianceResultFullPayload.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | A compliance object | * X-Request-ID -
|
+**0** | Error Response | * X-Request-ID -
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **get_screening_policy**
> ScreeningProviderRulesConfigurationResponse get_screening_policy()
diff --git a/docs/ComplianceResultFullPayload.md b/docs/ComplianceResultFullPayload.md
new file mode 100644
index 0000000..6a143cf
--- /dev/null
+++ b/docs/ComplianceResultFullPayload.md
@@ -0,0 +1,34 @@
+# ComplianceResultFullPayload
+
+The result of the Compliance AML/Travel Rule screening.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**aml** | [**List[ComplianceScreeningResultFullPayload]**](ComplianceScreeningResultFullPayload.md) | The end result of the AML screening. | [optional]
+**tr** | [**List[ComplianceScreeningResultFullPayload]**](ComplianceScreeningResultFullPayload.md) | The result of the Travel Rule screening. | [optional]
+**aml_list** | [**List[ComplianceScreeningResultFullPayload]**](ComplianceScreeningResultFullPayload.md) | The list of all results of the AML screening. | [optional]
+**status** | **str** | Status of compliance result screening. | [optional]
+**aml_registration** | [**List[AmlRegistrationResultFullPayload]**](AmlRegistrationResultFullPayload.md) | The results of the AML address registration. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ComplianceResultFullPayload from a JSON string
+compliance_result_full_payload_instance = ComplianceResultFullPayload.from_json(json)
+# print the JSON string representation of the object
+print(ComplianceResultFullPayload.to_json())
+
+# convert the object into a dict
+compliance_result_full_payload_dict = compliance_result_full_payload_instance.to_dict()
+# create an instance of ComplianceResultFullPayload from a dict
+compliance_result_full_payload_from_dict = ComplianceResultFullPayload.from_dict(compliance_result_full_payload_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ComplianceScreeningResultFullPayload.md b/docs/ComplianceScreeningResultFullPayload.md
new file mode 100644
index 0000000..2a6623d
--- /dev/null
+++ b/docs/ComplianceScreeningResultFullPayload.md
@@ -0,0 +1,33 @@
+# ComplianceScreeningResultFullPayload
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**provider** | **str** | | [optional]
+**payload** | **object** | The payload of the screening result. The payload is a JSON object that contains the screening result. The payload is different for each screening provider. | [optional]
+**bypass_reason** | **str** | | [optional]
+**screening_status** | **str** | | [optional]
+**timestamp** | **float** | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ComplianceScreeningResultFullPayload from a JSON string
+compliance_screening_result_full_payload_instance = ComplianceScreeningResultFullPayload.from_json(json)
+# print the JSON string representation of the object
+print(ComplianceScreeningResultFullPayload.to_json())
+
+# convert the object into a dict
+compliance_screening_result_full_payload_dict = compliance_screening_result_full_payload_instance.to_dict()
+# create an instance of ComplianceScreeningResultFullPayload from a dict
+compliance_screening_result_full_payload_from_dict = ComplianceScreeningResultFullPayload.from_dict(compliance_screening_result_full_payload_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ExchangeAccountsApi.md b/docs/ExchangeAccountsApi.md
index c7a0d8a..454bd18 100644
--- a/docs/ExchangeAccountsApi.md
+++ b/docs/ExchangeAccountsApi.md
@@ -4,13 +4,92 @@ All URIs are relative to *https://api.fireblocks.io/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
+[**add_exchange_account**](ExchangeAccountsApi.md#add_exchange_account) | **POST** /exchange_accounts | Add an exchange account
[**convert_assets**](ExchangeAccountsApi.md#convert_assets) | **POST** /exchange_accounts/{exchangeAccountId}/convert | Convert exchange account funds from the source asset to the destination asset.
[**get_exchange_account**](ExchangeAccountsApi.md#get_exchange_account) | **GET** /exchange_accounts/{exchangeAccountId} | Find a specific exchange account
[**get_exchange_account_asset**](ExchangeAccountsApi.md#get_exchange_account_asset) | **GET** /exchange_accounts/{exchangeAccountId}/{assetId} | Find an asset for an exchange account
+[**get_exchange_accounts_credentials_public_key**](ExchangeAccountsApi.md#get_exchange_accounts_credentials_public_key) | **GET** /exchange_accounts/credentials_public_key | Get public key to encrypt exchange credentials
[**get_paged_exchange_accounts**](ExchangeAccountsApi.md#get_paged_exchange_accounts) | **GET** /exchange_accounts/paged | Pagination list exchange accounts
[**internal_transfer**](ExchangeAccountsApi.md#internal_transfer) | **POST** /exchange_accounts/{exchangeAccountId}/internal_transfer | Internal transfer for exchange accounts
+# **add_exchange_account**
+> AddExchangeAccountResponse add_exchange_account(add_exchange_account_request, idempotency_key=idempotency_key)
+
+Add an exchange account
+
+Add an exchange account to exchanges.
+
+### Example
+
+
+```python
+from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest
+from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+from pprint import pprint
+
+# load the secret key content from a file
+with open('your_secret_key_file_path', 'r') as file:
+ secret_key_value = file.read()
+
+# build the configuration
+configuration = ClientConfiguration(
+ api_key="your_api_key",
+ secret_key=secret_key_value,
+ base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with Fireblocks(configuration) as fireblocks:
+ add_exchange_account_request = fireblocks.AddExchangeAccountRequest() # AddExchangeAccountRequest |
+ idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional)
+
+ try:
+ # Add an exchange account
+ api_response = fireblocks.exchange_accounts.add_exchange_account(add_exchange_account_request, idempotency_key=idempotency_key).result()
+ print("The response of ExchangeAccountsApi->add_exchange_account:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ExchangeAccountsApi->add_exchange_account: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **add_exchange_account_request** | [**AddExchangeAccountRequest**](AddExchangeAccountRequest.md)| |
+ **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional]
+
+### Return type
+
+[**AddExchangeAccountResponse**](AddExchangeAccountResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | An Exchange Account identifier object | * X-Request-ID -
|
+**0** | Error Response | * X-Request-ID -
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **convert_assets**
> ConvertAssetsResponse convert_assets(exchange_account_id, idempotency_key=idempotency_key, convert_assets_request=convert_assets_request)
@@ -240,6 +319,76 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **get_exchange_accounts_credentials_public_key**
+> GetExchangeAccountsCredentialsPublicKeyResponse get_exchange_accounts_credentials_public_key()
+
+Get public key to encrypt exchange credentials
+
+Return public key
+
+### Example
+
+
+```python
+from fireblocks.models.get_exchange_accounts_credentials_public_key_response import GetExchangeAccountsCredentialsPublicKeyResponse
+from fireblocks.client import Fireblocks
+from fireblocks.client_configuration import ClientConfiguration
+from fireblocks.exceptions import ApiException
+from fireblocks.base_path import BasePath
+from pprint import pprint
+
+# load the secret key content from a file
+with open('your_secret_key_file_path', 'r') as file:
+ secret_key_value = file.read()
+
+# build the configuration
+configuration = ClientConfiguration(
+ api_key="your_api_key",
+ secret_key=secret_key_value,
+ base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1"
+)
+
+
+# Enter a context with an instance of the API client
+with Fireblocks(configuration) as fireblocks:
+
+ try:
+ # Get public key to encrypt exchange credentials
+ api_response = fireblocks.exchange_accounts.get_exchange_accounts_credentials_public_key().result()
+ print("The response of ExchangeAccountsApi->get_exchange_accounts_credentials_public_key:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ExchangeAccountsApi->get_exchange_accounts_credentials_public_key: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**GetExchangeAccountsCredentialsPublicKeyResponse**](GetExchangeAccountsCredentialsPublicKeyResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | public key as string | * X-Request-ID -
|
+**0** | Error Response | * X-Request-ID -
|
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **get_paged_exchange_accounts**
> List[ExchangeAccountsPaged] get_paged_exchange_accounts(limit, before=before, after=after)
diff --git a/docs/ExchangeType.md b/docs/ExchangeType.md
index ba5c4dd..d1420f6 100644
--- a/docs/ExchangeType.md
+++ b/docs/ExchangeType.md
@@ -1,5 +1,6 @@
# ExchangeType
+Exchange account's type
## Properties
diff --git a/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md b/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md
index 325e9c2..a3d2d94 100644
--- a/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md
+++ b/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md
@@ -6,6 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**public_key** | **str** | Public key string |
+**tenant_id** | **str** | Tenant identifier |
## Example
diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py
index 8e738c8..5335517 100644
--- a/fireblocks/__init__.py
+++ b/fireblocks/__init__.py
@@ -15,7 +15,7 @@
""" # noqa: E501
-__version__ = "6.0.0"
+__version__ = "0.0.0"
# import apis into sdk package
from fireblocks.api.api_user_api import ApiUserApi
@@ -107,8 +107,13 @@
from fireblocks.models.add_contract_asset_request import AddContractAssetRequest
from fireblocks.models.add_cosigner_request import AddCosignerRequest
from fireblocks.models.add_cosigner_response import AddCosignerResponse
+from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest
+from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse
from fireblocks.models.additional_info import AdditionalInfo
from fireblocks.models.aml_registration_result import AmlRegistrationResult
+from fireblocks.models.aml_registration_result_full_payload import (
+ AmlRegistrationResultFullPayload,
+)
from fireblocks.models.aml_screening_result import AmlScreeningResult
from fireblocks.models.amount_aggregation_time_period_method import (
AmountAggregationTimePeriodMethod,
@@ -180,7 +185,11 @@
from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto
from fireblocks.models.collection_type import CollectionType
from fireblocks.models.compliance_result import ComplianceResult
+from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload
from fireblocks.models.compliance_screening_result import ComplianceScreeningResult
+from fireblocks.models.compliance_screening_result_full_payload import (
+ ComplianceScreeningResultFullPayload,
+)
from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus
from fireblocks.models.config_conversion_operation_snapshot import (
ConfigConversionOperationSnapshot,
diff --git a/fireblocks/api/compliance_api.py b/fireblocks/api/compliance_api.py
index e8caa08..c5e1793 100644
--- a/fireblocks/api/compliance_api.py
+++ b/fireblocks/api/compliance_api.py
@@ -21,6 +21,7 @@
from pydantic import Field, StrictStr
from typing import Optional
from typing_extensions import Annotated
+from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload
from fireblocks.models.create_transaction_response import CreateTransactionResponse
from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest
from fireblocks.models.screening_policy_response import ScreeningPolicyResponse
@@ -397,6 +398,132 @@ def _get_post_screening_policy_serialize(
+ @validate_call
+ def get_screening_full_details(
+ self,
+ tx_id: Annotated[StrictStr, Field(description="Fireblocks transaction ID of the screened transaction")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Future[ApiResponse[ComplianceResultFullPayload]]:
+ """Provides all the compliance details for the given screened transaction.
+
+ Provides all the compliance details for the given screened transaction.
+
+ :param tx_id: Fireblocks transaction ID of the screened transaction (required)
+ :type tx_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ validate_not_empty_string(function_name="get_screening_full_details", param_name="tx_id", param_value=tx_id)
+
+ _param = self._get_screening_full_details_serialize(
+ tx_id=tx_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ComplianceResultFullPayload",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_screening_full_details_serialize(
+ self,
+ tx_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[str, Union[str, bytes]] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if tx_id is not None:
+ _path_params['txId'] = tx_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/screening/transaction/{txId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def get_screening_policy(
self,
diff --git a/fireblocks/api/exchange_accounts_api.py b/fireblocks/api/exchange_accounts_api.py
index a843d47..b51c8d8 100644
--- a/fireblocks/api/exchange_accounts_api.py
+++ b/fireblocks/api/exchange_accounts_api.py
@@ -21,12 +21,15 @@
from pydantic import Field, StrictStr
from typing import List, Optional, Union
from typing_extensions import Annotated
+from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest
+from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse
from fireblocks.models.convert_assets_request import ConvertAssetsRequest
from fireblocks.models.convert_assets_response import ConvertAssetsResponse
from fireblocks.models.create_internal_transfer_request import CreateInternalTransferRequest
from fireblocks.models.exchange_account import ExchangeAccount
from fireblocks.models.exchange_accounts_paged import ExchangeAccountsPaged
from fireblocks.models.exchange_asset import ExchangeAsset
+from fireblocks.models.get_exchange_accounts_credentials_public_key_response import GetExchangeAccountsCredentialsPublicKeyResponse
from fireblocks.models.internal_transfer_response import InternalTransferResponse
from fireblocks.api_client import ApiClient, RequestSerialized
@@ -48,6 +51,151 @@ def __init__(self, api_client=None) -> None:
self.api_client = api_client
+ @validate_call
+ def add_exchange_account(
+ self,
+ add_exchange_account_request: AddExchangeAccountRequest,
+ idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Future[ApiResponse[AddExchangeAccountResponse]]:
+ """Add an exchange account
+
+ Add an exchange account to exchanges.
+
+ :param add_exchange_account_request: (required)
+ :type add_exchange_account_request: AddExchangeAccountRequest
+ :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ :type idempotency_key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+
+ _param = self._add_exchange_account_serialize(
+ add_exchange_account_request=add_exchange_account_request,
+ idempotency_key=idempotency_key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "AddExchangeAccountResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _add_exchange_account_serialize(
+ self,
+ add_exchange_account_request,
+ idempotency_key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[str, Union[str, bytes]] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ if idempotency_key is not None:
+ _header_params['Idempotency-Key'] = idempotency_key
+ # process the form parameters
+ # process the body parameter
+ if add_exchange_account_request is not None:
+ _body_params = add_exchange_account_request
+
+
+ # set the HTTP header `Accept`
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/exchange_accounts',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def convert_assets(
self,
@@ -461,6 +609,124 @@ def _get_exchange_account_asset_serialize(
+ @validate_call
+ def get_exchange_accounts_credentials_public_key(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Future[ApiResponse[GetExchangeAccountsCredentialsPublicKeyResponse]]:
+ """Get public key to encrypt exchange credentials
+
+ Return public key
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+
+ _param = self._get_exchange_accounts_credentials_public_key_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetExchangeAccountsCredentialsPublicKeyResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_exchange_accounts_credentials_public_key_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[str, Union[str, bytes]] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/exchange_accounts/credentials_public_key',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def get_paged_exchange_accounts(
self,
diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py
index c4d6141..03f60c7 100644
--- a/fireblocks/configuration.py
+++ b/fireblocks/configuration.py
@@ -424,7 +424,7 @@ def to_debug_report(self):
"OS: {env}\n"
"Python Version: {pyversion}\n"
"Version of the API: 1.6.2\n"
- "SDK Package Version: 6.0.0".format(env=sys.platform, pyversion=sys.version)
+ "SDK Package Version: 0.0.0".format(env=sys.platform, pyversion=sys.version)
)
def get_host_settings(self):
diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py
index 6fff745..1e42384 100644
--- a/fireblocks/models/__init__.py
+++ b/fireblocks/models/__init__.py
@@ -31,8 +31,11 @@
from fireblocks.models.add_contract_asset_request import AddContractAssetRequest
from fireblocks.models.add_cosigner_request import AddCosignerRequest
from fireblocks.models.add_cosigner_response import AddCosignerResponse
+from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest
+from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse
from fireblocks.models.additional_info import AdditionalInfo
from fireblocks.models.aml_registration_result import AmlRegistrationResult
+from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload
from fireblocks.models.aml_screening_result import AmlScreeningResult
from fireblocks.models.amount_aggregation_time_period_method import AmountAggregationTimePeriodMethod
from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor
@@ -90,7 +93,9 @@
from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto
from fireblocks.models.collection_type import CollectionType
from fireblocks.models.compliance_result import ComplianceResult
+from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload
from fireblocks.models.compliance_screening_result import ComplianceScreeningResult
+from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload
from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus
from fireblocks.models.config_conversion_operation_snapshot import ConfigConversionOperationSnapshot
from fireblocks.models.config_disbursement_operation_snapshot import ConfigDisbursementOperationSnapshot
diff --git a/fireblocks/models/add_exchange_account_request.py b/fireblocks/models/add_exchange_account_request.py
new file mode 100644
index 0000000..d642c95
--- /dev/null
+++ b/fireblocks/models/add_exchange_account_request.py
@@ -0,0 +1,97 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.exchange_type import ExchangeType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AddExchangeAccountRequest(BaseModel):
+ """
+ AddExchangeAccountRequest
+ """ # noqa: E501
+ exchange_type: ExchangeType = Field(alias="exchangeType")
+ name: StrictStr = Field(description="Display name of the exchange account")
+ creds: Optional[StrictStr] = Field(default=None, description="Encrypted credentials")
+ key: Optional[StrictStr] = Field(default=None, description="Api key of the exchange")
+ main_account_id: Optional[StrictStr] = Field(default=None, description="Optional - main account id of the exchange", alias="mainAccountId")
+ __properties: ClassVar[List[str]] = ["exchangeType", "name", "creds", "key", "mainAccountId"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AddExchangeAccountRequest from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AddExchangeAccountRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "exchangeType": obj.get("exchangeType"),
+ "name": obj.get("name"),
+ "creds": obj.get("creds"),
+ "key": obj.get("key"),
+ "mainAccountId": obj.get("mainAccountId")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/add_exchange_account_response.py b/fireblocks/models/add_exchange_account_response.py
new file mode 100644
index 0000000..74d3aa7
--- /dev/null
+++ b/fireblocks/models/add_exchange_account_response.py
@@ -0,0 +1,93 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.exchange_type import ExchangeType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AddExchangeAccountResponse(BaseModel):
+ """
+ AddExchangeAccountResponse
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="Exchange account's identifier")
+ name: Optional[StrictStr] = Field(default=None, description="Display name of the exchange account")
+ exchange_type: Optional[ExchangeType] = Field(default=None, alias="exchangeType")
+ __properties: ClassVar[List[str]] = ["id", "name", "exchangeType"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AddExchangeAccountResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AddExchangeAccountResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "name": obj.get("name"),
+ "exchangeType": obj.get("exchangeType")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/aml_registration_result_full_payload.py b/fireblocks/models/aml_registration_result_full_payload.py
new file mode 100644
index 0000000..515b876
--- /dev/null
+++ b/fireblocks/models/aml_registration_result_full_payload.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, StrictBool, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AmlRegistrationResultFullPayload(BaseModel):
+ """
+ AmlRegistrationResultFullPayload
+ """ # noqa: E501
+ provider: Optional[StrictStr] = None
+ success: Optional[StrictBool] = None
+ timestamp: Optional[Union[StrictFloat, StrictInt]] = None
+ __properties: ClassVar[List[str]] = ["provider", "success", "timestamp"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AmlRegistrationResultFullPayload from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AmlRegistrationResultFullPayload from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "provider": obj.get("provider"),
+ "success": obj.get("success"),
+ "timestamp": obj.get("timestamp")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/collection_ownership_response.py b/fireblocks/models/collection_ownership_response.py
index 1219207..07f81ed 100644
--- a/fireblocks/models/collection_ownership_response.py
+++ b/fireblocks/models/collection_ownership_response.py
@@ -38,8 +38,8 @@ class CollectionOwnershipResponse(BaseModel):
@field_validator('blockchain_descriptor')
def blockchain_descriptor_validate_enum(cls, value):
"""Validates the enum"""
- if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST']):
- raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST')")
+ if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX']):
+ raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX')")
return value
model_config = ConfigDict(
diff --git a/fireblocks/models/compliance_result_full_payload.py b/fireblocks/models/compliance_result_full_payload.py
new file mode 100644
index 0000000..c86930d
--- /dev/null
+++ b/fireblocks/models/compliance_result_full_payload.py
@@ -0,0 +1,136 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload
+from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ComplianceResultFullPayload(BaseModel):
+ """
+ The result of the Compliance AML/Travel Rule screening.
+ """ # noqa: E501
+ aml: Optional[List[ComplianceScreeningResultFullPayload]] = Field(default=None, description="The end result of the AML screening.")
+ tr: Optional[List[ComplianceScreeningResultFullPayload]] = Field(default=None, description="The result of the Travel Rule screening.")
+ aml_list: Optional[List[ComplianceScreeningResultFullPayload]] = Field(default=None, description="The list of all results of the AML screening.", alias="amlList")
+ status: Optional[StrictStr] = Field(default=None, description="Status of compliance result screening.")
+ aml_registration: Optional[List[AmlRegistrationResultFullPayload]] = Field(default=None, description="The results of the AML address registration.", alias="amlRegistration")
+ __properties: ClassVar[List[str]] = ["aml", "tr", "amlList", "status", "amlRegistration"]
+
+ @field_validator('status')
+ def status_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['Started', 'NetworkConnectionAddressResolve', 'ScreeningPrepare', 'AMLStarted', 'AMLCompleted', 'AMLFailed', 'AMLInBackground', 'TRPreconditionChecks', 'TRStarted', 'TRCompleted', 'TRFailed', 'Completed', 'IncomingStarted', 'IncomingScreeningPrepare', 'IncomingWaitForFirstConfirmation', 'AMLIncomingStarted', 'AMLIncomingCompleted', 'AMLIncomingFailed', 'AMLIncomingInBackground', 'TRIncomingStarted', 'TRIncomingCompleted', 'TRIncomingFailed', 'IncomingCompleted']):
+ raise ValueError("must be one of enum values ('Started', 'NetworkConnectionAddressResolve', 'ScreeningPrepare', 'AMLStarted', 'AMLCompleted', 'AMLFailed', 'AMLInBackground', 'TRPreconditionChecks', 'TRStarted', 'TRCompleted', 'TRFailed', 'Completed', 'IncomingStarted', 'IncomingScreeningPrepare', 'IncomingWaitForFirstConfirmation', 'AMLIncomingStarted', 'AMLIncomingCompleted', 'AMLIncomingFailed', 'AMLIncomingInBackground', 'TRIncomingStarted', 'TRIncomingCompleted', 'TRIncomingFailed', 'IncomingCompleted')")
+ return value
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ComplianceResultFullPayload from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in aml (list)
+ _items = []
+ if self.aml:
+ for _item in self.aml:
+ if _item:
+ _items.append(_item.to_dict())
+ _dict['aml'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in tr (list)
+ _items = []
+ if self.tr:
+ for _item in self.tr:
+ if _item:
+ _items.append(_item.to_dict())
+ _dict['tr'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in aml_list (list)
+ _items = []
+ if self.aml_list:
+ for _item in self.aml_list:
+ if _item:
+ _items.append(_item.to_dict())
+ _dict['amlList'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in aml_registration (list)
+ _items = []
+ if self.aml_registration:
+ for _item in self.aml_registration:
+ if _item:
+ _items.append(_item.to_dict())
+ _dict['amlRegistration'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ComplianceResultFullPayload from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "aml": [ComplianceScreeningResultFullPayload.from_dict(_item) for _item in obj["aml"]] if obj.get("aml") is not None else None,
+ "tr": [ComplianceScreeningResultFullPayload.from_dict(_item) for _item in obj["tr"]] if obj.get("tr") is not None else None,
+ "amlList": [ComplianceScreeningResultFullPayload.from_dict(_item) for _item in obj["amlList"]] if obj.get("amlList") is not None else None,
+ "status": obj.get("status"),
+ "amlRegistration": [AmlRegistrationResultFullPayload.from_dict(_item) for _item in obj["amlRegistration"]] if obj.get("amlRegistration") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/compliance_screening_result_full_payload.py b/fireblocks/models/compliance_screening_result_full_payload.py
new file mode 100644
index 0000000..cf038db
--- /dev/null
+++ b/fireblocks/models/compliance_screening_result_full_payload.py
@@ -0,0 +1,106 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ComplianceScreeningResultFullPayload(BaseModel):
+ """
+ ComplianceScreeningResultFullPayload
+ """ # noqa: E501
+ provider: Optional[StrictStr] = None
+ payload: Optional[Dict[str, Any]] = Field(default=None, description="The payload of the screening result. The payload is a JSON object that contains the screening result. The payload is different for each screening provider. ")
+ bypass_reason: Optional[StrictStr] = Field(default=None, alias="bypassReason")
+ screening_status: Optional[StrictStr] = Field(default=None, alias="screeningStatus")
+ timestamp: Optional[Union[StrictFloat, StrictInt]] = None
+ __properties: ClassVar[List[str]] = ["provider", "payload", "bypassReason", "screeningStatus", "timestamp"]
+
+ @field_validator('screening_status')
+ def screening_status_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN']):
+ raise ValueError("must be one of enum values ('COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN')")
+ return value
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ComplianceScreeningResultFullPayload from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ComplianceScreeningResultFullPayload from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "provider": obj.get("provider"),
+ "payload": obj.get("payload"),
+ "bypassReason": obj.get("bypassReason"),
+ "screeningStatus": obj.get("screeningStatus"),
+ "timestamp": obj.get("timestamp")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/exchange_type.py b/fireblocks/models/exchange_type.py
index 453f7b4..0072b66 100644
--- a/fireblocks/models/exchange_type.py
+++ b/fireblocks/models/exchange_type.py
@@ -21,38 +21,54 @@
class ExchangeType(str, Enum):
"""
- ExchangeType
+ Exchange account's type
"""
"""
allowed enum values
"""
- BINANCE = 'BINANCE'
- BINANCEUS = 'BINANCEUS'
- BITFINEX = 'BITFINEX'
+ INDEPENDENT_RESERVE = 'INDEPENDENT_RESERVE'
+ ENCLAVE_MARKETS = 'ENCLAVE_MARKETS'
+ BIT = 'BIT'
+ COINFLEX = 'COINFLEX'
+ KUCOIN = 'KUCOIN'
+ PXS = 'PXS'
+ LIQUID = 'LIQUID'
BITHUMB = 'BITHUMB'
- BITMEX = 'BITMEX'
+ BITFINEX = 'BITFINEX'
BITSO = 'BITSO'
BITSTAMP = 'BITSTAMP'
- BITTREX = 'BITTREX'
- CIRCLE = 'CIRCLE'
- COINBASEPRO = 'COINBASEPRO'
- COINMETRO = 'COINMETRO'
- COINSPRO = 'COINSPRO'
+ KRAKEN = 'KRAKEN'
+ KRAKENINTL = 'KRAKENINTL'
+ BINANCE = 'BINANCE'
+ BINANCEUS = 'BINANCEUS'
CRYPTOCOM = 'CRYPTOCOM'
- DERIBIT = 'DERIBIT'
- FTX = 'FTX'
- FIXUS = 'FIXUS'
- GEMINI = 'GEMINI'
+ BYBIT_V2 = 'BYBIT_V2'
+ COINBASEPRO = 'COINBASEPRO'
+ COINBASEPRIME = 'COINBASEPRIME'
+ COINBASEINTERNATIONAL = 'COINBASEINTERNATIONAL'
+ WHITEBIT = 'WHITEBIT'
+ COINBASEEXCHANGE = 'COINBASEEXCHANGE'
+ KORBIT = 'KORBIT'
HITBTC = 'HITBTC'
+ GEMINI = 'GEMINI'
+ CIRCLE = 'CIRCLE'
+ BITMEX = 'BITMEX'
HUOBI = 'HUOBI'
- KORBIT = 'KORBIT'
- KRAKEN = 'KRAKEN'
- LIQUID = 'LIQUID'
- POLONIEX = 'POLONIEX'
- OKCOIN = 'OKCOIN'
+ DERIBIT = 'DERIBIT'
+ OKCOIN_V5 = 'OKCOIN_V5'
OKEX = 'OKEX'
- SEEDCX = 'SEEDCX'
+ COINMETRO = 'COINMETRO'
+ GATEIO = 'GATEIO'
+ SCRYPT = 'SCRYPT'
+ COINHAKO = 'COINHAKO'
+ LIGHTBIT = 'LIGHTBIT'
+ BULLISH = 'BULLISH'
+ CANVAS_CONNECT = 'CANVAS_CONNECT'
+ BITGET = 'BITGET'
+ LUNO = 'LUNO'
+ BIT_GENERA = 'BIT_GENERA'
+ TRANSFERO = 'TRANSFERO'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py b/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py
index 931a334..22c21df 100644
--- a/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py
+++ b/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py
@@ -28,7 +28,8 @@ class GetExchangeAccountsCredentialsPublicKeyResponse(BaseModel):
GetExchangeAccountsCredentialsPublicKeyResponse
""" # noqa: E501
public_key: StrictStr = Field(description="Public key string", alias="publicKey")
- __properties: ClassVar[List[str]] = ["publicKey"]
+ tenant_id: StrictStr = Field(description="Tenant identifier", alias="tenantId")
+ __properties: ClassVar[List[str]] = ["publicKey", "tenantId"]
model_config = ConfigDict(
populate_by_name=True,
@@ -81,7 +82,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "publicKey": obj.get("publicKey")
+ "publicKey": obj.get("publicKey"),
+ "tenantId": obj.get("tenantId")
})
return _obj
diff --git a/fireblocks/models/token_ownership_response.py b/fireblocks/models/token_ownership_response.py
index dc971d9..b2ee681 100644
--- a/fireblocks/models/token_ownership_response.py
+++ b/fireblocks/models/token_ownership_response.py
@@ -53,8 +53,8 @@ class TokenOwnershipResponse(BaseModel):
@field_validator('blockchain_descriptor')
def blockchain_descriptor_validate_enum(cls, value):
"""Validates the enum"""
- if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST']):
- raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST')")
+ if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX']):
+ raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX')")
return value
@field_validator('status')
diff --git a/fireblocks/models/token_response.py b/fireblocks/models/token_response.py
index 6ce4ac5..45d3db1 100644
--- a/fireblocks/models/token_response.py
+++ b/fireblocks/models/token_response.py
@@ -46,8 +46,8 @@ class TokenResponse(BaseModel):
@field_validator('blockchain_descriptor')
def blockchain_descriptor_validate_enum(cls, value):
"""Validates the enum"""
- if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST']):
- raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST')")
+ if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX']):
+ raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX')")
return value
model_config = ConfigDict(
diff --git a/fireblocks/models/webhook_event.py b/fireblocks/models/webhook_event.py
index be21c8a..5f429bb 100644
--- a/fireblocks/models/webhook_event.py
+++ b/fireblocks/models/webhook_event.py
@@ -31,18 +31,23 @@ class WebhookEvent(str, Enum):
TRANSACTION_DOT_STATUS_DOT_UPDATED = 'transaction.status.updated'
TRANSACTION_DOT_APPROVAL_STATUS_DOT_UPDATED = 'transaction.approval_status.updated'
EXTERNAL_WALLET_DOT_ASSET_DOT_ADDED = 'external_wallet.asset.added'
+ EXTERNAL_WALLET_DOT_ASSET_DOT_REMOVED = 'external_wallet.asset.removed'
INTERNAL_WALLET_DOT_ASSET_DOT_ADDED = 'internal_wallet.asset.added'
INTERNAL_WALLET_DOT_ASSET_DOT_REMOVED = 'internal_wallet.asset.removed'
CONTRACT_WALLET_DOT_ASSET_DOT_ADDED = 'contract_wallet.asset.added'
CONTRACT_WALLET_DOT_ASSET_DOT_REMOVED = 'contract_wallet.asset.removed'
VAULT_ACCOUNT_DOT_CREATED = 'vault_account.created'
- VAULT_ACCOUNT_DOT_ASSET_DOT_ADDED = 'vault_account.asset.added'
+ VAULT_ACCOUNT_DOT_ASSET_DOT_LISTED = 'vault_account.asset.listed'
VAULT_ACCOUNT_DOT_ASSET_DOT_BALANCE_UPDATED = 'vault_account.asset.balance_updated'
VAULT_ACCOUNT_DOT_NFT_DOT_BALANCE_UPDATED = 'vault_account.nft.balance_updated'
- EMBEDDED_WALLET_DOT_ASSET_DOT_ADDED = 'embedded_wallet.asset.added'
+ EMBEDDED_WALLET_DOT_CREATED = 'embedded_wallet.created'
EMBEDDED_WALLET_DOT_ASSET_DOT_BALANCE_UPDATED = 'embedded_wallet.asset.balance_updated'
- EXCHANGE_ACCOUNT_DOT_ADDED = 'exchange_account.added'
- FIAT_ACCOUNT_DOT_ADDED = 'fiat_account.added'
+ EMBEDDED_WALLET_DOT_ASSET_DOT_LISTED = 'embedded_wallet.asset.listed'
+ EMBEDDED_WALLET_DOT_ACCOUNT_DOT_CREATED = 'embedded_wallet.account.created'
+ EMBEDDED_WALLET_DOT_DEVICE_DOT_ADDED = 'embedded_wallet.device.added'
+ EMBEDDED_WALLET_DOT_TRANSACTION_DOT_UPDATED = 'embedded_wallet.transaction.updated'
+ EXCHANGE_ACCOUNT_DOT_CONNECTED = 'exchange_account.connected'
+ FIAT_ACCOUNT_DOT_CONNECTED = 'fiat_account.connected'
TICKET_DOT_CREATED = 'ticket.created'
TICKET_DOT_SUBMITTED = 'ticket.submitted'
TICKET_DOT_EXPIRED = 'ticket.expired'
@@ -62,6 +67,8 @@ class WebhookEvent(str, Enum):
TICKET_DOT_TERM_DOT_FUNDING_FAILED = 'ticket.term.funding_failed'
TICKET_DOT_TERM_DOT_FUNDING_COMPLETED = 'ticket.term.funding_completed'
TICKET_DOT_TERM_DOT_TRANSACTION_STATUS_CHANGED = 'ticket.term.transaction_status_changed'
+ SETTLEMENT_DOT_CREATED = 'settlement.created'
+ COLLATERAL_DOT_STATUS_DOT_UPDATED = 'collateral.status.updated'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/pyproject.toml b/pyproject.toml
index dd60181..176ccaf 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fireblocks"
-version = "6.0.0"
+version = "0.0.0"
description = "Fireblocks API"
authors = ["Fireblocks "]
license = "MIT License"
diff --git a/setup.py b/setup.py
index 2468569..f0a9f52 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@
# prerequisite: setuptools
# http://pypi.python.org/pypi/setuptools
NAME = "fireblocks"
-VERSION = "6.0.0"
+VERSION = "0.0.0"
PYTHON_REQUIRES = ">=3.8"
REQUIRES = [
"urllib3 >= 1.25.3, < 2.1.0",
diff --git a/test/test_add_exchange_account_request.py b/test/test_add_exchange_account_request.py
new file mode 100644
index 0000000..958decd
--- /dev/null
+++ b/test/test_add_exchange_account_request.py
@@ -0,0 +1,60 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest
+
+
+class TestAddExchangeAccountRequest(unittest.TestCase):
+ """AddExchangeAccountRequest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AddExchangeAccountRequest:
+ """Test AddExchangeAccountRequest
+ include_option is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AddExchangeAccountRequest`
+ """
+ model = AddExchangeAccountRequest()
+ if include_optional:
+ return AddExchangeAccountRequest(
+ exchange_type = 'INDEPENDENT_RESERVE',
+ name = '',
+ creds = '',
+ key = '',
+ main_account_id = ''
+ )
+ else:
+ return AddExchangeAccountRequest(
+ exchange_type = 'INDEPENDENT_RESERVE',
+ name = '',
+ )
+ """
+
+ def testAddExchangeAccountRequest(self):
+ """Test AddExchangeAccountRequest"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_add_exchange_account_response.py b/test/test_add_exchange_account_response.py
new file mode 100644
index 0000000..46d440e
--- /dev/null
+++ b/test/test_add_exchange_account_response.py
@@ -0,0 +1,56 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse
+
+
+class TestAddExchangeAccountResponse(unittest.TestCase):
+ """AddExchangeAccountResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AddExchangeAccountResponse:
+ """Test AddExchangeAccountResponse
+ include_option is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AddExchangeAccountResponse`
+ """
+ model = AddExchangeAccountResponse()
+ if include_optional:
+ return AddExchangeAccountResponse(
+ id = '',
+ name = '',
+ exchange_type = 'INDEPENDENT_RESERVE'
+ )
+ else:
+ return AddExchangeAccountResponse(
+ )
+ """
+
+ def testAddExchangeAccountResponse(self):
+ """Test AddExchangeAccountResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_aml_registration_result_full_payload.py b/test/test_aml_registration_result_full_payload.py
new file mode 100644
index 0000000..37523e7
--- /dev/null
+++ b/test/test_aml_registration_result_full_payload.py
@@ -0,0 +1,58 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.aml_registration_result_full_payload import (
+ AmlRegistrationResultFullPayload,
+)
+
+
+class TestAmlRegistrationResultFullPayload(unittest.TestCase):
+ """AmlRegistrationResultFullPayload unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AmlRegistrationResultFullPayload:
+ """Test AmlRegistrationResultFullPayload
+ include_option is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `AmlRegistrationResultFullPayload`
+ """
+ model = AmlRegistrationResultFullPayload()
+ if include_optional:
+ return AmlRegistrationResultFullPayload(
+ provider = '',
+ success = True,
+ timestamp = 1.337
+ )
+ else:
+ return AmlRegistrationResultFullPayload(
+ )
+ """
+
+ def testAmlRegistrationResultFullPayload(self):
+ """Test AmlRegistrationResultFullPayload"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_compliance_api.py b/test/test_compliance_api.py
index 7e76348..99a825b 100644
--- a/test/test_compliance_api.py
+++ b/test/test_compliance_api.py
@@ -48,6 +48,13 @@ def test_get_post_screening_policy(self) -> None:
"""
pass
+ def test_get_screening_full_details(self) -> None:
+ """Test case for get_screening_full_details
+
+ Provides all the compliance details for the given screened transaction.
+ """
+ pass
+
def test_get_screening_policy(self) -> None:
"""Test case for get_screening_policy
diff --git a/test/test_compliance_result_full_payload.py b/test/test_compliance_result_full_payload.py
new file mode 100644
index 0000000..d91d662
--- /dev/null
+++ b/test/test_compliance_result_full_payload.py
@@ -0,0 +1,84 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload
+
+
+class TestComplianceResultFullPayload(unittest.TestCase):
+ """ComplianceResultFullPayload unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ComplianceResultFullPayload:
+ """Test ComplianceResultFullPayload
+ include_option is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ComplianceResultFullPayload`
+ """
+ model = ComplianceResultFullPayload()
+ if include_optional:
+ return ComplianceResultFullPayload(
+ aml = [
+ fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload(
+ provider = '',
+ payload = fireblocks.models.payload.payload(),
+ bypass_reason = '',
+ screening_status = 'COMPLETED',
+ timestamp = 1.337, )
+ ],
+ tr = [
+ fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload(
+ provider = '',
+ payload = fireblocks.models.payload.payload(),
+ bypass_reason = '',
+ screening_status = 'COMPLETED',
+ timestamp = 1.337, )
+ ],
+ aml_list = [
+ fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload(
+ provider = '',
+ payload = fireblocks.models.payload.payload(),
+ bypass_reason = '',
+ screening_status = 'COMPLETED',
+ timestamp = 1.337, )
+ ],
+ status = 'Started',
+ aml_registration = [
+ fireblocks.models.aml_registration_result_full_payload.AmlRegistrationResultFullPayload(
+ provider = '',
+ success = True,
+ timestamp = 1.337, )
+ ]
+ )
+ else:
+ return ComplianceResultFullPayload(
+ )
+ """
+
+ def testComplianceResultFullPayload(self):
+ """Test ComplianceResultFullPayload"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_compliance_screening_result_full_payload.py b/test/test_compliance_screening_result_full_payload.py
new file mode 100644
index 0000000..9171d8c
--- /dev/null
+++ b/test/test_compliance_screening_result_full_payload.py
@@ -0,0 +1,60 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: support@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.compliance_screening_result_full_payload import (
+ ComplianceScreeningResultFullPayload,
+)
+
+
+class TestComplianceScreeningResultFullPayload(unittest.TestCase):
+ """ComplianceScreeningResultFullPayload unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ComplianceScreeningResultFullPayload:
+ """Test ComplianceScreeningResultFullPayload
+ include_option is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included"""
+ # uncomment below to create an instance of `ComplianceScreeningResultFullPayload`
+ """
+ model = ComplianceScreeningResultFullPayload()
+ if include_optional:
+ return ComplianceScreeningResultFullPayload(
+ provider = '',
+ payload = None,
+ bypass_reason = '',
+ screening_status = 'COMPLETED',
+ timestamp = 1.337
+ )
+ else:
+ return ComplianceScreeningResultFullPayload(
+ )
+ """
+
+ def testComplianceScreeningResultFullPayload(self):
+ """Test ComplianceScreeningResultFullPayload"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/test_exchange_account.py b/test/test_exchange_account.py
index f95ecd4..e89fe73 100644
--- a/test/test_exchange_account.py
+++ b/test/test_exchange_account.py
@@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> ExchangeAccount:
if include_optional:
return ExchangeAccount(
id = '',
- type = 'BINANCE',
+ type = 'INDEPENDENT_RESERVE',
name = '',
status = '',
assets = [
diff --git a/test/test_exchange_accounts_api.py b/test/test_exchange_accounts_api.py
index 0d63ebd..2735bee 100644
--- a/test/test_exchange_accounts_api.py
+++ b/test/test_exchange_accounts_api.py
@@ -27,6 +27,13 @@ def setUp(self) -> None:
def tearDown(self) -> None:
pass
+ def test_add_exchange_account(self) -> None:
+ """Test case for add_exchange_account
+
+ Add an exchange account
+ """
+ pass
+
def test_convert_assets(self) -> None:
"""Test case for convert_assets
@@ -48,6 +55,13 @@ def test_get_exchange_account_asset(self) -> None:
"""
pass
+ def test_get_exchange_accounts_credentials_public_key(self) -> None:
+ """Test case for get_exchange_accounts_credentials_public_key
+
+ Get public key to encrypt exchange credentials
+ """
+ pass
+
def test_get_paged_exchange_accounts(self) -> None:
"""Test case for get_paged_exchange_accounts
diff --git a/test/test_exchange_accounts_paged.py b/test/test_exchange_accounts_paged.py
index b0a0c77..0571be2 100644
--- a/test/test_exchange_accounts_paged.py
+++ b/test/test_exchange_accounts_paged.py
@@ -40,7 +40,7 @@ def make_instance(self, include_optional) -> ExchangeAccountsPaged:
exchange_account = [
fireblocks.models.exchange_account.ExchangeAccount(
id = '',
- type = 'BINANCE',
+ type = 'INDEPENDENT_RESERVE',
name = '',
status = '',
assets = [
diff --git a/test/test_get_exchange_accounts_credentials_public_key_response.py b/test/test_get_exchange_accounts_credentials_public_key_response.py
index 67ed807..a61158d 100644
--- a/test/test_get_exchange_accounts_credentials_public_key_response.py
+++ b/test/test_get_exchange_accounts_credentials_public_key_response.py
@@ -41,11 +41,13 @@ def make_instance(
model = GetExchangeAccountsCredentialsPublicKeyResponse()
if include_optional:
return GetExchangeAccountsCredentialsPublicKeyResponse(
- public_key = ''
+ public_key = '',
+ tenant_id = ''
)
else:
return GetExchangeAccountsCredentialsPublicKeyResponse(
public_key = '',
+ tenant_id = '',
)
"""