diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index f5aa3cba..1ce4ba0f 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -53,6 +53,7 @@ docs/AddressRegistryTenantRegistryResponse.md
docs/AddressRegistryTravelRuleProvider.md
docs/AddressRegistryVaultListOrder.md
docs/AddressRegistryVaultOptOutItem.md
+docs/AddressReverseLookupResponse.md
docs/AlertExposureTypeEnum.md
docs/AlertLevelEnum.md
docs/AmlAlert.md
@@ -79,6 +80,7 @@ docs/ApprovalRequest.md
docs/ApproversConfig.md
docs/ApproversConfigApprovalGroupsInner.md
docs/Apy.md
+docs/ArsConfigResponse.md
docs/Asset.md
docs/AssetAlreadyExistHttpError.md
docs/AssetAmount.md
@@ -155,8 +157,6 @@ docs/ChannelDvnConfigWithConfirmationsSendConfig.md
docs/ChapsAddress.md
docs/ChapsDestination.md
docs/ChapsPaymentInfo.md
-docs/CircleGatewayWalletInfoResponse.md
-docs/CircleGatewayWalletStatusResponse.md
docs/ClaimRewardsRequest.md
docs/CollectionBurnRequestDto.md
docs/CollectionBurnResponseDto.md
@@ -169,8 +169,6 @@ docs/CollectionOwnershipResponse.md
docs/CollectionTokenMetadataAttributeDto.md
docs/CollectionTokenMetadataDto.md
docs/CollectionType.md
-docs/CommittedQuoteEnum.md
-docs/CommittedQuoteType.md
docs/ComplianceApi.md
docs/ComplianceResultFullPayload.md
docs/ComplianceResultStatusesEnum.md
@@ -269,6 +267,7 @@ docs/CreateMultipleDepositAddressesRequest.md
docs/CreateMultipleVaultAccountsJobStatus.md
docs/CreateNcwConnectionRequest.md
docs/CreateNetworkIdRequest.md
+docs/CreateOffersRequest.md
docs/CreateOrderRequest.md
docs/CreatePayoutRequest.md
docs/CreateQuote.md
@@ -434,6 +433,10 @@ docs/GasStationPropertiesResponse.md
docs/GasStationsApi.md
docs/GasslessStandardConfigurations.md
docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md
+docs/GenieBetaApi.md
+docs/GenieChatMessage.md
+docs/GenieCreateSessionResponse.md
+docs/GenieSendMessageRequest.md
docs/GetAPIUsersResponse.md
docs/GetActionResponse.md
docs/GetActionsResponse.md
@@ -473,8 +476,6 @@ docs/IbanPaymentInfo.md
docs/Identification.md
docs/IdentificationPolicyOverride.md
docs/IdlType.md
-docs/IndicativeQuoteEnum.md
-docs/IndicativeQuoteType.md
docs/InitiatorConfig.md
docs/InitiatorConfigPattern.md
docs/InstructionAmount.md
@@ -581,6 +582,8 @@ docs/NotificationStatus.md
docs/NotificationWithData.md
docs/OTABetaApi.md
docs/OffExchangesApi.md
+docs/Offer.md
+docs/OffersResponse.md
docs/OnchainDataApi.md
docs/OnchainTransaction.md
docs/OnchainTransactionsPagedResponse.md
@@ -674,17 +677,23 @@ docs/Quote.md
docs/QuoteExecutionRequestDetails.md
docs/QuoteExecutionStep.md
docs/QuoteExecutionTypeDetails.md
+docs/QuoteExecutionTypeEnum.md
docs/QuoteExecutionWithRequoteRequestDetails.md
docs/QuoteExecutionWithRequoteResponseDetails.md
-docs/QuoteFailure.md
-docs/QuotePropertiesDetails.md
-docs/QuoteTypeEnum.md
+docs/QuoteOffer.md
+docs/QuoteOfferType.md
docs/QuotesResponse.md
+docs/Rate.md
+docs/RateOffer.md
+docs/RateOfferType.md
+docs/RatesRequest.md
+docs/RatesResponse.md
docs/ReQuoteDetails.md
docs/ReQuoteDetailsReQuote.md
docs/ReadAbiFunction.md
docs/ReadCallFunctionDto.md
docs/ReadCallFunctionDtoAbiFunction.md
+docs/ReasonForPaymentEnum.md
docs/RecipientHandle.md
docs/RedeemFundsToLinkedDDAResponse.md
docs/RegisterLegalEntityRequest.md
@@ -724,6 +733,7 @@ docs/SEPADestination.md
docs/SOLAccount.md
docs/SOLAccountWithValue.md
docs/ScopeItem.md
+docs/ScopeItemFailure.md
docs/ScreeningAlertExposureTypeEnum.md
docs/ScreeningAmlAlert.md
docs/ScreeningAmlMatchedRule.md
@@ -821,6 +831,7 @@ docs/SolanaInstruction.md
docs/SolanaInstructionWithValue.md
docs/SolanaSimpleCreateParams.md
docs/SourceConfig.md
+docs/SourceOfFunds.md
docs/SourceTransferPeerPath.md
docs/SourceTransferPeerPathResponse.md
docs/SpamOwnershipResponse.md
@@ -1070,6 +1081,8 @@ docs/UpdateVaultAccountAssetAddressRequest.md
docs/UpdateVaultAccountRequest.md
docs/UpdateWebhookRequest.md
docs/UsWirePaymentInfo.md
+docs/UsdcGatewayWalletInfoResponse.md
+docs/UsdcGatewayWalletStatusResponse.md
docs/UserGroupCreateRequest.md
docs/UserGroupCreateResponse.md
docs/UserGroupResponse.md
@@ -1148,6 +1161,7 @@ fireblocks/api/exchange_accounts_api.py
fireblocks/api/external_wallets_api.py
fireblocks/api/fiat_accounts_api.py
fireblocks/api/gas_stations_api.py
+fireblocks/api/genie_beta_api.py
fireblocks/api/internal_wallets_api.py
fireblocks/api/key_link_beta_api.py
fireblocks/api/keys_beta_api.py
@@ -1237,6 +1251,7 @@ fireblocks/models/address_registry_tenant_registry_response.py
fireblocks/models/address_registry_travel_rule_provider.py
fireblocks/models/address_registry_vault_list_order.py
fireblocks/models/address_registry_vault_opt_out_item.py
+fireblocks/models/address_reverse_lookup_response.py
fireblocks/models/alert_exposure_type_enum.py
fireblocks/models/alert_level_enum.py
fireblocks/models/aml_alert.py
@@ -1263,6 +1278,7 @@ fireblocks/models/approval_request.py
fireblocks/models/approvers_config.py
fireblocks/models/approvers_config_approval_groups_inner.py
fireblocks/models/apy.py
+fireblocks/models/ars_config_response.py
fireblocks/models/asset.py
fireblocks/models/asset_already_exist_http_error.py
fireblocks/models/asset_amount.py
@@ -1337,8 +1353,6 @@ fireblocks/models/channel_dvn_config_with_confirmations_send_config.py
fireblocks/models/chaps_address.py
fireblocks/models/chaps_destination.py
fireblocks/models/chaps_payment_info.py
-fireblocks/models/circle_gateway_wallet_info_response.py
-fireblocks/models/circle_gateway_wallet_status_response.py
fireblocks/models/claim_rewards_request.py
fireblocks/models/collection_burn_request_dto.py
fireblocks/models/collection_burn_response_dto.py
@@ -1351,8 +1365,6 @@ fireblocks/models/collection_ownership_response.py
fireblocks/models/collection_token_metadata_attribute_dto.py
fireblocks/models/collection_token_metadata_dto.py
fireblocks/models/collection_type.py
-fireblocks/models/committed_quote_enum.py
-fireblocks/models/committed_quote_type.py
fireblocks/models/compliance_result_full_payload.py
fireblocks/models/compliance_result_statuses_enum.py
fireblocks/models/compliance_results.py
@@ -1443,6 +1455,7 @@ fireblocks/models/create_multiple_deposit_addresses_request.py
fireblocks/models/create_multiple_vault_accounts_job_status.py
fireblocks/models/create_ncw_connection_request.py
fireblocks/models/create_network_id_request.py
+fireblocks/models/create_offers_request.py
fireblocks/models/create_order_request.py
fireblocks/models/create_payout_request.py
fireblocks/models/create_quote.py
@@ -1601,6 +1614,9 @@ fireblocks/models/gas_station_configuration_response.py
fireblocks/models/gas_station_properties_response.py
fireblocks/models/gassless_standard_configurations.py
fireblocks/models/gassless_standard_configurations_gasless_standard_configurations_value.py
+fireblocks/models/genie_chat_message.py
+fireblocks/models/genie_create_session_response.py
+fireblocks/models/genie_send_message_request.py
fireblocks/models/get_action_response.py
fireblocks/models/get_actions_response.py
fireblocks/models/get_api_users_response.py
@@ -1640,8 +1656,6 @@ fireblocks/models/iban_payment_info.py
fireblocks/models/identification.py
fireblocks/models/identification_policy_override.py
fireblocks/models/idl_type.py
-fireblocks/models/indicative_quote_enum.py
-fireblocks/models/indicative_quote_type.py
fireblocks/models/initiator_config.py
fireblocks/models/initiator_config_pattern.py
fireblocks/models/instruction_amount.py
@@ -1741,6 +1755,8 @@ fireblocks/models/notification_attempts_paginated_response.py
fireblocks/models/notification_paginated_response.py
fireblocks/models/notification_status.py
fireblocks/models/notification_with_data.py
+fireblocks/models/offer.py
+fireblocks/models/offers_response.py
fireblocks/models/onchain_transaction.py
fireblocks/models/onchain_transactions_paged_response.py
fireblocks/models/one_time_address.py
@@ -1830,17 +1846,23 @@ fireblocks/models/quote.py
fireblocks/models/quote_execution_request_details.py
fireblocks/models/quote_execution_step.py
fireblocks/models/quote_execution_type_details.py
+fireblocks/models/quote_execution_type_enum.py
fireblocks/models/quote_execution_with_requote_request_details.py
fireblocks/models/quote_execution_with_requote_response_details.py
-fireblocks/models/quote_failure.py
-fireblocks/models/quote_properties_details.py
-fireblocks/models/quote_type_enum.py
+fireblocks/models/quote_offer.py
+fireblocks/models/quote_offer_type.py
fireblocks/models/quotes_response.py
+fireblocks/models/rate.py
+fireblocks/models/rate_offer.py
+fireblocks/models/rate_offer_type.py
+fireblocks/models/rates_request.py
+fireblocks/models/rates_response.py
fireblocks/models/re_quote_details.py
fireblocks/models/re_quote_details_re_quote.py
fireblocks/models/read_abi_function.py
fireblocks/models/read_call_function_dto.py
fireblocks/models/read_call_function_dto_abi_function.py
+fireblocks/models/reason_for_payment_enum.py
fireblocks/models/recipient_handle.py
fireblocks/models/redeem_funds_to_linked_dda_response.py
fireblocks/models/register_legal_entity_request.py
@@ -1875,6 +1897,7 @@ fireblocks/models/rewards_info.py
fireblocks/models/role_details.py
fireblocks/models/role_grantee.py
fireblocks/models/scope_item.py
+fireblocks/models/scope_item_failure.py
fireblocks/models/screening_alert_exposure_type_enum.py
fireblocks/models/screening_aml_alert.py
fireblocks/models/screening_aml_matched_rule.py
@@ -1975,6 +1998,7 @@ fireblocks/models/solana_instruction.py
fireblocks/models/solana_instruction_with_value.py
fireblocks/models/solana_simple_create_params.py
fireblocks/models/source_config.py
+fireblocks/models/source_of_funds.py
fireblocks/models/source_transfer_peer_path.py
fireblocks/models/source_transfer_peer_path_response.py
fireblocks/models/spam_ownership_response.py
@@ -2216,6 +2240,8 @@ fireblocks/models/update_webhook_request.py
fireblocks/models/us_wire_address.py
fireblocks/models/us_wire_destination.py
fireblocks/models/us_wire_payment_info.py
+fireblocks/models/usdc_gateway_wallet_info_response.py
+fireblocks/models/usdc_gateway_wallet_status_response.py
fireblocks/models/user_group_create_request.py
fireblocks/models/user_group_create_response.py
fireblocks/models/user_group_response.py
@@ -2337,6 +2363,7 @@ test/test_address_registry_tenant_registry_response.py
test/test_address_registry_travel_rule_provider.py
test/test_address_registry_vault_list_order.py
test/test_address_registry_vault_opt_out_item.py
+test/test_address_reverse_lookup_response.py
test/test_alert_exposure_type_enum.py
test/test_alert_level_enum.py
test/test_aml_alert.py
@@ -2364,6 +2391,7 @@ test/test_approval_request.py
test/test_approvers_config.py
test/test_approvers_config_approval_groups_inner.py
test/test_apy.py
+test/test_ars_config_response.py
test/test_asset.py
test/test_asset_already_exist_http_error.py
test/test_asset_amount.py
@@ -2440,8 +2468,6 @@ test/test_channel_dvn_config_with_confirmations_send_config.py
test/test_chaps_address.py
test/test_chaps_destination.py
test/test_chaps_payment_info.py
-test/test_circle_gateway_wallet_info_response.py
-test/test_circle_gateway_wallet_status_response.py
test/test_claim_rewards_request.py
test/test_collection_burn_request_dto.py
test/test_collection_burn_response_dto.py
@@ -2454,8 +2480,6 @@ test/test_collection_ownership_response.py
test/test_collection_token_metadata_attribute_dto.py
test/test_collection_token_metadata_dto.py
test/test_collection_type.py
-test/test_committed_quote_enum.py
-test/test_committed_quote_type.py
test/test_compliance_api.py
test/test_compliance_result_full_payload.py
test/test_compliance_result_statuses_enum.py
@@ -2554,6 +2578,7 @@ test/test_create_multiple_deposit_addresses_request.py
test/test_create_multiple_vault_accounts_job_status.py
test/test_create_ncw_connection_request.py
test/test_create_network_id_request.py
+test/test_create_offers_request.py
test/test_create_order_request.py
test/test_create_payout_request.py
test/test_create_quote.py
@@ -2719,6 +2744,10 @@ test/test_gas_station_properties_response.py
test/test_gas_stations_api.py
test/test_gassless_standard_configurations.py
test/test_gassless_standard_configurations_gasless_standard_configurations_value.py
+test/test_genie_beta_api.py
+test/test_genie_chat_message.py
+test/test_genie_create_session_response.py
+test/test_genie_send_message_request.py
test/test_get_action_response.py
test/test_get_actions_response.py
test/test_get_api_users_response.py
@@ -2758,8 +2787,6 @@ test/test_iban_payment_info.py
test/test_identification.py
test/test_identification_policy_override.py
test/test_idl_type.py
-test/test_indicative_quote_enum.py
-test/test_indicative_quote_type.py
test/test_initiator_config.py
test/test_initiator_config_pattern.py
test/test_instruction_amount.py
@@ -2865,6 +2892,8 @@ test/test_notification_paginated_response.py
test/test_notification_status.py
test/test_notification_with_data.py
test/test_off_exchanges_api.py
+test/test_offer.py
+test/test_offers_response.py
test/test_onchain_data_api.py
test/test_onchain_transaction.py
test/test_onchain_transactions_paged_response.py
@@ -2959,17 +2988,23 @@ test/test_quote.py
test/test_quote_execution_request_details.py
test/test_quote_execution_step.py
test/test_quote_execution_type_details.py
+test/test_quote_execution_type_enum.py
test/test_quote_execution_with_requote_request_details.py
test/test_quote_execution_with_requote_response_details.py
-test/test_quote_failure.py
-test/test_quote_properties_details.py
-test/test_quote_type_enum.py
+test/test_quote_offer.py
+test/test_quote_offer_type.py
test/test_quotes_response.py
+test/test_rate.py
+test/test_rate_offer.py
+test/test_rate_offer_type.py
+test/test_rates_request.py
+test/test_rates_response.py
test/test_re_quote_details.py
test/test_re_quote_details_re_quote.py
test/test_read_abi_function.py
test/test_read_call_function_dto.py
test/test_read_call_function_dto_abi_function.py
+test/test_reason_for_payment_enum.py
test/test_recipient_handle.py
test/test_redeem_funds_to_linked_dda_response.py
test/test_register_legal_entity_request.py
@@ -3005,6 +3040,7 @@ test/test_rewards_info.py
test/test_role_details.py
test/test_role_grantee.py
test/test_scope_item.py
+test/test_scope_item_failure.py
test/test_screening_alert_exposure_type_enum.py
test/test_screening_aml_alert.py
test/test_screening_aml_matched_rule.py
@@ -3106,6 +3142,7 @@ test/test_solana_instruction.py
test/test_solana_instruction_with_value.py
test/test_solana_simple_create_params.py
test/test_source_config.py
+test/test_source_of_funds.py
test/test_source_transfer_peer_path.py
test/test_source_transfer_peer_path_response.py
test/test_spam_ownership_response.py
@@ -3354,6 +3391,8 @@ test/test_update_webhook_request.py
test/test_us_wire_address.py
test/test_us_wire_destination.py
test/test_us_wire_payment_info.py
+test/test_usdc_gateway_wallet_info_response.py
+test/test_usdc_gateway_wallet_status_response.py
test/test_user_group_create_request.py
test/test_user_group_create_response.py
test/test_user_group_response.py
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 93757b8a..00000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,242 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v18.0.0](https://github.com/fireblocks/py-sdk/compare/v17.0.0...v18.0.0) - 2026-05-06
-
-### Merged
-
-- Generated SDK #3222 (major) [`#138`](https://github.com/fireblocks/py-sdk/pull/138)
-
-## [v17.0.0](https://github.com/fireblocks/py-sdk/compare/v16.0.0...v17.0.0) - 2026-04-20
-
-### Merged
-
-- Generated SDK #9605 (major) [`#137`](https://github.com/fireblocks/py-sdk/pull/137)
-
-## [v16.0.0](https://github.com/fireblocks/py-sdk/compare/v15.0.0...v16.0.0) - 2026-04-06
-
-### Merged
-
-- Generated SDK #3331 [`#135`](https://github.com/fireblocks/py-sdk/pull/135)
-
-## [v15.0.0](https://github.com/fireblocks/py-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15
-
-### Merged
-
-- Generated SDK #3733 (major) [`#129`](https://github.com/fireblocks/py-sdk/pull/129)
-
-## [v14.1.0](https://github.com/fireblocks/py-sdk/compare/v14.0.0...v14.1.0) - 2026-02-26
-
-### Merged
-
-- Generated SDK #2167 [`#127`](https://github.com/fireblocks/py-sdk/pull/127)
-
-## [v14.0.0](https://github.com/fireblocks/py-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03
-
-### Merged
-
-- Generated SDK #4746 [`#123`](https://github.com/fireblocks/py-sdk/pull/123)
-
-## [v13.0.0](https://github.com/fireblocks/py-sdk/compare/v12.1.2...v13.0.0) - 2025-11-13
-
-### Merged
-
-- Generated SDK #5834 [`#121`](https://github.com/fireblocks/py-sdk/pull/121)
-
-## [v12.1.2](https://github.com/fireblocks/py-sdk/compare/v12.1.1...v12.1.2) - 2025-10-22
-
-### Merged
-
-- Generated SDK #8293 [`#120`](https://github.com/fireblocks/py-sdk/pull/120)
-
-## [v12.1.1](https://github.com/fireblocks/py-sdk/compare/v12.1.0...v12.1.1) - 2025-09-29
-
-### Merged
-
-- Generated SDK #6061 [`#119`](https://github.com/fireblocks/py-sdk/pull/119)
-
-## [v12.1.0](https://github.com/fireblocks/py-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09
-
-### Merged
-
-- Generated SDK #4521 [`#118`](https://github.com/fireblocks/py-sdk/pull/118)
-
-## [v12.0.0](https://github.com/fireblocks/py-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01
-
-### Merged
-
-- Generated SDK #7741 [`#117`](https://github.com/fireblocks/py-sdk/pull/117)
-
-## [v11.2.0](https://github.com/fireblocks/py-sdk/compare/v11.1.0...v11.2.0) - 2025-08-18
-
-### Merged
-
-- Generated SDK #3302 [`#116`](https://github.com/fireblocks/py-sdk/pull/116)
-
-## [v11.1.0](https://github.com/fireblocks/py-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11
-
-### Merged
-
-- Generated SDK #1782 [`#115`](https://github.com/fireblocks/py-sdk/pull/115)
-
-## [v11.0.0](https://github.com/fireblocks/py-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15
-
-### Merged
-
-- Generated SDK #5610 [`#114`](https://github.com/fireblocks/py-sdk/pull/114)
-
-## [v10.4.0](https://github.com/fireblocks/py-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29
-
-### Merged
-
-- Generated SDK #1492 [`#113`](https://github.com/fireblocks/py-sdk/pull/113)
-
-## [v10.3.0](https://github.com/fireblocks/py-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18
-
-### Merged
-
-- Generated SDK #4009 [`#112`](https://github.com/fireblocks/py-sdk/pull/112)
-
-## [v10.2.0](https://github.com/fireblocks/py-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04
-
-### Merged
-
-- Generated SDK #8912 [`#111`](https://github.com/fireblocks/py-sdk/pull/111)
-
-## [v10.1.1](https://github.com/fireblocks/py-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18
-
-### Merged
-
-- Generated SDK #5019 [`#110`](https://github.com/fireblocks/py-sdk/pull/110)
-
-## [v10.1.0](https://github.com/fireblocks/py-sdk/compare/v10.0.0...v10.1.0) - 2025-05-07
-
-### Merged
-
-- Generated SDK #7076 [`#107`](https://github.com/fireblocks/py-sdk/pull/107)
-
-## [v10.0.0](https://github.com/fireblocks/py-sdk/compare/v9.0.1...v10.0.0) - 2025-04-20
-
-### Merged
-
-- Generated SDK #4794 [`#105`](https://github.com/fireblocks/py-sdk/pull/105)
-
-## [v9.0.1](https://github.com/fireblocks/py-sdk/compare/v9.0.0...v9.0.1) - 2025-04-07
-
-### Merged
-
-- Generated SDK #3065 [`#104`](https://github.com/fireblocks/py-sdk/pull/104)
-
-## [v9.0.0](https://github.com/fireblocks/py-sdk/compare/v8.0.0...v9.0.0) - 2025-03-27
-
-### Merged
-
-- Generated SDK #619 [`#102`](https://github.com/fireblocks/py-sdk/pull/102)
-
-## [v8.0.0](https://github.com/fireblocks/py-sdk/compare/v7.1.0...v8.0.0) - 2025-03-17
-
-### Merged
-
-- Generated SDK #645 [`#101`](https://github.com/fireblocks/py-sdk/pull/101)
-- Generated SDK #726 [`#99`](https://github.com/fireblocks/py-sdk/pull/99)
-
-## [v7.1.0](https://github.com/fireblocks/py-sdk/compare/v7.0.1...v7.1.0) - 2025-02-25
-
-### Merged
-
-- Generated SDK #9833 [`#96`](https://github.com/fireblocks/py-sdk/pull/96)
-
-## [v7.0.1](https://github.com/fireblocks/py-sdk/compare/v7.0.0...v7.0.1) - 2025-02-12
-
-### Merged
-
-- Generated SDK #4262 [`#95`](https://github.com/fireblocks/py-sdk/pull/95)
-
-## [v7.0.0](https://github.com/fireblocks/py-sdk/compare/v6.0.0...v7.0.0) - 2025-02-02
-
-### Merged
-
-- Generated SDK #538 [`#92`](https://github.com/fireblocks/py-sdk/pull/92)
-
-## [v6.0.0](https://github.com/fireblocks/py-sdk/compare/v5.0.0...v6.0.0) - 2025-01-08
-
-### Merged
-
-- Generated SDK #8699 [`#89`](https://github.com/fireblocks/py-sdk/pull/89)
-
-## [v5.0.0](https://github.com/fireblocks/py-sdk/compare/v4.0.0...v5.0.0) - 2024-12-05
-
-### Merged
-
-- Generated SDK #1430 [`#85`](https://github.com/fireblocks/py-sdk/pull/85)
-- Update python-package.yml, deprecate macos-12 [`#86`](https://github.com/fireblocks/py-sdk/pull/86)
-
-## [v4.0.0](https://github.com/fireblocks/py-sdk/compare/v3.0.0...v4.0.0) - 2024-10-31
-
-### Merged
-
-- Generated SDK #5184 [`#82`](https://github.com/fireblocks/py-sdk/pull/82)
-
-## [v3.0.0](https://github.com/fireblocks/py-sdk/compare/v2.1.0...v3.0.0) - 2024-09-17
-
-### Merged
-
-- Generated SDK #237 [`#81`](https://github.com/fireblocks/py-sdk/pull/81)
-
-## [v2.1.0](https://github.com/fireblocks/py-sdk/compare/v2.0.0...v2.1.0) - 2024-07-25
-
-### Merged
-
-- Generated SDK #6749 [`#78`](https://github.com/fireblocks/py-sdk/pull/78)
-
-## [v2.0.0](https://github.com/fireblocks/py-sdk/compare/v1.0.4...v2.0.0) - 2024-07-17
-
-### Merged
-
-- Generated SDK #6152 [`#76`](https://github.com/fireblocks/py-sdk/pull/76)
-- Generated SDK #7647 [`#73`](https://github.com/fireblocks/py-sdk/pull/73)
-- Generated SDK #7984 [`#70`](https://github.com/fireblocks/py-sdk/pull/70)
-
-## [v1.0.4](https://github.com/fireblocks/py-sdk/compare/v1.0.3...v1.0.4) - 2024-06-26
-
-### Merged
-
-- Generated SDK #5779 [`#69`](https://github.com/fireblocks/py-sdk/pull/69)
-- Generated SDK #913 [`#68`](https://github.com/fireblocks/py-sdk/pull/68)
-- Generated SDK #1353 [`#67`](https://github.com/fireblocks/py-sdk/pull/67)
-- Generated SDK #9982 [`#66`](https://github.com/fireblocks/py-sdk/pull/66)
-- Generated SDK #1362 [`#65`](https://github.com/fireblocks/py-sdk/pull/65)
-- Generated SDK #3652 [`#64`](https://github.com/fireblocks/py-sdk/pull/64)
-
-## [v1.0.3](https://github.com/fireblocks/py-sdk/compare/v1.0.2...v1.0.3) - 2024-06-06
-
-### Merged
-
-- Generated SDK #2648 [`#30`](https://github.com/fireblocks/py-sdk/pull/30)
-
-## [v1.0.2](https://github.com/fireblocks/py-sdk/compare/v0.0.2-beta...v1.0.2) - 2024-06-04
-
-### Merged
-
-- version 1.0.2 [`#25`](https://github.com/fireblocks/py-sdk/pull/25)
-- version 1.0.0 [`#24`](https://github.com/fireblocks/py-sdk/pull/24)
-
-## v0.0.2-beta - 2024-05-30
-
-### Merged
-
-- version 0.0.2-beta [`#23`](https://github.com/fireblocks/py-sdk/pull/23)
-- Update .bumpversion.cfg [`#14`](https://github.com/fireblocks/py-sdk/pull/14)
-- Update setup.py [`#13`](https://github.com/fireblocks/py-sdk/pull/13)
-- Bug Fixes [`#12`](https://github.com/fireblocks/py-sdk/pull/12)
-- update support for beta in bumpversion [`#11`](https://github.com/fireblocks/py-sdk/pull/11)
-- Update setup.py [`#10`](https://github.com/fireblocks/py-sdk/pull/10)
-- Update setup.py [`#9`](https://github.com/fireblocks/py-sdk/pull/9)
-- Added Idempotency & NCW headers support [`#7`](https://github.com/fireblocks/py-sdk/pull/7)
-- Added Idempotency & NCW headers support [`#8`](https://github.com/fireblocks/py-sdk/pull/8)
-- Update setup.py [`#5`](https://github.com/fireblocks/py-sdk/pull/5)
-- API Support Updates [`#4`](https://github.com/fireblocks/py-sdk/pull/4)
diff --git a/README.md b/README.md
index 26868942..dcb2c675 100644
--- a/README.md
+++ b/README.md
@@ -244,10 +244,12 @@ Class | Method | HTTP request | Description
*BlockchainsAssetsApi* | [**register_new_asset**](docs/BlockchainsAssetsApi.md#register_new_asset) | **POST** /assets | Register an asset
*BlockchainsAssetsApi* | [**set_asset_price**](docs/BlockchainsAssetsApi.md#set_asset_price) | **POST** /assets/prices/{id} | Set asset price
*BlockchainsAssetsApi* | [**update_asset_user_metadata**](docs/BlockchainsAssetsApi.md#update_asset_user_metadata) | **PATCH** /assets/{id} | Update the user’s metadata for an asset
+*ComplianceApi* | [**activate_ars_config**](docs/ComplianceApi.md#activate_ars_config) | **POST** /screening/ars/config/activate | Activate ARS (Address Registry Screening)
*ComplianceApi* | [**activate_byork_config**](docs/ComplianceApi.md#activate_byork_config) | **POST** /screening/byork/config/activate | Activate BYORK Light
*ComplianceApi* | [**add_address_registry_vault_opt_outs**](docs/ComplianceApi.md#add_address_registry_vault_opt_outs) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list
*ComplianceApi* | [**assign_vaults_to_legal_entity**](docs/ComplianceApi.md#assign_vaults_to_legal_entity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity
*ComplianceApi* | [**create_counterparty_group**](docs/ComplianceApi.md#create_counterparty_group) | **POST** /counterparty_groups | Create a counterparty group
+*ComplianceApi* | [**deactivate_ars_config**](docs/ComplianceApi.md#deactivate_ars_config) | **POST** /screening/ars/config/deactivate | Deactivate ARS (Address Registry Screening)
*ComplianceApi* | [**deactivate_byork_config**](docs/ComplianceApi.md#deactivate_byork_config) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light
*ComplianceApi* | [**delete_counterparty_group**](docs/ComplianceApi.md#delete_counterparty_group) | **DELETE** /counterparty_groups/{groupId} | Delete a counterparty group
*ComplianceApi* | [**get_address_registry_tenant_participation_status**](docs/ComplianceApi.md#get_address_registry_tenant_participation_status) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace
@@ -271,7 +273,7 @@ Class | Method | HTTP request | Description
*ComplianceApi* | [**register_legal_entity**](docs/ComplianceApi.md#register_legal_entity) | **POST** /legal_entities | Register a new legal entity
*ComplianceApi* | [**remove_address_registry_vault_opt_out**](docs/ComplianceApi.md#remove_address_registry_vault_opt_out) | **DELETE** /address_registry/vaults/{vaultAccountId} | Remove a single vault account from the address registry opt-out list
*ComplianceApi* | [**remove_all_address_registry_vault_opt_outs**](docs/ComplianceApi.md#remove_all_address_registry_vault_opt_outs) | **DELETE** /address_registry/vaults | Remove all vault-level address registry opt-outs for the workspace
-*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* | [**retry_rejected_transaction_bypass_screening_checks**](docs/ComplianceApi.md#retry_rejected_transaction_bypass_screening_checks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Bypass Screening Policy
*ComplianceApi* | [**set_aml_verdict**](docs/ComplianceApi.md#set_aml_verdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict (BYORK Super Light)
*ComplianceApi* | [**set_byork_timeouts**](docs/ComplianceApi.md#set_byork_timeouts) | **PUT** /screening/byork/config/timeouts | Set BYORK Light timeouts
*ComplianceApi* | [**set_byork_verdict**](docs/ComplianceApi.md#set_byork_verdict) | **POST** /screening/byork/verdict | Set BYORK Light verdict
@@ -379,6 +381,8 @@ Class | Method | HTTP request | Description
*GasStationsApi* | [**get_gas_station_info**](docs/GasStationsApi.md#get_gas_station_info) | **GET** /gas_station | Get gas station settings
*GasStationsApi* | [**update_gas_station_configuration**](docs/GasStationsApi.md#update_gas_station_configuration) | **PUT** /gas_station/configuration | Edit gas station settings
*GasStationsApi* | [**update_gas_station_configuration_by_asset_id**](docs/GasStationsApi.md#update_gas_station_configuration_by_asset_id) | **PUT** /gas_station/configuration/{assetId} | Edit gas station settings for an asset
+*GenieBetaApi* | [**create_genie_session**](docs/GenieBetaApi.md#create_genie_session) | **POST** /genie/sessions | Create a Genie session
+*GenieBetaApi* | [**send_genie_message**](docs/GenieBetaApi.md#send_genie_message) | **POST** /genie/sessions/{sessionId}/messages | Send a message to a Genie session
*InternalWalletsApi* | [**create_internal_wallet**](docs/InternalWalletsApi.md#create_internal_wallet) | **POST** /internal_wallets | Create an internal wallet
*InternalWalletsApi* | [**create_internal_wallet_asset**](docs/InternalWalletsApi.md#create_internal_wallet_asset) | **POST** /internal_wallets/{walletId}/{assetId} | Add an asset to an internal wallet
*InternalWalletsApi* | [**delete_internal_wallet**](docs/InternalWalletsApi.md#delete_internal_wallet) | **DELETE** /internal_wallets/{walletId} | Delete an internal wallet
@@ -548,6 +552,8 @@ Class | Method | HTTP request | Description
*TokenizationApi* | [**validate_layer_zero_channel_config**](docs/TokenizationApi.md#validate_layer_zero_channel_config) | **GET** /tokenization/multichain/bridge/layerzero/validate | Validate LayerZero channel configuration
*TradingBetaApi* | [**create_order**](docs/TradingBetaApi.md#create_order) | **POST** /trading/orders | Create an order
*TradingBetaApi* | [**create_quote**](docs/TradingBetaApi.md#create_quote) | **POST** /trading/quotes | Create a quote
+*TradingBetaApi* | [**fetch_all_offers**](docs/TradingBetaApi.md#fetch_all_offers) | **POST** /trading/offers | Get all offers
+*TradingBetaApi* | [**fetch_rates**](docs/TradingBetaApi.md#fetch_rates) | **POST** /trading/rates | Get rates
*TradingBetaApi* | [**get_order**](docs/TradingBetaApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details
*TradingBetaApi* | [**get_orders**](docs/TradingBetaApi.md#get_orders) | **GET** /trading/orders | Get orders
*TradingBetaApi* | [**get_trading_provider_by_id**](docs/TradingBetaApi.md#get_trading_provider_by_id) | **GET** /trading/providers/{providerId} | Get trading provider by ID
@@ -582,7 +588,7 @@ Class | Method | HTTP request | Description
*UserGroupsBetaApi* | [**update_user_group**](docs/UserGroupsBetaApi.md#update_user_group) | **PUT** /management/user_groups/{groupId} | Update user group
*UsersApi* | [**get_users**](docs/UsersApi.md#get_users) | **GET** /users | List users
*VaultsApi* | [**activate_asset_for_vault_account**](docs/VaultsApi.md#activate_asset_for_vault_account) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account
-*VaultsApi* | [**activate_circle_gateway_wallet_beta**](docs/VaultsApi.md#activate_circle_gateway_wallet_beta) | **POST** /vault/accounts/{vaultAccountId}/circle_gateway/activate | Activate a Circle Gateway wallet
+*VaultsApi* | [**activate_usdc_gateway_wallet_beta**](docs/VaultsApi.md#activate_usdc_gateway_wallet_beta) | **POST** /vault/accounts/{vaultAccountId}/usdc_gateway/activate | Activate a USDC Gateway wallet
*VaultsApi* | [**attach_or_detach_tags_from_vault_accounts**](docs/VaultsApi.md#attach_or_detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from vault accounts
*VaultsApi* | [**create_legacy_address**](docs/VaultsApi.md#create_legacy_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format
*VaultsApi* | [**create_multiple_accounts**](docs/VaultsApi.md#create_multiple_accounts) | **POST** /vault/accounts/bulk | Bulk creation of new vault accounts
@@ -590,9 +596,8 @@ Class | Method | HTTP request | Description
*VaultsApi* | [**create_vault_account**](docs/VaultsApi.md#create_vault_account) | **POST** /vault/accounts | Create a new vault account
*VaultsApi* | [**create_vault_account_asset**](docs/VaultsApi.md#create_vault_account_asset) | **POST** /vault/accounts/{vaultAccountId}/{assetId} | Create a new vault wallet
*VaultsApi* | [**create_vault_account_asset_address**](docs/VaultsApi.md#create_vault_account_asset_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses | Create new asset deposit address
-*VaultsApi* | [**deactivate_circle_gateway_wallet_beta**](docs/VaultsApi.md#deactivate_circle_gateway_wallet_beta) | **POST** /vault/accounts/{vaultAccountId}/circle_gateway/deactivate | Deactivate a Circle Gateway wallet
+*VaultsApi* | [**deactivate_usdc_gateway_wallet_beta**](docs/VaultsApi.md#deactivate_usdc_gateway_wallet_beta) | **POST** /vault/accounts/{vaultAccountId}/usdc_gateway/deactivate | Deactivate a USDC Gateway wallet
*VaultsApi* | [**get_asset_wallets**](docs/VaultsApi.md#get_asset_wallets) | **GET** /vault/asset_wallets | Get vault wallets (Paginated)
-*VaultsApi* | [**get_circle_gateway_wallet_info_beta**](docs/VaultsApi.md#get_circle_gateway_wallet_info_beta) | **GET** /vault/accounts/{vaultAccountId}/circle_gateway | Get Circle Gateway wallet info
*VaultsApi* | [**get_create_multiple_deposit_addresses_job_status**](docs/VaultsApi.md#get_create_multiple_deposit_addresses_job_status) | **GET** /vault/accounts/addresses/bulk/{jobId} | Get the job status of the bulk deposit address creation
*VaultsApi* | [**get_create_multiple_vault_accounts_job_status**](docs/VaultsApi.md#get_create_multiple_vault_accounts_job_status) | **GET** /vault/accounts/bulk/{jobId} | Get job status of bulk creation of new vault accounts
*VaultsApi* | [**get_max_bip_index_used**](docs/VaultsApi.md#get_max_bip_index_used) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used | Get maximum BIP44 index used
@@ -601,12 +606,14 @@ Class | Method | HTTP request | Description
*VaultsApi* | [**get_public_key_info**](docs/VaultsApi.md#get_public_key_info) | **GET** /vault/public_key_info | Get the public key for a derivation path
*VaultsApi* | [**get_public_key_info_for_address**](docs/VaultsApi.md#get_public_key_info_for_address) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info | Get an asset's public key
*VaultsApi* | [**get_unspent_inputs**](docs/VaultsApi.md#get_unspent_inputs) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs | Get UTXO unspent inputs information
+*VaultsApi* | [**get_usdc_gateway_wallet_info_beta**](docs/VaultsApi.md#get_usdc_gateway_wallet_info_beta) | **GET** /vault/accounts/{vaultAccountId}/usdc_gateway | Get USDC Gateway wallet info
*VaultsApi* | [**get_vault_account**](docs/VaultsApi.md#get_vault_account) | **GET** /vault/accounts/{vaultAccountId} | Get a vault account by ID
*VaultsApi* | [**get_vault_account_asset**](docs/VaultsApi.md#get_vault_account_asset) | **GET** /vault/accounts/{vaultAccountId}/{assetId} | Get the asset balance for a vault account
*VaultsApi* | [**get_vault_account_asset_addresses_paginated**](docs/VaultsApi.md#get_vault_account_asset_addresses_paginated) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated | Get addresses (Paginated)
*VaultsApi* | [**get_vault_assets**](docs/VaultsApi.md#get_vault_assets) | **GET** /vault/assets | Get asset balance for chosen assets
*VaultsApi* | [**get_vault_balance_by_asset**](docs/VaultsApi.md#get_vault_balance_by_asset) | **GET** /vault/assets/{assetId} | Get vault balance by an asset
*VaultsApi* | [**hide_vault_account**](docs/VaultsApi.md#hide_vault_account) | **POST** /vault/accounts/{vaultAccountId}/hide | Hide a vault account in the console
+*VaultsApi* | [**lookup_vault_by_address**](docs/VaultsApi.md#lookup_vault_by_address) | **GET** /vault/lookup_by_address | Look up a vault account by blockchain address
*VaultsApi* | [**set_customer_ref_id_for_address**](docs/VaultsApi.md#set_customer_ref_id_for_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id | Assign AML customer reference ID
*VaultsApi* | [**set_vault_account_auto_fuel**](docs/VaultsApi.md#set_vault_account_auto_fuel) | **POST** /vault/accounts/{vaultAccountId}/set_auto_fuel | Set auto fueling to on or off
*VaultsApi* | [**set_vault_account_customer_ref_id**](docs/VaultsApi.md#set_vault_account_customer_ref_id) | **POST** /vault/accounts/{vaultAccountId}/set_customer_ref_id | Set an AML/KYT ID for a vault account
@@ -693,6 +700,7 @@ Class | Method | HTTP request | Description
- [AddressRegistryTravelRuleProvider](docs/AddressRegistryTravelRuleProvider.md)
- [AddressRegistryVaultListOrder](docs/AddressRegistryVaultListOrder.md)
- [AddressRegistryVaultOptOutItem](docs/AddressRegistryVaultOptOutItem.md)
+ - [AddressReverseLookupResponse](docs/AddressReverseLookupResponse.md)
- [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md)
- [AlertLevelEnum](docs/AlertLevelEnum.md)
- [AmlAlert](docs/AmlAlert.md)
@@ -718,6 +726,7 @@ Class | Method | HTTP request | Description
- [ApproversConfig](docs/ApproversConfig.md)
- [ApproversConfigApprovalGroupsInner](docs/ApproversConfigApprovalGroupsInner.md)
- [Apy](docs/Apy.md)
+ - [ArsConfigResponse](docs/ArsConfigResponse.md)
- [Asset](docs/Asset.md)
- [AssetAlreadyExistHttpError](docs/AssetAlreadyExistHttpError.md)
- [AssetAmount](docs/AssetAmount.md)
@@ -792,8 +801,6 @@ Class | Method | HTTP request | Description
- [ChapsAddress](docs/ChapsAddress.md)
- [ChapsDestination](docs/ChapsDestination.md)
- [ChapsPaymentInfo](docs/ChapsPaymentInfo.md)
- - [CircleGatewayWalletInfoResponse](docs/CircleGatewayWalletInfoResponse.md)
- - [CircleGatewayWalletStatusResponse](docs/CircleGatewayWalletStatusResponse.md)
- [ClaimRewardsRequest](docs/ClaimRewardsRequest.md)
- [CollectionBurnRequestDto](docs/CollectionBurnRequestDto.md)
- [CollectionBurnResponseDto](docs/CollectionBurnResponseDto.md)
@@ -806,8 +813,6 @@ Class | Method | HTTP request | Description
- [CollectionTokenMetadataAttributeDto](docs/CollectionTokenMetadataAttributeDto.md)
- [CollectionTokenMetadataDto](docs/CollectionTokenMetadataDto.md)
- [CollectionType](docs/CollectionType.md)
- - [CommittedQuoteEnum](docs/CommittedQuoteEnum.md)
- - [CommittedQuoteType](docs/CommittedQuoteType.md)
- [ComplianceResultFullPayload](docs/ComplianceResultFullPayload.md)
- [ComplianceResultStatusesEnum](docs/ComplianceResultStatusesEnum.md)
- [ComplianceResults](docs/ComplianceResults.md)
@@ -898,6 +903,7 @@ Class | Method | HTTP request | Description
- [CreateMultipleVaultAccountsJobStatus](docs/CreateMultipleVaultAccountsJobStatus.md)
- [CreateNcwConnectionRequest](docs/CreateNcwConnectionRequest.md)
- [CreateNetworkIdRequest](docs/CreateNetworkIdRequest.md)
+ - [CreateOffersRequest](docs/CreateOffersRequest.md)
- [CreateOrderRequest](docs/CreateOrderRequest.md)
- [CreatePayoutRequest](docs/CreatePayoutRequest.md)
- [CreateQuote](docs/CreateQuote.md)
@@ -1056,6 +1062,9 @@ Class | Method | HTTP request | Description
- [GasStationPropertiesResponse](docs/GasStationPropertiesResponse.md)
- [GasslessStandardConfigurations](docs/GasslessStandardConfigurations.md)
- [GasslessStandardConfigurationsGaslessStandardConfigurationsValue](docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md)
+ - [GenieChatMessage](docs/GenieChatMessage.md)
+ - [GenieCreateSessionResponse](docs/GenieCreateSessionResponse.md)
+ - [GenieSendMessageRequest](docs/GenieSendMessageRequest.md)
- [GetAPIUsersResponse](docs/GetAPIUsersResponse.md)
- [GetActionResponse](docs/GetActionResponse.md)
- [GetActionsResponse](docs/GetActionsResponse.md)
@@ -1095,8 +1104,6 @@ Class | Method | HTTP request | Description
- [Identification](docs/Identification.md)
- [IdentificationPolicyOverride](docs/IdentificationPolicyOverride.md)
- [IdlType](docs/IdlType.md)
- - [IndicativeQuoteEnum](docs/IndicativeQuoteEnum.md)
- - [IndicativeQuoteType](docs/IndicativeQuoteType.md)
- [InitiatorConfig](docs/InitiatorConfig.md)
- [InitiatorConfigPattern](docs/InitiatorConfigPattern.md)
- [InstructionAmount](docs/InstructionAmount.md)
@@ -1196,6 +1203,8 @@ Class | Method | HTTP request | Description
- [NotificationPaginatedResponse](docs/NotificationPaginatedResponse.md)
- [NotificationStatus](docs/NotificationStatus.md)
- [NotificationWithData](docs/NotificationWithData.md)
+ - [Offer](docs/Offer.md)
+ - [OffersResponse](docs/OffersResponse.md)
- [OnchainTransaction](docs/OnchainTransaction.md)
- [OnchainTransactionsPagedResponse](docs/OnchainTransactionsPagedResponse.md)
- [OneTimeAddress](docs/OneTimeAddress.md)
@@ -1285,17 +1294,23 @@ Class | Method | HTTP request | Description
- [QuoteExecutionRequestDetails](docs/QuoteExecutionRequestDetails.md)
- [QuoteExecutionStep](docs/QuoteExecutionStep.md)
- [QuoteExecutionTypeDetails](docs/QuoteExecutionTypeDetails.md)
+ - [QuoteExecutionTypeEnum](docs/QuoteExecutionTypeEnum.md)
- [QuoteExecutionWithRequoteRequestDetails](docs/QuoteExecutionWithRequoteRequestDetails.md)
- [QuoteExecutionWithRequoteResponseDetails](docs/QuoteExecutionWithRequoteResponseDetails.md)
- - [QuoteFailure](docs/QuoteFailure.md)
- - [QuotePropertiesDetails](docs/QuotePropertiesDetails.md)
- - [QuoteTypeEnum](docs/QuoteTypeEnum.md)
+ - [QuoteOffer](docs/QuoteOffer.md)
+ - [QuoteOfferType](docs/QuoteOfferType.md)
- [QuotesResponse](docs/QuotesResponse.md)
+ - [Rate](docs/Rate.md)
+ - [RateOffer](docs/RateOffer.md)
+ - [RateOfferType](docs/RateOfferType.md)
+ - [RatesRequest](docs/RatesRequest.md)
+ - [RatesResponse](docs/RatesResponse.md)
- [ReQuoteDetails](docs/ReQuoteDetails.md)
- [ReQuoteDetailsReQuote](docs/ReQuoteDetailsReQuote.md)
- [ReadAbiFunction](docs/ReadAbiFunction.md)
- [ReadCallFunctionDto](docs/ReadCallFunctionDto.md)
- [ReadCallFunctionDtoAbiFunction](docs/ReadCallFunctionDtoAbiFunction.md)
+ - [ReasonForPaymentEnum](docs/ReasonForPaymentEnum.md)
- [RecipientHandle](docs/RecipientHandle.md)
- [RedeemFundsToLinkedDDAResponse](docs/RedeemFundsToLinkedDDAResponse.md)
- [RegisterLegalEntityRequest](docs/RegisterLegalEntityRequest.md)
@@ -1334,6 +1349,7 @@ Class | Method | HTTP request | Description
- [SOLAccount](docs/SOLAccount.md)
- [SOLAccountWithValue](docs/SOLAccountWithValue.md)
- [ScopeItem](docs/ScopeItem.md)
+ - [ScopeItemFailure](docs/ScopeItemFailure.md)
- [ScreeningAlertExposureTypeEnum](docs/ScreeningAlertExposureTypeEnum.md)
- [ScreeningAmlAlert](docs/ScreeningAmlAlert.md)
- [ScreeningAmlMatchedRule](docs/ScreeningAmlMatchedRule.md)
@@ -1430,6 +1446,7 @@ Class | Method | HTTP request | Description
- [SolanaInstructionWithValue](docs/SolanaInstructionWithValue.md)
- [SolanaSimpleCreateParams](docs/SolanaSimpleCreateParams.md)
- [SourceConfig](docs/SourceConfig.md)
+ - [SourceOfFunds](docs/SourceOfFunds.md)
- [SourceTransferPeerPath](docs/SourceTransferPeerPath.md)
- [SourceTransferPeerPathResponse](docs/SourceTransferPeerPathResponse.md)
- [SpamOwnershipResponse](docs/SpamOwnershipResponse.md)
@@ -1671,6 +1688,8 @@ Class | Method | HTTP request | Description
- [UpdateVaultAccountRequest](docs/UpdateVaultAccountRequest.md)
- [UpdateWebhookRequest](docs/UpdateWebhookRequest.md)
- [UsWirePaymentInfo](docs/UsWirePaymentInfo.md)
+ - [UsdcGatewayWalletInfoResponse](docs/UsdcGatewayWalletInfoResponse.md)
+ - [UsdcGatewayWalletStatusResponse](docs/UsdcGatewayWalletStatusResponse.md)
- [UserGroupCreateRequest](docs/UserGroupCreateRequest.md)
- [UserGroupCreateResponse](docs/UserGroupCreateResponse.md)
- [UserGroupResponse](docs/UserGroupResponse.md)
diff --git a/docs/AddressReverseLookupResponse.md b/docs/AddressReverseLookupResponse.md
new file mode 100644
index 00000000..110a247b
--- /dev/null
+++ b/docs/AddressReverseLookupResponse.md
@@ -0,0 +1,33 @@
+# AddressReverseLookupResponse
+
+Reverse-lookup result mapping a blockchain address to its owning vault account.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**address** | **str** | The queried blockchain address. |
+**type** | **str** | Source type of the resolved address. |
+**vault_account_id** | **str** | Vault account ID that owns the address. |
+**blockchains** | **List[str]** | Blockchain assets associated with this address in the vault account. |
+
+## Example
+
+```python
+from fireblocks.models.address_reverse_lookup_response import AddressReverseLookupResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AddressReverseLookupResponse from a JSON string
+address_reverse_lookup_response_instance = AddressReverseLookupResponse.from_json(json)
+# print the JSON string representation of the object
+print(AddressReverseLookupResponse.to_json())
+
+# convert the object into a dict
+address_reverse_lookup_response_dict = address_reverse_lookup_response_instance.to_dict()
+# create an instance of AddressReverseLookupResponse from a dict
+address_reverse_lookup_response_from_dict = AddressReverseLookupResponse.from_dict(address_reverse_lookup_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/ArsConfigResponse.md b/docs/ArsConfigResponse.md
new file mode 100644
index 00000000..41493c0a
--- /dev/null
+++ b/docs/ArsConfigResponse.md
@@ -0,0 +1,31 @@
+# ArsConfigResponse
+
+ARS (Address Registry Screening) configuration for the tenant: active flag and last update time.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**active** | **bool** | Whether ARS is active for the tenant | [optional]
+**last_update** | **datetime** | Last update timestamp of the configuration | [optional]
+
+## Example
+
+```python
+from fireblocks.models.ars_config_response import ArsConfigResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ArsConfigResponse from a JSON string
+ars_config_response_instance = ArsConfigResponse.from_json(json)
+# print the JSON string representation of the object
+print(ArsConfigResponse.to_json())
+
+# convert the object into a dict
+ars_config_response_dict = ars_config_response_instance.to_dict()
+# create an instance of ArsConfigResponse from a dict
+ars_config_response_from_dict = ArsConfigResponse.from_dict(ars_config_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/CircleGatewayWalletInfoResponse.md b/docs/CircleGatewayWalletInfoResponse.md
deleted file mode 100644
index 97cfcda8..00000000
--- a/docs/CircleGatewayWalletInfoResponse.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# CircleGatewayWalletInfoResponse
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**wallet_id** | **str** | The Circle Gateway wallet identifier |
-**type** | **str** | The Circle Gateway provider identifier |
-**status** | **str** | Current activation status of the Circle Gateway wallet |
-**symbol** | **str** | The token symbol supported by this wallet (e.g. USDC) |
-**asset_ids** | **List[str]** | Fireblocks asset IDs available for this wallet |
-
-## Example
-
-```python
-from fireblocks.models.circle_gateway_wallet_info_response import CircleGatewayWalletInfoResponse
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of CircleGatewayWalletInfoResponse from a JSON string
-circle_gateway_wallet_info_response_instance = CircleGatewayWalletInfoResponse.from_json(json)
-# print the JSON string representation of the object
-print(CircleGatewayWalletInfoResponse.to_json())
-
-# convert the object into a dict
-circle_gateway_wallet_info_response_dict = circle_gateway_wallet_info_response_instance.to_dict()
-# create an instance of CircleGatewayWalletInfoResponse from a dict
-circle_gateway_wallet_info_response_from_dict = CircleGatewayWalletInfoResponse.from_dict(circle_gateway_wallet_info_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/CircleGatewayWalletStatusResponse.md b/docs/CircleGatewayWalletStatusResponse.md
deleted file mode 100644
index 546c4ccf..00000000
--- a/docs/CircleGatewayWalletStatusResponse.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# CircleGatewayWalletStatusResponse
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**wallet_id** | **str** | The Circle Gateway wallet identifier |
-**status** | **str** | Current activation status of the Circle Gateway wallet |
-
-## Example
-
-```python
-from fireblocks.models.circle_gateway_wallet_status_response import CircleGatewayWalletStatusResponse
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of CircleGatewayWalletStatusResponse from a JSON string
-circle_gateway_wallet_status_response_instance = CircleGatewayWalletStatusResponse.from_json(json)
-# print the JSON string representation of the object
-print(CircleGatewayWalletStatusResponse.to_json())
-
-# convert the object into a dict
-circle_gateway_wallet_status_response_dict = circle_gateway_wallet_status_response_instance.to_dict()
-# create an instance of CircleGatewayWalletStatusResponse from a dict
-circle_gateway_wallet_status_response_from_dict = CircleGatewayWalletStatusResponse.from_dict(circle_gateway_wallet_status_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/CommittedQuoteEnum.md b/docs/CommittedQuoteEnum.md
deleted file mode 100644
index 6026af8b..00000000
--- a/docs/CommittedQuoteEnum.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# CommittedQuoteEnum
-
-Indicates this is a committed quote
-
-## Enum
-
-* `COMMITTED` (value: `'COMMITTED'`)
-
-[[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/CommittedQuoteType.md b/docs/CommittedQuoteType.md
deleted file mode 100644
index 1359e6e0..00000000
--- a/docs/CommittedQuoteType.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# CommittedQuoteType
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**type** | [**CommittedQuoteEnum**](CommittedQuoteEnum.md) | |
-
-## Example
-
-```python
-from fireblocks.models.committed_quote_type import CommittedQuoteType
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of CommittedQuoteType from a JSON string
-committed_quote_type_instance = CommittedQuoteType.from_json(json)
-# print the JSON string representation of the object
-print(CommittedQuoteType.to_json())
-
-# convert the object into a dict
-committed_quote_type_dict = committed_quote_type_instance.to_dict()
-# create an instance of CommittedQuoteType from a dict
-committed_quote_type_from_dict = CommittedQuoteType.from_dict(committed_quote_type_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 e90038ab..9995f83e 100644
--- a/docs/ComplianceApi.md
+++ b/docs/ComplianceApi.md
@@ -4,10 +4,12 @@ All URIs are relative to *https://api.fireblocks.io/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
+[**activate_ars_config**](ComplianceApi.md#activate_ars_config) | **POST** /screening/ars/config/activate | Activate ARS (Address Registry Screening)
[**activate_byork_config**](ComplianceApi.md#activate_byork_config) | **POST** /screening/byork/config/activate | Activate BYORK Light
[**add_address_registry_vault_opt_outs**](ComplianceApi.md#add_address_registry_vault_opt_outs) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list
[**assign_vaults_to_legal_entity**](ComplianceApi.md#assign_vaults_to_legal_entity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity
[**create_counterparty_group**](ComplianceApi.md#create_counterparty_group) | **POST** /counterparty_groups | Create a counterparty group
+[**deactivate_ars_config**](ComplianceApi.md#deactivate_ars_config) | **POST** /screening/ars/config/deactivate | Deactivate ARS (Address Registry Screening)
[**deactivate_byork_config**](ComplianceApi.md#deactivate_byork_config) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light
[**delete_counterparty_group**](ComplianceApi.md#delete_counterparty_group) | **DELETE** /counterparty_groups/{groupId} | Delete a counterparty group
[**get_address_registry_tenant_participation_status**](ComplianceApi.md#get_address_registry_tenant_participation_status) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace
@@ -31,7 +33,7 @@ Method | HTTP request | Description
[**register_legal_entity**](ComplianceApi.md#register_legal_entity) | **POST** /legal_entities | Register a new legal entity
[**remove_address_registry_vault_opt_out**](ComplianceApi.md#remove_address_registry_vault_opt_out) | **DELETE** /address_registry/vaults/{vaultAccountId} | Remove a single vault account from the address registry opt-out list
[**remove_all_address_registry_vault_opt_outs**](ComplianceApi.md#remove_all_address_registry_vault_opt_outs) | **DELETE** /address_registry/vaults | Remove all vault-level address registry opt-outs for the workspace
-[**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
+[**retry_rejected_transaction_bypass_screening_checks**](ComplianceApi.md#retry_rejected_transaction_bypass_screening_checks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Bypass Screening Policy
[**set_aml_verdict**](ComplianceApi.md#set_aml_verdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict (BYORK Super Light)
[**set_byork_timeouts**](ComplianceApi.md#set_byork_timeouts) | **PUT** /screening/byork/config/timeouts | Set BYORK Light timeouts
[**set_byork_verdict**](ComplianceApi.md#set_byork_verdict) | **POST** /screening/byork/verdict | Set BYORK Light verdict
@@ -42,6 +44,81 @@ Method | HTTP request | Description
[**update_travel_rule_config**](ComplianceApi.md#update_travel_rule_config) | **PUT** /screening/travel_rule/policy_configuration | Update Travel Rule Configuration
+# **activate_ars_config**
+> ArsConfigResponse activate_ars_config(idempotency_key=idempotency_key)
+
+Activate ARS (Address Registry Screening)
+
+Activates ARS (Address Registry Screening) for the authenticated tenant (sets config.active to true). Once activated, ARS screening applies to matching transactions.
+
+### Example
+
+
+```python
+from fireblocks.models.ars_config_response import ArsConfigResponse
+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:
+ 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:
+ # Activate ARS (Address Registry Screening)
+ api_response = fireblocks.compliance.activate_ars_config(idempotency_key=idempotency_key).result()
+ print("The response of ComplianceApi->activate_ars_config:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ComplianceApi->activate_ars_config: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **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
+
+[**ArsConfigResponse**](ArsConfigResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | ARS configuration activated. | * X-Request-ID -
|
+**400** | Tenant not opted-in for address registry. | * 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)
+
# **activate_byork_config**
> ByorkConfigResponse activate_byork_config(idempotency_key=idempotency_key)
@@ -356,6 +433,81 @@ 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)
+# **deactivate_ars_config**
+> ArsConfigResponse deactivate_ars_config(idempotency_key=idempotency_key)
+
+Deactivate ARS (Address Registry Screening)
+
+Deactivates ARS (Address Registry Screening) for the authenticated tenant (sets config.active to false). Once deactivated, ARS screening no longer applies until activated again.
+
+### Example
+
+
+```python
+from fireblocks.models.ars_config_response import ArsConfigResponse
+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:
+ 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:
+ # Deactivate ARS (Address Registry Screening)
+ api_response = fireblocks.compliance.deactivate_ars_config(idempotency_key=idempotency_key).result()
+ print("The response of ComplianceApi->deactivate_ars_config:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ComplianceApi->deactivate_ars_config: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **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
+
+[**ArsConfigResponse**](ArsConfigResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | ARS configuration deactivated. | * X-Request-ID -
|
+**400** | Tenant not opted-in for address registry. | * 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)
+
# **deactivate_byork_config**
> ByorkConfigResponse deactivate_byork_config(idempotency_key=idempotency_key)
@@ -2071,9 +2223,9 @@ No authorization required
# **retry_rejected_transaction_bypass_screening_checks**
> CreateTransactionResponse retry_rejected_transaction_bypass_screening_checks(tx_id, idempotency_key=idempotency_key)
-Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check
+Bypass Screening Policy
-This endpoint is restricted to Admin API users and is only applicable to outgoing transactions.
+Triggers a new transaction, with the API user as the initiator, bypassing the screening policy checks. This endpoint is restricted to Admin API users and is only applicable to outgoing transactions.
### Example
@@ -2104,7 +2256,7 @@ with Fireblocks(configuration) as fireblocks:
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:
- # Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check
+ # Bypass Screening Policy
api_response = fireblocks.compliance.retry_rejected_transaction_bypass_screening_checks(tx_id, idempotency_key=idempotency_key).result()
print("The response of ComplianceApi->retry_rejected_transaction_bypass_screening_checks:\n")
pprint(api_response)
diff --git a/docs/CreateOffersRequest.md b/docs/CreateOffersRequest.md
new file mode 100644
index 00000000..7a0ed1f0
--- /dev/null
+++ b/docs/CreateOffersRequest.md
@@ -0,0 +1,36 @@
+# CreateOffersRequest
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**base_asset_id** | **str** | The source asset identifier. |
+**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**quote_asset_id** | **str** | The target asset identifier. |
+**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**base_amount** | **str** | The amount to get offers for |
+**slippage_bps** | **int** | Slippage tolerance in basis points (bps) for defi quotes - 1 is 0.01% and 10000 is 100%. If not set, defaults to 50 bps (0.5%). | [optional] [default to 50]
+**settlement** | [**DVPSettlement**](DVPSettlement.md) | | [optional]
+**side** | [**Side**](Side.md) | |
+
+## Example
+
+```python
+from fireblocks.models.create_offers_request import CreateOffersRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CreateOffersRequest from a JSON string
+create_offers_request_instance = CreateOffersRequest.from_json(json)
+# print the JSON string representation of the object
+print(CreateOffersRequest.to_json())
+
+# convert the object into a dict
+create_offers_request_dict = create_offers_request_instance.to_dict()
+# create an instance of CreateOffersRequest from a dict
+create_offers_request_from_dict = CreateOffersRequest.from_dict(create_offers_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/CreateOrderRequest.md b/docs/CreateOrderRequest.md
index e9e2dc7a..4243a151 100644
--- a/docs/CreateOrderRequest.md
+++ b/docs/CreateOrderRequest.md
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
**execution_request_details** | [**ExecutionRequestDetails**](ExecutionRequestDetails.md) | |
**settlement** | [**Settlement**](Settlement.md) | |
**participants_identification** | [**ParticipantsIdentification**](ParticipantsIdentification.md) | | [optional]
+**source_of_funds** | [**SourceOfFunds**](SourceOfFunds.md) | | [optional]
**customer_internal_reference_id** | **str** | Internal reference ID for the customer | [optional]
**note** | **str** | Optional note for the order | [optional]
diff --git a/docs/ExecutionRequestDetails.md b/docs/ExecutionRequestDetails.md
index ef4445cd..9b17a3ed 100644
--- a/docs/ExecutionRequestDetails.md
+++ b/docs/ExecutionRequestDetails.md
@@ -6,7 +6,7 @@ Order execution details
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | |
+**type** | [**QuoteExecutionTypeEnum**](QuoteExecutionTypeEnum.md) | |
**side** | [**Side**](Side.md) | |
**base_amount** | **str** | Amount in baseAssetId. BUY = base amount to receive; SELL = base amount to sell. |
**base_asset_id** | **str** | The asset you receive on BUY / give on SELL. |
diff --git a/docs/ExecutionResponseDetails.md b/docs/ExecutionResponseDetails.md
index 51a7c76e..432cf20b 100644
--- a/docs/ExecutionResponseDetails.md
+++ b/docs/ExecutionResponseDetails.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | |
+**type** | [**QuoteExecutionTypeEnum**](QuoteExecutionTypeEnum.md) | |
**side** | [**Side**](Side.md) | |
**base_amount** | **str** | Amount to convert |
**base_asset_id** | **str** | Source asset identifier |
diff --git a/docs/GenieBetaApi.md b/docs/GenieBetaApi.md
new file mode 100644
index 00000000..d4ff00b3
--- /dev/null
+++ b/docs/GenieBetaApi.md
@@ -0,0 +1,169 @@
+# fireblocks.GenieBetaApi
+
+All URIs are relative to *https://api.fireblocks.io/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_genie_session**](GenieBetaApi.md#create_genie_session) | **POST** /genie/sessions | Create a Genie session
+[**send_genie_message**](GenieBetaApi.md#send_genie_message) | **POST** /genie/sessions/{sessionId}/messages | Send a message to a Genie session
+
+
+# **create_genie_session**
+> GenieCreateSessionResponse create_genie_session(idempotency_key=idempotency_key)
+
+Create a Genie session
+
+Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation.
+
+**Note:** This endpoint is currently in beta and might be subject to changes.
+
+
+### Example
+
+
+```python
+from fireblocks.models.genie_create_session_response import GenieCreateSessionResponse
+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:
+ 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:
+ # Create a Genie session
+ api_response = fireblocks.genie_beta.create_genie_session(idempotency_key=idempotency_key).result()
+ print("The response of GenieBetaApi->create_genie_session:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling GenieBetaApi->create_genie_session: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **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
+
+[**GenieCreateSessionResponse**](GenieCreateSessionResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Session created | * 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)
+
+# **send_genie_message**
+> GenieChatMessage send_genie_message(session_id, genie_send_message_request, idempotency_key=idempotency_key)
+
+Send a message to a Genie session
+
+Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context.
+
+**Note:** This endpoint is currently in beta and might be subject to changes.
+
+
+### Example
+
+
+```python
+from fireblocks.models.genie_chat_message import GenieChatMessage
+from fireblocks.models.genie_send_message_request import GenieSendMessageRequest
+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:
+ session_id = '7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a' # str | The Genie session ID returned from `POST /genie/sessions`.
+ genie_send_message_request = fireblocks.GenieSendMessageRequest() # GenieSendMessageRequest |
+ 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:
+ # Send a message to a Genie session
+ api_response = fireblocks.genie_beta.send_genie_message(session_id, genie_send_message_request, idempotency_key=idempotency_key).result()
+ print("The response of GenieBetaApi->send_genie_message:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling GenieBetaApi->send_genie_message: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **session_id** | **str**| The Genie session ID returned from `POST /genie/sessions`. |
+ **genie_send_message_request** | [**GenieSendMessageRequest**](GenieSendMessageRequest.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
+
+[**GenieChatMessage**](GenieChatMessage.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Genie response | * 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)
+
diff --git a/docs/GenieChatMessage.md b/docs/GenieChatMessage.md
new file mode 100644
index 00000000..802c4666
--- /dev/null
+++ b/docs/GenieChatMessage.md
@@ -0,0 +1,33 @@
+# GenieChatMessage
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | The unique identifier of the message. |
+**session_id** | **str** | The Genie session this message belongs to. |
+**role** | **str** | Who produced the message — `USER` for the customer-supplied query, `ASSISTANT` for the Genie response. |
+**content** | **str** | The natural-language body of the message. |
+**created_at** | **int** | Message creation timestamp in epoch milliseconds. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.genie_chat_message import GenieChatMessage
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GenieChatMessage from a JSON string
+genie_chat_message_instance = GenieChatMessage.from_json(json)
+# print the JSON string representation of the object
+print(GenieChatMessage.to_json())
+
+# convert the object into a dict
+genie_chat_message_dict = genie_chat_message_instance.to_dict()
+# create an instance of GenieChatMessage from a dict
+genie_chat_message_from_dict = GenieChatMessage.from_dict(genie_chat_message_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/GenieCreateSessionResponse.md b/docs/GenieCreateSessionResponse.md
new file mode 100644
index 00000000..eb28fbbb
--- /dev/null
+++ b/docs/GenieCreateSessionResponse.md
@@ -0,0 +1,31 @@
+# GenieCreateSessionResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | The unique identifier of the newly created Genie session. Use this when sending messages in the conversation. |
+**created_at** | **int** | Session creation timestamp in epoch milliseconds. | [optional]
+**title** | **str** | Session title. May be empty until the first message has been processed. | [optional]
+
+## Example
+
+```python
+from fireblocks.models.genie_create_session_response import GenieCreateSessionResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GenieCreateSessionResponse from a JSON string
+genie_create_session_response_instance = GenieCreateSessionResponse.from_json(json)
+# print the JSON string representation of the object
+print(GenieCreateSessionResponse.to_json())
+
+# convert the object into a dict
+genie_create_session_response_dict = genie_create_session_response_instance.to_dict()
+# create an instance of GenieCreateSessionResponse from a dict
+genie_create_session_response_from_dict = GenieCreateSessionResponse.from_dict(genie_create_session_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/GenieSendMessageRequest.md b/docs/GenieSendMessageRequest.md
new file mode 100644
index 00000000..edbf5db3
--- /dev/null
+++ b/docs/GenieSendMessageRequest.md
@@ -0,0 +1,29 @@
+# GenieSendMessageRequest
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **str** | The natural-language question or instruction to send to Genie. |
+
+## Example
+
+```python
+from fireblocks.models.genie_send_message_request import GenieSendMessageRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GenieSendMessageRequest from a JSON string
+genie_send_message_request_instance = GenieSendMessageRequest.from_json(json)
+# print the JSON string representation of the object
+print(GenieSendMessageRequest.to_json())
+
+# convert the object into a dict
+genie_send_message_request_dict = genie_send_message_request_instance.to_dict()
+# create an instance of GenieSendMessageRequest from a dict
+genie_send_message_request_from_dict = GenieSendMessageRequest.from_dict(genie_send_message_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/IndicativeQuoteEnum.md b/docs/IndicativeQuoteEnum.md
deleted file mode 100644
index 39904e97..00000000
--- a/docs/IndicativeQuoteEnum.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# IndicativeQuoteEnum
-
-Indicates this is an indicative quote
-
-## Enum
-
-* `INDICATIVE` (value: `'INDICATIVE'`)
-
-[[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/IndicativeQuoteType.md b/docs/IndicativeQuoteType.md
deleted file mode 100644
index 5984e28b..00000000
--- a/docs/IndicativeQuoteType.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# IndicativeQuoteType
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**type** | [**IndicativeQuoteEnum**](IndicativeQuoteEnum.md) | |
-
-## Example
-
-```python
-from fireblocks.models.indicative_quote_type import IndicativeQuoteType
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of IndicativeQuoteType from a JSON string
-indicative_quote_type_instance = IndicativeQuoteType.from_json(json)
-# print the JSON string representation of the object
-print(IndicativeQuoteType.to_json())
-
-# convert the object into a dict
-indicative_quote_type_dict = indicative_quote_type_instance.to_dict()
-# create an instance of IndicativeQuoteType from a dict
-indicative_quote_type_from_dict = IndicativeQuoteType.from_dict(indicative_quote_type_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/Offer.md b/docs/Offer.md
new file mode 100644
index 00000000..d53f168f
--- /dev/null
+++ b/docs/Offer.md
@@ -0,0 +1,47 @@
+# Offer
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**via** | [**AccessType**](AccessType.md) | |
+**base_asset_id** | **str** | The source asset identifier. |
+**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**quote_asset_id** | **str** | The target asset identifier. |
+**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**rate** | **str** | The indicative exchange rate — the number of units of the quote asset that equal 1 unit of the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD. |
+**offer_type** | **str** | The type of offer — QUOTE for executable committed quotes. |
+**id** | **str** | The unique identifier of the quote. |
+**base_amount** | **str** | The amount of the base asset. |
+**quote_amount** | **str** | The amount of the quote asset. |
+**price_impact** | **float** | The estimated price impact as a decimal fraction. | [optional]
+**quote_min_amount** | **str** | The minimum guaranteed amount of the quote asset. | [optional]
+**is_slippage_applied** | **bool** | Indicates if slippage was applied to the quote. | [optional] [default to False]
+**execution_steps** | [**List[QuoteExecutionStep]**](QuoteExecutionStep.md) | Ordered list of execution steps for the quote. | [optional]
+**general_fees** | [**List[Fee]**](Fee.md) | General fees associated with the quote. | [optional]
+**side** | [**Side**](Side.md) | |
+**expires_at** | **str** | The expiration time of the quote in ISO 8601 format. |
+**order_creation_requirements** | **str** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending. | [optional]
+**type** | **str** | The type of the quote. |
+
+## Example
+
+```python
+from fireblocks.models.offer import Offer
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Offer from a JSON string
+offer_instance = Offer.from_json(json)
+# print the JSON string representation of the object
+print(Offer.to_json())
+
+# convert the object into a dict
+offer_dict = offer_instance.to_dict()
+# create an instance of Offer from a dict
+offer_from_dict = Offer.from_dict(offer_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/OffersResponse.md b/docs/OffersResponse.md
new file mode 100644
index 00000000..abf33df0
--- /dev/null
+++ b/docs/OffersResponse.md
@@ -0,0 +1,30 @@
+# OffersResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**offers** | [**List[Offer]**](Offer.md) | List of offers returned for the requested asset pair. |
+**errors** | [**List[ScopeItemFailure]**](ScopeItemFailure.md) | Partial failures encountered while requesting offers. Empty when all offer requests succeed. |
+
+## Example
+
+```python
+from fireblocks.models.offers_response import OffersResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OffersResponse from a JSON string
+offers_response_instance = OffersResponse.from_json(json)
+# print the JSON string representation of the object
+print(OffersResponse.to_json())
+
+# convert the object into a dict
+offers_response_dict = offers_response_instance.to_dict()
+# create an instance of OffersResponse from a dict
+offers_response_from_dict = OffersResponse.from_dict(offers_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/Quote.md b/docs/Quote.md
index b70de709..fd4b27e3 100644
--- a/docs/Quote.md
+++ b/docs/Quote.md
@@ -1,24 +1,28 @@
# Quote
+A committed executable quote for a trading pair.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**via** | [**AccessType**](AccessType.md) | |
-**id** | **str** | |
-**quote_asset_id** | **str** | |
-**base_asset_id** | **str** | |
-**base_amount** | **str** | |
-**quote_amount** | **str** | |
-**price_impact** | **float** | | [optional]
-**quote_min_amount** | **str** | | [optional]
-**execution_steps** | [**List[QuoteExecutionStep]**](QuoteExecutionStep.md) | | [optional]
-**general_fees** | [**List[Fee]**](Fee.md) | | [optional]
+**id** | **str** | The unique identifier of the quote. |
+**quote_asset_id** | **str** | The target asset identifier. |
+**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**base_asset_id** | **str** | The source asset identifier. |
+**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**base_amount** | **str** | The amount of the base asset. |
+**quote_amount** | **str** | The amount of the quote asset. |
+**price_impact** | **float** | The estimated price impact as a decimal fraction. | [optional]
+**quote_min_amount** | **str** | The minimum guaranteed amount of the quote asset. | [optional]
+**is_slippage_applied** | **bool** | Indicates if slippage was applied to the quote. | [optional] [default to False]
+**execution_steps** | [**List[QuoteExecutionStep]**](QuoteExecutionStep.md) | Ordered list of execution steps for the quote. | [optional]
+**general_fees** | [**List[Fee]**](Fee.md) | General fees associated with the quote. | [optional]
**side** | [**Side**](Side.md) | |
-**expires_at** | **str** | The expiration time of the quote in ISO format. |
-**order_creation_requirements** | **str** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order for this quote. The schema mirrors the structure of CreateOrderRequest.participantsIdentification json schema, so clients can validate their order payload before sending. | [optional]
-**type** | [**IndicativeQuoteEnum**](IndicativeQuoteEnum.md) | |
+**expires_at** | **str** | The expiration time of the quote in ISO 8601 format. |
+**order_creation_requirements** | **str** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending. | [optional]
+**type** | **str** | The type of the quote. |
## Example
diff --git a/docs/QuoteExecutionRequestDetails.md b/docs/QuoteExecutionRequestDetails.md
index 72f5cc5d..8c697737 100644
--- a/docs/QuoteExecutionRequestDetails.md
+++ b/docs/QuoteExecutionRequestDetails.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | |
+**type** | [**QuoteExecutionTypeEnum**](QuoteExecutionTypeEnum.md) | |
**quote_id** | **str** | Quote ID for quote orders |
## Example
diff --git a/docs/QuoteExecutionTypeDetails.md b/docs/QuoteExecutionTypeDetails.md
index 417db5b1..06eb8ab0 100644
--- a/docs/QuoteExecutionTypeDetails.md
+++ b/docs/QuoteExecutionTypeDetails.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | |
+**type** | [**QuoteExecutionTypeEnum**](QuoteExecutionTypeEnum.md) | |
**quote_id** | **str** | Quote ID for quote orders |
**quote_amount** | **str** | Quote amount for quote orders |
diff --git a/docs/QuoteTypeEnum.md b/docs/QuoteExecutionTypeEnum.md
similarity index 90%
rename from docs/QuoteTypeEnum.md
rename to docs/QuoteExecutionTypeEnum.md
index a926c86a..12c921e8 100644
--- a/docs/QuoteTypeEnum.md
+++ b/docs/QuoteExecutionTypeEnum.md
@@ -1,4 +1,4 @@
-# QuoteTypeEnum
+# QuoteExecutionTypeEnum
Order type for quote orders
diff --git a/docs/QuoteExecutionWithRequoteRequestDetails.md b/docs/QuoteExecutionWithRequoteRequestDetails.md
index 02419f37..adb0bf07 100644
--- a/docs/QuoteExecutionWithRequoteRequestDetails.md
+++ b/docs/QuoteExecutionWithRequoteRequestDetails.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | |
+**type** | [**QuoteExecutionTypeEnum**](QuoteExecutionTypeEnum.md) | |
**quote_id** | **str** | Quote ID for quote orders |
**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional]
diff --git a/docs/QuoteExecutionWithRequoteResponseDetails.md b/docs/QuoteExecutionWithRequoteResponseDetails.md
index 58cd0944..fda91123 100644
--- a/docs/QuoteExecutionWithRequoteResponseDetails.md
+++ b/docs/QuoteExecutionWithRequoteResponseDetails.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | |
+**type** | [**QuoteExecutionTypeEnum**](QuoteExecutionTypeEnum.md) | |
**quote_id** | **str** | Quote ID for quote orders |
**quote_amount** | **str** | Quote amount for quote orders |
**side** | [**Side**](Side.md) | |
diff --git a/docs/QuoteOffer.md b/docs/QuoteOffer.md
new file mode 100644
index 00000000..17c79909
--- /dev/null
+++ b/docs/QuoteOffer.md
@@ -0,0 +1,46 @@
+# QuoteOffer
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**via** | [**AccessType**](AccessType.md) | |
+**id** | **str** | The unique identifier of the quote. |
+**quote_asset_id** | **str** | The target asset identifier. |
+**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**base_asset_id** | **str** | The source asset identifier. |
+**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**base_amount** | **str** | The amount of the base asset. |
+**quote_amount** | **str** | The amount of the quote asset. |
+**price_impact** | **float** | The estimated price impact as a decimal fraction. | [optional]
+**quote_min_amount** | **str** | The minimum guaranteed amount of the quote asset. | [optional]
+**is_slippage_applied** | **bool** | Indicates if slippage was applied to the quote. | [optional] [default to False]
+**execution_steps** | [**List[QuoteExecutionStep]**](QuoteExecutionStep.md) | Ordered list of execution steps for the quote. | [optional]
+**general_fees** | [**List[Fee]**](Fee.md) | General fees associated with the quote. | [optional]
+**side** | [**Side**](Side.md) | |
+**expires_at** | **str** | The expiration time of the quote in ISO 8601 format. |
+**order_creation_requirements** | **str** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending. | [optional]
+**type** | **str** | The type of the quote. |
+**offer_type** | **str** | The type of offer — QUOTE for executable committed quotes. |
+
+## Example
+
+```python
+from fireblocks.models.quote_offer import QuoteOffer
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of QuoteOffer from a JSON string
+quote_offer_instance = QuoteOffer.from_json(json)
+# print the JSON string representation of the object
+print(QuoteOffer.to_json())
+
+# convert the object into a dict
+quote_offer_dict = quote_offer_instance.to_dict()
+# create an instance of QuoteOffer from a dict
+quote_offer_from_dict = QuoteOffer.from_dict(quote_offer_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/QuoteOfferType.md b/docs/QuoteOfferType.md
new file mode 100644
index 00000000..d4e89098
--- /dev/null
+++ b/docs/QuoteOfferType.md
@@ -0,0 +1,29 @@
+# QuoteOfferType
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**offer_type** | **str** | The type of offer — QUOTE for executable committed quotes. |
+
+## Example
+
+```python
+from fireblocks.models.quote_offer_type import QuoteOfferType
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of QuoteOfferType from a JSON string
+quote_offer_type_instance = QuoteOfferType.from_json(json)
+# print the JSON string representation of the object
+print(QuoteOfferType.to_json())
+
+# convert the object into a dict
+quote_offer_type_dict = quote_offer_type_instance.to_dict()
+# create an instance of QuoteOfferType from a dict
+quote_offer_type_from_dict = QuoteOfferType.from_dict(quote_offer_type_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/QuotePropertiesDetails.md b/docs/QuotePropertiesDetails.md
deleted file mode 100644
index edc4eb35..00000000
--- a/docs/QuotePropertiesDetails.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# QuotePropertiesDetails
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**via** | [**AccessType**](AccessType.md) | |
-**id** | **str** | |
-**quote_asset_id** | **str** | |
-**base_asset_id** | **str** | |
-**base_amount** | **str** | |
-**quote_amount** | **str** | |
-**price_impact** | **float** | | [optional]
-**quote_min_amount** | **str** | | [optional]
-**execution_steps** | [**List[QuoteExecutionStep]**](QuoteExecutionStep.md) | | [optional]
-**general_fees** | [**List[Fee]**](Fee.md) | | [optional]
-**side** | [**Side**](Side.md) | |
-**expires_at** | **str** | The expiration time of the quote in ISO format. |
-**order_creation_requirements** | **str** | A JSON Schema Draft-7 document in string format describing the fields required when creating an order for this quote. The schema mirrors the structure of CreateOrderRequest.participantsIdentification json schema, so clients can validate their order payload before sending. | [optional]
-
-## Example
-
-```python
-from fireblocks.models.quote_properties_details import QuotePropertiesDetails
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of QuotePropertiesDetails from a JSON string
-quote_properties_details_instance = QuotePropertiesDetails.from_json(json)
-# print the JSON string representation of the object
-print(QuotePropertiesDetails.to_json())
-
-# convert the object into a dict
-quote_properties_details_dict = quote_properties_details_instance.to_dict()
-# create an instance of QuotePropertiesDetails from a dict
-quote_properties_details_from_dict = QuotePropertiesDetails.from_dict(quote_properties_details_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/QuotesResponse.md b/docs/QuotesResponse.md
index 30acd49a..7400f97d 100644
--- a/docs/QuotesResponse.md
+++ b/docs/QuotesResponse.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**quotes** | [**List[Quote]**](Quote.md) | |
-**quote_failures** | [**List[QuoteFailure]**](QuoteFailure.md) | List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed. |
+**quote_failures** | [**List[ScopeItemFailure]**](ScopeItemFailure.md) | List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed. |
## Example
diff --git a/docs/Rate.md b/docs/Rate.md
new file mode 100644
index 00000000..ba8804e5
--- /dev/null
+++ b/docs/Rate.md
@@ -0,0 +1,34 @@
+# Rate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**via** | [**AccessType**](AccessType.md) | |
+**base_asset_id** | **str** | The source asset identifier |
+**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**quote_asset_id** | **str** | The target asset identifier |
+**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**rate** | **str** | The indicative exchange rate — the number of units of the quote asset that equal 1 unit of the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD. |
+
+## Example
+
+```python
+from fireblocks.models.rate import Rate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Rate from a JSON string
+rate_instance = Rate.from_json(json)
+# print the JSON string representation of the object
+print(Rate.to_json())
+
+# convert the object into a dict
+rate_dict = rate_instance.to_dict()
+# create an instance of Rate from a dict
+rate_from_dict = Rate.from_dict(rate_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/RateOffer.md b/docs/RateOffer.md
new file mode 100644
index 00000000..9aabbe44
--- /dev/null
+++ b/docs/RateOffer.md
@@ -0,0 +1,35 @@
+# RateOffer
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**via** | [**AccessType**](AccessType.md) | |
+**base_asset_id** | **str** | The source asset identifier |
+**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**quote_asset_id** | **str** | The target asset identifier |
+**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional]
+**rate** | **str** | The indicative exchange rate — the number of units of the quote asset that equal 1 unit of the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD. |
+**offer_type** | **str** | The type of offer — RATE for indicative pricing. |
+
+## Example
+
+```python
+from fireblocks.models.rate_offer import RateOffer
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RateOffer from a JSON string
+rate_offer_instance = RateOffer.from_json(json)
+# print the JSON string representation of the object
+print(RateOffer.to_json())
+
+# convert the object into a dict
+rate_offer_dict = rate_offer_instance.to_dict()
+# create an instance of RateOffer from a dict
+rate_offer_from_dict = RateOffer.from_dict(rate_offer_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/RateOfferType.md b/docs/RateOfferType.md
new file mode 100644
index 00000000..9441c483
--- /dev/null
+++ b/docs/RateOfferType.md
@@ -0,0 +1,29 @@
+# RateOfferType
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**offer_type** | **str** | The type of offer — RATE for indicative pricing. |
+
+## Example
+
+```python
+from fireblocks.models.rate_offer_type import RateOfferType
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RateOfferType from a JSON string
+rate_offer_type_instance = RateOfferType.from_json(json)
+# print the JSON string representation of the object
+print(RateOfferType.to_json())
+
+# convert the object into a dict
+rate_offer_type_dict = rate_offer_type_instance.to_dict()
+# create an instance of RateOfferType from a dict
+rate_offer_type_from_dict = RateOfferType.from_dict(rate_offer_type_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/RatesRequest.md b/docs/RatesRequest.md
new file mode 100644
index 00000000..a09bd50c
--- /dev/null
+++ b/docs/RatesRequest.md
@@ -0,0 +1,31 @@
+# RatesRequest
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**scope** | [**List[ScopeItem]**](ScopeItem.md) | One or more providers/accounts to request rates from. At least one scope item is required. |
+**base_asset_id** | **str** | The source asset identifier. |
+**quote_asset_id** | **str** | The target asset identifier. |
+
+## Example
+
+```python
+from fireblocks.models.rates_request import RatesRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RatesRequest from a JSON string
+rates_request_instance = RatesRequest.from_json(json)
+# print the JSON string representation of the object
+print(RatesRequest.to_json())
+
+# convert the object into a dict
+rates_request_dict = rates_request_instance.to_dict()
+# create an instance of RatesRequest from a dict
+rates_request_from_dict = RatesRequest.from_dict(rates_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/RatesResponse.md b/docs/RatesResponse.md
new file mode 100644
index 00000000..41a73ee5
--- /dev/null
+++ b/docs/RatesResponse.md
@@ -0,0 +1,30 @@
+# RatesResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**rates** | [**List[Rate]**](Rate.md) | List of indicative rates returned for the requested asset pair. |
+**errors** | [**List[ScopeItemFailure]**](ScopeItemFailure.md) | Partial failures encountered while requesting rates. Empty when all rate requests succeed. |
+
+## Example
+
+```python
+from fireblocks.models.rates_response import RatesResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RatesResponse from a JSON string
+rates_response_instance = RatesResponse.from_json(json)
+# print the JSON string representation of the object
+print(RatesResponse.to_json())
+
+# convert the object into a dict
+rates_response_dict = rates_response_instance.to_dict()
+# create an instance of RatesResponse from a dict
+rates_response_from_dict = RatesResponse.from_dict(rates_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/ReasonForPaymentEnum.md b/docs/ReasonForPaymentEnum.md
new file mode 100644
index 00000000..73d5d990
--- /dev/null
+++ b/docs/ReasonForPaymentEnum.md
@@ -0,0 +1,69 @@
+# ReasonForPaymentEnum
+
+The reason or purpose of the payment. Used by providers (e.g. CPN) that require a categorical reason for cross-border payment compliance and reporting. Optional at the API level; runtime enforcement is handled by the calling service against the provider's requirements.
+
+## Enum
+
+* `INVOICE_PAYMENT` (value: `'INVOICE_PAYMENT'`)
+
+* `SERVICES_PAYMENT` (value: `'SERVICES_PAYMENT'`)
+
+* `SOFTWARE_PAYMENT` (value: `'SOFTWARE_PAYMENT'`)
+
+* `IMPORTED_GOODS_PAYMENT` (value: `'IMPORTED_GOODS_PAYMENT'`)
+
+* `TRAVEL_SERVICES` (value: `'TRAVEL_SERVICES'`)
+
+* `TRANSFER_TO_OWN_ACCOUNT` (value: `'TRANSFER_TO_OWN_ACCOUNT'`)
+
+* `LOAN_REPAYMENT` (value: `'LOAN_REPAYMENT'`)
+
+* `PAYROLL` (value: `'PAYROLL'`)
+
+* `PROPERTY_RENTAL` (value: `'PROPERTY_RENTAL'`)
+
+* `INFORMATION_SERVICE_CHARGES` (value: `'INFORMATION_SERVICE_CHARGES'`)
+
+* `ADVERTISING_AND_PUBLIC_RELATIONS` (value: `'ADVERTISING_AND_PUBLIC_RELATIONS'`)
+
+* `INTELLECTUAL_PROPERTY_FEES` (value: `'INTELLECTUAL_PROPERTY_FEES'`)
+
+* `FINANCIAL_SERVICE_FEES` (value: `'FINANCIAL_SERVICE_FEES'`)
+
+* `ADVISORY_AND_TECHNICAL_FEES` (value: `'ADVISORY_AND_TECHNICAL_FEES'`)
+
+* `REPRESENTATIVE_OFFICE_EXPENSES` (value: `'REPRESENTATIVE_OFFICE_EXPENSES'`)
+
+* `TAX_PAYMENT` (value: `'TAX_PAYMENT'`)
+
+* `GOODS_TRANSPORTATION_FEES` (value: `'GOODS_TRANSPORTATION_FEES'`)
+
+* `CONSTRUCTION_EXPENSES` (value: `'CONSTRUCTION_EXPENSES'`)
+
+* `INSURANCE_PREMIUM` (value: `'INSURANCE_PREMIUM'`)
+
+* `GENERAL_GOODS_TRADE` (value: `'GENERAL_GOODS_TRADE'`)
+
+* `INSURANCE_CLAIMS_PAYMENT` (value: `'INSURANCE_CLAIMS_PAYMENT'`)
+
+* `FAMILY_REMITTANCE` (value: `'FAMILY_REMITTANCE'`)
+
+* `EDUCATION_EXPENSES` (value: `'EDUCATION_EXPENSES'`)
+
+* `MEDICAL_TREATMENT` (value: `'MEDICAL_TREATMENT'`)
+
+* `DONATIONS` (value: `'DONATIONS'`)
+
+* `MUTUAL_FUND_INVESTMENT` (value: `'MUTUAL_FUND_INVESTMENT'`)
+
+* `CURRENCY_EXCHANGE` (value: `'CURRENCY_EXCHANGE'`)
+
+* `ADVANCE_GOODS_PAYMENT` (value: `'ADVANCE_GOODS_PAYMENT'`)
+
+* `MERCHANT_SETTLEMENT` (value: `'MERCHANT_SETTLEMENT'`)
+
+* `REPATRIATION_FUND_SETTLEMENT` (value: `'REPATRIATION_FUND_SETTLEMENT'`)
+
+[[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/QuoteFailure.md b/docs/ScopeItemFailure.md
similarity index 55%
rename from docs/QuoteFailure.md
rename to docs/ScopeItemFailure.md
index 6f8cb18c..3a4c9b05 100644
--- a/docs/QuoteFailure.md
+++ b/docs/ScopeItemFailure.md
@@ -1,30 +1,30 @@
-# QuoteFailure
+# ScopeItemFailure
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**provider_id** | **str** | Identifier of the provider for which the quote request failed. |
-**account_id** | **str** | Identifier of the account for which the quote request failed (optional). | [optional]
+**provider_id** | **str** | Identifier of the provider for which the request failed. |
+**account_id** | **str** | Identifier of the account for which the request failed (optional). | [optional]
**error** | [**TradingErrorSchema**](TradingErrorSchema.md) | |
## Example
```python
-from fireblocks.models.quote_failure import QuoteFailure
+from fireblocks.models.scope_item_failure import ScopeItemFailure
# TODO update the JSON string below
json = "{}"
-# create an instance of QuoteFailure from a JSON string
-quote_failure_instance = QuoteFailure.from_json(json)
+# create an instance of ScopeItemFailure from a JSON string
+scope_item_failure_instance = ScopeItemFailure.from_json(json)
# print the JSON string representation of the object
-print(QuoteFailure.to_json())
+print(ScopeItemFailure.to_json())
# convert the object into a dict
-quote_failure_dict = quote_failure_instance.to_dict()
-# create an instance of QuoteFailure from a dict
-quote_failure_from_dict = QuoteFailure.from_dict(quote_failure_dict)
+scope_item_failure_dict = scope_item_failure_instance.to_dict()
+# create an instance of ScopeItemFailure from a dict
+scope_item_failure_from_dict = ScopeItemFailure.from_dict(scope_item_failure_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/SourceOfFunds.md b/docs/SourceOfFunds.md
new file mode 100644
index 00000000..57d772c7
--- /dev/null
+++ b/docs/SourceOfFunds.md
@@ -0,0 +1,30 @@
+# SourceOfFunds
+
+Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting (e.g. CPN cross-border payments).
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**reason_for_payment** | [**ReasonForPaymentEnum**](ReasonForPaymentEnum.md) | | [optional]
+
+## Example
+
+```python
+from fireblocks.models.source_of_funds import SourceOfFunds
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SourceOfFunds from a JSON string
+source_of_funds_instance = SourceOfFunds.from_json(json)
+# print the JSON string representation of the object
+print(SourceOfFunds.to_json())
+
+# convert the object into a dict
+source_of_funds_dict = source_of_funds_instance.to_dict()
+# create an instance of SourceOfFunds from a dict
+source_of_funds_from_dict = SourceOfFunds.from_dict(source_of_funds_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/TRLinkCreateCustomerRequest.md b/docs/TRLinkCreateCustomerRequest.md
index 7170774a..5372d367 100644
--- a/docs/TRLinkCreateCustomerRequest.md
+++ b/docs/TRLinkCreateCustomerRequest.md
@@ -10,10 +10,10 @@ Name | Type | Description | Notes
**full_legal_name** | **str** | Full legal entity name | [optional]
**geographic_address** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional]
**country_of_registration** | **str** | ISO 3166-1 alpha-2 country code where the entity is registered | [optional]
-**national_identification** | **str** | National identification as JSON string | [optional]
+**national_identification** | **str** | National identification, sent as a JSON-encoded string. The server normalizes input into a compact JSON with these optional keys: `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the input is not a JSON object, it is wrapped as `{\"nationalIdentifier\":\"<value>\"}`; if the value matches the LEI format, `nationalIdentifierType` is set to `LEIX` automatically and `countryOfIssue` defaults to this request's `countryOfRegistration` if not provided. The compacted JSON must be 240 characters or fewer. On read, the value is returned exactly as stored. | [optional]
**date_of_incorporation** | **date** | Date of entity incorporation (ISO 8601 format: YYYY-MM-DD) | [optional]
**vaults** | **List[int]** | Associated Fireblocks vault account IDs | [optional]
-**tr_primary_purpose** | **str** | Primary purpose for Travel Rule compliance (enum value) | [optional]
+**tr_primary_purpose** | **str** | Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`. | [optional] [default to 'trlink']
## Example
diff --git a/docs/TRLinkCustomerResponse.md b/docs/TRLinkCustomerResponse.md
index 122100f3..6ceb2943 100644
--- a/docs/TRLinkCustomerResponse.md
+++ b/docs/TRLinkCustomerResponse.md
@@ -6,16 +6,15 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **str** | Customer unique identifier |
-**tenant_id** | **str** | Fireblocks tenant ID |
**discoverable** | [**TRLinkDiscoverableStatus**](TRLinkDiscoverableStatus.md) | |
**short_name** | **str** | Short display name |
**full_legal_name** | **str** | Full legal entity name |
**geographic_address** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional]
**country_of_registration** | **str** | ISO 3166-1 alpha-2 country code where the entity is registered |
-**national_identification** | **str** | National identification (serialized as string) | [optional]
+**national_identification** | **str** | National identification, returned exactly as stored: a compact, whitespace-free JSON-encoded string with these optional keys (in this order): `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. Maximum length is 240 characters. | [optional]
**date_of_incorporation** | **date** | Date of entity incorporation (ISO 8601 format) | [optional]
**vaults** | **List[int]** | Associated Fireblocks vault account IDs | [optional]
-**tr_primary_purpose** | **str** | Primary purpose for Travel Rule compliance | [optional]
+**tr_primary_purpose** | **str** | Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`. |
**create_date** | **datetime** | Timestamp when the customer was created (ISO 8601 format) |
**last_update** | **datetime** | Timestamp when the customer was last updated (ISO 8601 format) |
diff --git a/docs/TRLinkUpdateCustomerRequest.md b/docs/TRLinkUpdateCustomerRequest.md
index 36beeadb..70253010 100644
--- a/docs/TRLinkUpdateCustomerRequest.md
+++ b/docs/TRLinkUpdateCustomerRequest.md
@@ -6,14 +6,14 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**discoverable** | [**TRLinkDiscoverableStatus**](TRLinkDiscoverableStatus.md) | | [optional]
-**short_name** | **str** | Short display name | [optional]
+**short_name** | **str** | Short display name (required) |
**full_legal_name** | **str** | Full legal entity name | [optional]
**geographic_address** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional]
**country_of_registration** | **str** | ISO 3166-1 alpha-2 country code where the entity is registered | [optional]
-**national_identification** | **str** | National identification as JSON string | [optional]
+**national_identification** | **str** | National identification, sent as a JSON-encoded string. The server normalizes input into a compact JSON with these optional keys: `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the input is not a JSON object, it is wrapped as `{\"nationalIdentifier\":\"<value>\"}`; if the value matches the LEI format, `nationalIdentifierType` is set to `LEIX` automatically and `countryOfIssue` defaults to this request's `countryOfRegistration` if not provided. The compacted JSON must be 240 characters or fewer. Omitting this field leaves the stored value unchanged; setting it to `null` clears it. On read, the value is returned exactly as stored. | [optional]
**date_of_incorporation** | **date** | Date of entity incorporation (ISO 8601 format: YYYY-MM-DD) | [optional]
**vaults** | **List[int]** | Associated Fireblocks vault account IDs | [optional]
-**tr_primary_purpose** | **str** | Primary purpose for Travel Rule compliance | [optional]
+**tr_primary_purpose** | **str** | Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`. Omit the field to leave the stored value unchanged. | [optional]
## Example
diff --git a/docs/TradingBetaApi.md b/docs/TradingBetaApi.md
index 6dc16cac..1c7c3598 100644
--- a/docs/TradingBetaApi.md
+++ b/docs/TradingBetaApi.md
@@ -6,6 +6,8 @@ Method | HTTP request | Description
------------- | ------------- | -------------
[**create_order**](TradingBetaApi.md#create_order) | **POST** /trading/orders | Create an order
[**create_quote**](TradingBetaApi.md#create_quote) | **POST** /trading/quotes | Create a quote
+[**fetch_all_offers**](TradingBetaApi.md#fetch_all_offers) | **POST** /trading/offers | Get all offers
+[**fetch_rates**](TradingBetaApi.md#fetch_rates) | **POST** /trading/rates | Get rates
[**get_order**](TradingBetaApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details
[**get_orders**](TradingBetaApi.md#get_orders) | **GET** /trading/orders | Get orders
[**get_trading_provider_by_id**](TradingBetaApi.md#get_trading_provider_by_id) | **GET** /trading/providers/{providerId} | Get trading provider by ID
@@ -192,6 +194,192 @@ 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)
+# **fetch_all_offers**
+> OffersResponse fetch_all_offers(create_offers_request, idempotency_key=idempotency_key)
+
+Get all offers
+
+Retrieve all available offers across the workspace for a given asset pair.
+Always operates in open scope — no provider or account selection required.
+Returns a mix of indicative rates and committed quotes as applicable per provider.
+
+If no slippageBps is provided, it defaults to 50 bps (0.5%).
+Slippage and settlement configuration do not affect the returned rate.
+
+Note: These endpoints are currently in beta and might be subject to changes.
+
+If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
+
+Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor.
+
+For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+
+### Example
+
+
+```python
+from fireblocks.models.create_offers_request import CreateOffersRequest
+from fireblocks.models.offers_response import OffersResponse
+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:
+ create_offers_request = fireblocks.CreateOffersRequest() # CreateOffersRequest |
+ 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:
+ # Get all offers
+ api_response = fireblocks.trading_beta.fetch_all_offers(create_offers_request, idempotency_key=idempotency_key).result()
+ print("The response of TradingBetaApi->fetch_all_offers:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TradingBetaApi->fetch_all_offers: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **create_offers_request** | [**CreateOffersRequest**](CreateOffersRequest.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
+
+[**OffersResponse**](OffersResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Offers response | * X-Request-ID -
|
+**400** | Bad request: invalid input parameters, malformed request body, or validation failure. | * X-Request-ID -
|
+**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
|
+**403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+**5XX** | Internal error while processing the request. | * 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)
+
+# **fetch_rates**
+> RatesResponse fetch_rates(rates_request, idempotency_key=idempotency_key)
+
+Get rates
+
+Retrieve indicative exchange rate from specified providers for a given asset pair.
+Rates are non-executable price signals intended for discovery and display purposes.
+
+Note: These endpoints are currently in beta and might be subject to changes.
+
+If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
+
+Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+
+For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+
+### Example
+
+
+```python
+from fireblocks.models.rates_request import RatesRequest
+from fireblocks.models.rates_response import RatesResponse
+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:
+ rates_request = fireblocks.RatesRequest() # RatesRequest |
+ 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:
+ # Get rates
+ api_response = fireblocks.trading_beta.fetch_rates(rates_request, idempotency_key=idempotency_key).result()
+ print("The response of TradingBetaApi->fetch_rates:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TradingBetaApi->fetch_rates: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **rates_request** | [**RatesRequest**](RatesRequest.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
+
+[**RatesResponse**](RatesResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Rate response | * X-Request-ID -
|
+**400** | Bad request: invalid input parameters, malformed request body, or validation failure. | * X-Request-ID -
|
+**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
|
+**403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+**5XX** | Internal error while processing the request. | * 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_order**
> OrderDetails get_order(order_id)
diff --git a/docs/UTXOManagementBetaApi.md b/docs/UTXOManagementBetaApi.md
index f886c76c..ec908570 100644
--- a/docs/UTXOManagementBetaApi.md
+++ b/docs/UTXOManagementBetaApi.md
@@ -9,7 +9,7 @@ Method | HTTP request | Description
# **get_utxos**
-> ListUtxosResponse get_utxos(vault_account_id, asset_id, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, include_all_labels=include_all_labels, include_any_labels=include_any_labels, exclude_any_labels=exclude_any_labels, include_statuses=include_statuses, address=address, min_amount=min_amount, max_amount=max_amount, use_change=use_change, use_coinbase=use_coinbase)
+> ListUtxosResponse get_utxos(vault_account_id, asset_id, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, include_all_labels=include_all_labels, include_any_labels=include_any_labels, exclude_any_labels=exclude_any_labels, include_statuses=include_statuses, address=address, min_amount=min_amount, max_amount=max_amount)
List unspent outputs (UTXOs)
@@ -55,12 +55,10 @@ with Fireblocks(configuration) as fireblocks:
address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa' # str | Filter by address (optional)
min_amount = '0.001' # str | Minimum amount filter (optional)
max_amount = '1.0' # str | Maximum amount filter (optional)
- use_change = true # bool | Include change outputs (optional)
- use_coinbase = true # bool | Include coinbase outputs (optional)
try:
# List unspent outputs (UTXOs)
- api_response = fireblocks.utxo_management_beta.get_utxos(vault_account_id, asset_id, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, include_all_labels=include_all_labels, include_any_labels=include_any_labels, exclude_any_labels=exclude_any_labels, include_statuses=include_statuses, address=address, min_amount=min_amount, max_amount=max_amount, use_change=use_change, use_coinbase=use_coinbase).result()
+ api_response = fireblocks.utxo_management_beta.get_utxos(vault_account_id, asset_id, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, include_all_labels=include_all_labels, include_any_labels=include_any_labels, exclude_any_labels=exclude_any_labels, include_statuses=include_statuses, address=address, min_amount=min_amount, max_amount=max_amount).result()
print("The response of UTXOManagementBetaApi->get_utxos:\n")
pprint(api_response)
except Exception as e:
@@ -87,8 +85,6 @@ Name | Type | Description | Notes
**address** | **str**| Filter by address | [optional]
**min_amount** | **str**| Minimum amount filter | [optional]
**max_amount** | **str**| Maximum amount filter | [optional]
- **use_change** | **bool**| Include change outputs | [optional]
- **use_coinbase** | **bool**| Include coinbase outputs | [optional]
### Return type
diff --git a/docs/UsdcGatewayWalletInfoResponse.md b/docs/UsdcGatewayWalletInfoResponse.md
new file mode 100644
index 00000000..d3a2f8d4
--- /dev/null
+++ b/docs/UsdcGatewayWalletInfoResponse.md
@@ -0,0 +1,33 @@
+# UsdcGatewayWalletInfoResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**wallet_id** | **str** | The USDC Gateway wallet identifier |
+**type** | **str** | The USDC Gateway provider identifier |
+**status** | **str** | Current activation status of the USDC Gateway wallet |
+**symbol** | **str** | The token symbol supported by this wallet (e.g. USDC) |
+**asset_ids** | **List[str]** | Fireblocks asset IDs available for this wallet |
+
+## Example
+
+```python
+from fireblocks.models.usdc_gateway_wallet_info_response import UsdcGatewayWalletInfoResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UsdcGatewayWalletInfoResponse from a JSON string
+usdc_gateway_wallet_info_response_instance = UsdcGatewayWalletInfoResponse.from_json(json)
+# print the JSON string representation of the object
+print(UsdcGatewayWalletInfoResponse.to_json())
+
+# convert the object into a dict
+usdc_gateway_wallet_info_response_dict = usdc_gateway_wallet_info_response_instance.to_dict()
+# create an instance of UsdcGatewayWalletInfoResponse from a dict
+usdc_gateway_wallet_info_response_from_dict = UsdcGatewayWalletInfoResponse.from_dict(usdc_gateway_wallet_info_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/UsdcGatewayWalletStatusResponse.md b/docs/UsdcGatewayWalletStatusResponse.md
new file mode 100644
index 00000000..816a3581
--- /dev/null
+++ b/docs/UsdcGatewayWalletStatusResponse.md
@@ -0,0 +1,30 @@
+# UsdcGatewayWalletStatusResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**wallet_id** | **str** | The USDC Gateway wallet identifier |
+**status** | **str** | Current activation status of the USDC Gateway wallet |
+
+## Example
+
+```python
+from fireblocks.models.usdc_gateway_wallet_status_response import UsdcGatewayWalletStatusResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UsdcGatewayWalletStatusResponse from a JSON string
+usdc_gateway_wallet_status_response_instance = UsdcGatewayWalletStatusResponse.from_json(json)
+# print the JSON string representation of the object
+print(UsdcGatewayWalletStatusResponse.to_json())
+
+# convert the object into a dict
+usdc_gateway_wallet_status_response_dict = usdc_gateway_wallet_status_response_instance.to_dict()
+# create an instance of UsdcGatewayWalletStatusResponse from a dict
+usdc_gateway_wallet_status_response_from_dict = UsdcGatewayWalletStatusResponse.from_dict(usdc_gateway_wallet_status_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/UtxoSelectionFilters.md b/docs/UtxoSelectionFilters.md
index 3b04e0e5..84e89f1c 100644
--- a/docs/UtxoSelectionFilters.md
+++ b/docs/UtxoSelectionFilters.md
@@ -12,8 +12,6 @@ Name | Type | Description | Notes
**address** | **str** | Only include UTXOs from this specific address. | [optional]
**min_amount** | **str** | Minimum UTXO amount in the asset's base unit (e.g., BTC). | [optional]
**max_amount** | **str** | Maximum UTXO amount in the asset's base unit (e.g., BTC). | [optional]
-**use_change** | **bool** | Set to false to exclude change UTXOs. Default is true. | [optional]
-**use_coinbase** | **bool** | Set to false to exclude coinbase UTXOs. Default is true. | [optional]
## Example
diff --git a/docs/UtxoSelectionParams.md b/docs/UtxoSelectionParams.md
index 0bda0c0a..b7fed3a7 100644
--- a/docs/UtxoSelectionParams.md
+++ b/docs/UtxoSelectionParams.md
@@ -6,6 +6,7 @@ For UTXO-based blockchains only. Controls which UTXOs are used for automatic sel
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**selection_strategy** | **str** | Optional override for the UTXO selection strategy configured at the vault/tenant level. | [optional]
**filters** | [**UtxoSelectionFilters**](UtxoSelectionFilters.md) | | [optional]
**input_selection** | [**UtxoInputSelection**](UtxoInputSelection.md) | | [optional]
diff --git a/docs/VaultsApi.md b/docs/VaultsApi.md
index 36e5bce4..827d80a6 100644
--- a/docs/VaultsApi.md
+++ b/docs/VaultsApi.md
@@ -5,7 +5,7 @@ All URIs are relative to *https://api.fireblocks.io/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
[**activate_asset_for_vault_account**](VaultsApi.md#activate_asset_for_vault_account) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account
-[**activate_circle_gateway_wallet_beta**](VaultsApi.md#activate_circle_gateway_wallet_beta) | **POST** /vault/accounts/{vaultAccountId}/circle_gateway/activate | Activate a Circle Gateway wallet
+[**activate_usdc_gateway_wallet_beta**](VaultsApi.md#activate_usdc_gateway_wallet_beta) | **POST** /vault/accounts/{vaultAccountId}/usdc_gateway/activate | Activate a USDC Gateway wallet
[**attach_or_detach_tags_from_vault_accounts**](VaultsApi.md#attach_or_detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from vault accounts
[**create_legacy_address**](VaultsApi.md#create_legacy_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format
[**create_multiple_accounts**](VaultsApi.md#create_multiple_accounts) | **POST** /vault/accounts/bulk | Bulk creation of new vault accounts
@@ -13,9 +13,8 @@ Method | HTTP request | Description
[**create_vault_account**](VaultsApi.md#create_vault_account) | **POST** /vault/accounts | Create a new vault account
[**create_vault_account_asset**](VaultsApi.md#create_vault_account_asset) | **POST** /vault/accounts/{vaultAccountId}/{assetId} | Create a new vault wallet
[**create_vault_account_asset_address**](VaultsApi.md#create_vault_account_asset_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses | Create new asset deposit address
-[**deactivate_circle_gateway_wallet_beta**](VaultsApi.md#deactivate_circle_gateway_wallet_beta) | **POST** /vault/accounts/{vaultAccountId}/circle_gateway/deactivate | Deactivate a Circle Gateway wallet
+[**deactivate_usdc_gateway_wallet_beta**](VaultsApi.md#deactivate_usdc_gateway_wallet_beta) | **POST** /vault/accounts/{vaultAccountId}/usdc_gateway/deactivate | Deactivate a USDC Gateway wallet
[**get_asset_wallets**](VaultsApi.md#get_asset_wallets) | **GET** /vault/asset_wallets | Get vault wallets (Paginated)
-[**get_circle_gateway_wallet_info_beta**](VaultsApi.md#get_circle_gateway_wallet_info_beta) | **GET** /vault/accounts/{vaultAccountId}/circle_gateway | Get Circle Gateway wallet info
[**get_create_multiple_deposit_addresses_job_status**](VaultsApi.md#get_create_multiple_deposit_addresses_job_status) | **GET** /vault/accounts/addresses/bulk/{jobId} | Get the job status of the bulk deposit address creation
[**get_create_multiple_vault_accounts_job_status**](VaultsApi.md#get_create_multiple_vault_accounts_job_status) | **GET** /vault/accounts/bulk/{jobId} | Get job status of bulk creation of new vault accounts
[**get_max_bip_index_used**](VaultsApi.md#get_max_bip_index_used) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used | Get maximum BIP44 index used
@@ -24,12 +23,14 @@ Method | HTTP request | Description
[**get_public_key_info**](VaultsApi.md#get_public_key_info) | **GET** /vault/public_key_info | Get the public key for a derivation path
[**get_public_key_info_for_address**](VaultsApi.md#get_public_key_info_for_address) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info | Get an asset's public key
[**get_unspent_inputs**](VaultsApi.md#get_unspent_inputs) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs | Get UTXO unspent inputs information
+[**get_usdc_gateway_wallet_info_beta**](VaultsApi.md#get_usdc_gateway_wallet_info_beta) | **GET** /vault/accounts/{vaultAccountId}/usdc_gateway | Get USDC Gateway wallet info
[**get_vault_account**](VaultsApi.md#get_vault_account) | **GET** /vault/accounts/{vaultAccountId} | Get a vault account by ID
[**get_vault_account_asset**](VaultsApi.md#get_vault_account_asset) | **GET** /vault/accounts/{vaultAccountId}/{assetId} | Get the asset balance for a vault account
[**get_vault_account_asset_addresses_paginated**](VaultsApi.md#get_vault_account_asset_addresses_paginated) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated | Get addresses (Paginated)
[**get_vault_assets**](VaultsApi.md#get_vault_assets) | **GET** /vault/assets | Get asset balance for chosen assets
[**get_vault_balance_by_asset**](VaultsApi.md#get_vault_balance_by_asset) | **GET** /vault/assets/{assetId} | Get vault balance by an asset
[**hide_vault_account**](VaultsApi.md#hide_vault_account) | **POST** /vault/accounts/{vaultAccountId}/hide | Hide a vault account in the console
+[**lookup_vault_by_address**](VaultsApi.md#lookup_vault_by_address) | **GET** /vault/lookup_by_address | Look up a vault account by blockchain address
[**set_customer_ref_id_for_address**](VaultsApi.md#set_customer_ref_id_for_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id | Assign AML customer reference ID
[**set_vault_account_auto_fuel**](VaultsApi.md#set_vault_account_auto_fuel) | **POST** /vault/accounts/{vaultAccountId}/set_auto_fuel | Set auto fueling to on or off
[**set_vault_account_customer_ref_id**](VaultsApi.md#set_vault_account_customer_ref_id) | **POST** /vault/accounts/{vaultAccountId}/set_customer_ref_id | Set an AML/KYT ID for a vault account
@@ -121,12 +122,12 @@ 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)
-# **activate_circle_gateway_wallet_beta**
-> CircleGatewayWalletStatusResponse activate_circle_gateway_wallet_beta(vault_account_id, idempotency_key=idempotency_key)
+# **activate_usdc_gateway_wallet_beta**
+> UsdcGatewayWalletStatusResponse activate_usdc_gateway_wallet_beta(vault_account_id, idempotency_key=idempotency_key)
-Activate a Circle Gateway wallet
+Activate a USDC Gateway wallet
-Activates the Circle Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state.
+Activates the USDC Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state.
**Note:** This endpoint is currently in beta and might be subject to changes.
@@ -136,7 +137,7 @@ Activates the Circle Gateway wallet associated with the given vault account. If
```python
-from fireblocks.models.circle_gateway_wallet_status_response import CircleGatewayWalletStatusResponse
+from fireblocks.models.usdc_gateway_wallet_status_response import UsdcGatewayWalletStatusResponse
from fireblocks.client import Fireblocks
from fireblocks.client_configuration import ClientConfiguration
from fireblocks.exceptions import ApiException
@@ -161,12 +162,12 @@ with Fireblocks(configuration) as fireblocks:
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:
- # Activate a Circle Gateway wallet
- api_response = fireblocks.vaults.activate_circle_gateway_wallet_beta(vault_account_id, idempotency_key=idempotency_key).result()
- print("The response of VaultsApi->activate_circle_gateway_wallet_beta:\n")
+ # Activate a USDC Gateway wallet
+ api_response = fireblocks.vaults.activate_usdc_gateway_wallet_beta(vault_account_id, idempotency_key=idempotency_key).result()
+ print("The response of VaultsApi->activate_usdc_gateway_wallet_beta:\n")
pprint(api_response)
except Exception as e:
- print("Exception when calling VaultsApi->activate_circle_gateway_wallet_beta: %s\n" % e)
+ print("Exception when calling VaultsApi->activate_usdc_gateway_wallet_beta: %s\n" % e)
```
@@ -181,7 +182,7 @@ Name | Type | Description | Notes
### Return type
-[**CircleGatewayWalletStatusResponse**](CircleGatewayWalletStatusResponse.md)
+[**UsdcGatewayWalletStatusResponse**](UsdcGatewayWalletStatusResponse.md)
### Authorization
@@ -196,7 +197,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Circle Gateway wallet activated successfully | * X-Request-ID -
|
+**200** | USDC Gateway wallet activated successfully | * 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)
@@ -779,12 +780,12 @@ 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)
-# **deactivate_circle_gateway_wallet_beta**
-> CircleGatewayWalletStatusResponse deactivate_circle_gateway_wallet_beta(vault_account_id, idempotency_key=idempotency_key)
+# **deactivate_usdc_gateway_wallet_beta**
+> UsdcGatewayWalletStatusResponse deactivate_usdc_gateway_wallet_beta(vault_account_id, idempotency_key=idempotency_key)
-Deactivate a Circle Gateway wallet
+Deactivate a USDC Gateway wallet
-Deactivates the Circle Gateway wallet associated with the given vault account.
+Deactivates the USDC Gateway wallet associated with the given vault account.
**Note:** This endpoint is currently in beta and might be subject to changes.
@@ -794,7 +795,7 @@ Deactivates the Circle Gateway wallet associated with the given vault account.
```python
-from fireblocks.models.circle_gateway_wallet_status_response import CircleGatewayWalletStatusResponse
+from fireblocks.models.usdc_gateway_wallet_status_response import UsdcGatewayWalletStatusResponse
from fireblocks.client import Fireblocks
from fireblocks.client_configuration import ClientConfiguration
from fireblocks.exceptions import ApiException
@@ -819,12 +820,12 @@ with Fireblocks(configuration) as fireblocks:
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:
- # Deactivate a Circle Gateway wallet
- api_response = fireblocks.vaults.deactivate_circle_gateway_wallet_beta(vault_account_id, idempotency_key=idempotency_key).result()
- print("The response of VaultsApi->deactivate_circle_gateway_wallet_beta:\n")
+ # Deactivate a USDC Gateway wallet
+ api_response = fireblocks.vaults.deactivate_usdc_gateway_wallet_beta(vault_account_id, idempotency_key=idempotency_key).result()
+ print("The response of VaultsApi->deactivate_usdc_gateway_wallet_beta:\n")
pprint(api_response)
except Exception as e:
- print("Exception when calling VaultsApi->deactivate_circle_gateway_wallet_beta: %s\n" % e)
+ print("Exception when calling VaultsApi->deactivate_usdc_gateway_wallet_beta: %s\n" % e)
```
@@ -839,7 +840,7 @@ Name | Type | Description | Notes
### Return type
-[**CircleGatewayWalletStatusResponse**](CircleGatewayWalletStatusResponse.md)
+[**UsdcGatewayWalletStatusResponse**](UsdcGatewayWalletStatusResponse.md)
### Authorization
@@ -854,7 +855,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**200** | Circle Gateway wallet deactivated successfully | * X-Request-ID -
|
+**200** | USDC Gateway wallet deactivated successfully | * 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)
@@ -946,82 +947,6 @@ 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_circle_gateway_wallet_info_beta**
-> CircleGatewayWalletInfoResponse get_circle_gateway_wallet_info_beta(vault_account_id)
-
-Get Circle Gateway wallet info
-
-Returns the Circle Gateway wallet information associated with the given vault account.
-**Note:** This endpoint is currently in beta and might be subject to changes.
-Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
-
-### Example
-
-
-```python
-from fireblocks.models.circle_gateway_wallet_info_response import CircleGatewayWalletInfoResponse
-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:
- vault_account_id = 'vault_account_id_example' # str | The ID of the vault account
-
- try:
- # Get Circle Gateway wallet info
- api_response = fireblocks.vaults.get_circle_gateway_wallet_info_beta(vault_account_id).result()
- print("The response of VaultsApi->get_circle_gateway_wallet_info_beta:\n")
- pprint(api_response)
- except Exception as e:
- print("Exception when calling VaultsApi->get_circle_gateway_wallet_info_beta: %s\n" % e)
-```
-
-
-
-### Parameters
-
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **vault_account_id** | **str**| The ID of the vault account |
-
-### Return type
-
-[**CircleGatewayWalletInfoResponse**](CircleGatewayWalletInfoResponse.md)
-
-### Authorization
-
-No authorization required
-
-### HTTP request headers
-
- - **Content-Type**: Not defined
- - **Accept**: application/json
-
-### HTTP response details
-
-| Status code | Description | Response headers |
-|-------------|-------------|------------------|
-**200** | Circle Gateway wallet information | * 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_create_multiple_deposit_addresses_job_status**
> CreateMultipleDepositAddressesJobStatus get_create_multiple_deposit_addresses_job_status(job_id)
@@ -1669,6 +1594,82 @@ 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_usdc_gateway_wallet_info_beta**
+> UsdcGatewayWalletInfoResponse get_usdc_gateway_wallet_info_beta(vault_account_id)
+
+Get USDC Gateway wallet info
+
+Returns the USDC Gateway wallet information associated with the given vault account.
+**Note:** This endpoint is currently in beta and might be subject to changes.
+Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+
+### Example
+
+
+```python
+from fireblocks.models.usdc_gateway_wallet_info_response import UsdcGatewayWalletInfoResponse
+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:
+ vault_account_id = 'vault_account_id_example' # str | The ID of the vault account
+
+ try:
+ # Get USDC Gateway wallet info
+ api_response = fireblocks.vaults.get_usdc_gateway_wallet_info_beta(vault_account_id).result()
+ print("The response of VaultsApi->get_usdc_gateway_wallet_info_beta:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling VaultsApi->get_usdc_gateway_wallet_info_beta: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **vault_account_id** | **str**| The ID of the vault account |
+
+### Return type
+
+[**UsdcGatewayWalletInfoResponse**](UsdcGatewayWalletInfoResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | USDC Gateway wallet information | * 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_vault_account**
> VaultAccount get_vault_account(vault_account_id)
@@ -2141,6 +2142,85 @@ 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)
+# **lookup_vault_by_address**
+> AddressReverseLookupResponse lookup_vault_by_address(address)
+
+Look up a vault account by blockchain address
+
+Resolves a blockchain address to the vault account that owns it. Returns the vault account ID and the blockchains associated with the address.
+**Note:** This endpoint is currently in beta and might be subject to changes.
+
+
+### Example
+
+
+```python
+from fireblocks.models.address_reverse_lookup_response import AddressReverseLookupResponse
+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:
+ address = 'address_example' # str | The blockchain address to resolve.
+
+ try:
+ # Look up a vault account by blockchain address
+ api_response = fireblocks.vaults.lookup_vault_by_address(address).result()
+ print("The response of VaultsApi->lookup_vault_by_address:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling VaultsApi->lookup_vault_by_address: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **address** | **str**| The blockchain address to resolve. |
+
+### Return type
+
+[**AddressReverseLookupResponse**](AddressReverseLookupResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Vault account that owns the address, with associated blockchains. | * X-Request-ID -
|
+**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
|
+**403** | Feature is not enabled for the workspace. | * X-Request-ID -
|
+**404** | Vault account not found for the supplied address | * 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)
+
# **set_customer_ref_id_for_address**
> VaultActionStatus set_customer_ref_id_for_address(vault_account_id, asset_id, address_id, set_customer_ref_id_for_address_request, idempotency_key=idempotency_key)
diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py
index 5a1941d7..79e25cde 100644
--- a/fireblocks/__init__.py
+++ b/fireblocks/__init__.py
@@ -15,7 +15,7 @@
""" # noqa: E501
-__version__ = "18.0.0"
+__version__ = "0.0.0"
# import apis into sdk package
from fireblocks.api.api_user_api import ApiUserApi
@@ -38,6 +38,7 @@
from fireblocks.api.external_wallets_api import ExternalWalletsApi
from fireblocks.api.fiat_accounts_api import FiatAccountsApi
from fireblocks.api.gas_stations_api import GasStationsApi
+from fireblocks.api.genie_beta_api import GenieBetaApi
from fireblocks.api.internal_wallets_api import InternalWalletsApi
from fireblocks.api.key_link_beta_api import KeyLinkBetaApi
from fireblocks.api.keys_beta_api import KeysBetaApi
@@ -166,6 +167,9 @@
from fireblocks.models.address_registry_vault_opt_out_item import (
AddressRegistryVaultOptOutItem,
)
+from fireblocks.models.address_reverse_lookup_response import (
+ AddressReverseLookupResponse,
+)
from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum
from fireblocks.models.alert_level_enum import AlertLevelEnum
from fireblocks.models.aml_alert import AmlAlert
@@ -195,6 +199,7 @@
ApproversConfigApprovalGroupsInner,
)
from fireblocks.models.apy import Apy
+from fireblocks.models.ars_config_response import ArsConfigResponse
from fireblocks.models.asset import Asset
from fireblocks.models.asset_already_exist_http_error import AssetAlreadyExistHttpError
from fireblocks.models.asset_amount import AssetAmount
@@ -295,12 +300,6 @@
from fireblocks.models.chaps_address import ChapsAddress
from fireblocks.models.chaps_destination import ChapsDestination
from fireblocks.models.chaps_payment_info import ChapsPaymentInfo
-from fireblocks.models.circle_gateway_wallet_info_response import (
- CircleGatewayWalletInfoResponse,
-)
-from fireblocks.models.circle_gateway_wallet_status_response import (
- CircleGatewayWalletStatusResponse,
-)
from fireblocks.models.claim_rewards_request import ClaimRewardsRequest
from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto
from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto
@@ -315,8 +314,6 @@
)
from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto
from fireblocks.models.collection_type import CollectionType
-from fireblocks.models.committed_quote_enum import CommittedQuoteEnum
-from fireblocks.models.committed_quote_type import CommittedQuoteType
from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload
from fireblocks.models.compliance_result_statuses_enum import (
ComplianceResultStatusesEnum,
@@ -477,6 +474,7 @@
)
from fireblocks.models.create_ncw_connection_request import CreateNcwConnectionRequest
from fireblocks.models.create_network_id_request import CreateNetworkIdRequest
+from fireblocks.models.create_offers_request import CreateOffersRequest
from fireblocks.models.create_order_request import CreateOrderRequest
from fireblocks.models.create_payout_request import CreatePayoutRequest
from fireblocks.models.create_quote import CreateQuote
@@ -739,6 +737,9 @@
from fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value import (
GasslessStandardConfigurationsGaslessStandardConfigurationsValue,
)
+from fireblocks.models.genie_chat_message import GenieChatMessage
+from fireblocks.models.genie_create_session_response import GenieCreateSessionResponse
+from fireblocks.models.genie_send_message_request import GenieSendMessageRequest
from fireblocks.models.get_api_users_response import GetAPIUsersResponse
from fireblocks.models.get_action_response import GetActionResponse
from fireblocks.models.get_actions_response import GetActionsResponse
@@ -798,8 +799,6 @@
IdentificationPolicyOverride,
)
from fireblocks.models.idl_type import IdlType
-from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum
-from fireblocks.models.indicative_quote_type import IndicativeQuoteType
from fireblocks.models.initiator_config import InitiatorConfig
from fireblocks.models.initiator_config_pattern import InitiatorConfigPattern
from fireblocks.models.instruction_amount import InstructionAmount
@@ -949,6 +948,8 @@
)
from fireblocks.models.notification_status import NotificationStatus
from fireblocks.models.notification_with_data import NotificationWithData
+from fireblocks.models.offer import Offer
+from fireblocks.models.offers_response import OffersResponse
from fireblocks.models.onchain_transaction import OnchainTransaction
from fireblocks.models.onchain_transactions_paged_response import (
OnchainTransactionsPagedResponse,
@@ -1054,16 +1055,21 @@
)
from fireblocks.models.quote_execution_step import QuoteExecutionStep
from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails
+from fireblocks.models.quote_execution_type_enum import QuoteExecutionTypeEnum
from fireblocks.models.quote_execution_with_requote_request_details import (
QuoteExecutionWithRequoteRequestDetails,
)
from fireblocks.models.quote_execution_with_requote_response_details import (
QuoteExecutionWithRequoteResponseDetails,
)
-from fireblocks.models.quote_failure import QuoteFailure
-from fireblocks.models.quote_properties_details import QuotePropertiesDetails
-from fireblocks.models.quote_type_enum import QuoteTypeEnum
+from fireblocks.models.quote_offer import QuoteOffer
+from fireblocks.models.quote_offer_type import QuoteOfferType
from fireblocks.models.quotes_response import QuotesResponse
+from fireblocks.models.rate import Rate
+from fireblocks.models.rate_offer import RateOffer
+from fireblocks.models.rate_offer_type import RateOfferType
+from fireblocks.models.rates_request import RatesRequest
+from fireblocks.models.rates_response import RatesResponse
from fireblocks.models.re_quote_details import ReQuoteDetails
from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
from fireblocks.models.read_abi_function import ReadAbiFunction
@@ -1071,6 +1077,7 @@
from fireblocks.models.read_call_function_dto_abi_function import (
ReadCallFunctionDtoAbiFunction,
)
+from fireblocks.models.reason_for_payment_enum import ReasonForPaymentEnum
from fireblocks.models.recipient_handle import RecipientHandle
from fireblocks.models.redeem_funds_to_linked_dda_response import (
RedeemFundsToLinkedDDAResponse,
@@ -1139,6 +1146,7 @@
from fireblocks.models.sol_account import SOLAccount
from fireblocks.models.sol_account_with_value import SOLAccountWithValue
from fireblocks.models.scope_item import ScopeItem
+from fireblocks.models.scope_item_failure import ScopeItemFailure
from fireblocks.models.screening_alert_exposure_type_enum import (
ScreeningAlertExposureTypeEnum,
)
@@ -1301,6 +1309,7 @@
from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue
from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams
from fireblocks.models.source_config import SourceConfig
+from fireblocks.models.source_of_funds import SourceOfFunds
from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath
from fireblocks.models.source_transfer_peer_path_response import (
SourceTransferPeerPathResponse,
@@ -1704,6 +1713,12 @@
from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest
from fireblocks.models.update_webhook_request import UpdateWebhookRequest
from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo
+from fireblocks.models.usdc_gateway_wallet_info_response import (
+ UsdcGatewayWalletInfoResponse,
+)
+from fireblocks.models.usdc_gateway_wallet_status_response import (
+ UsdcGatewayWalletStatusResponse,
+)
from fireblocks.models.user_group_create_request import UserGroupCreateRequest
from fireblocks.models.user_group_create_response import UserGroupCreateResponse
from fireblocks.models.user_group_response import UserGroupResponse
diff --git a/fireblocks/api/__init__.py b/fireblocks/api/__init__.py
index 0aab2f47..812fcf74 100644
--- a/fireblocks/api/__init__.py
+++ b/fireblocks/api/__init__.py
@@ -19,6 +19,7 @@
from fireblocks.api.external_wallets_api import ExternalWalletsApi
from fireblocks.api.fiat_accounts_api import FiatAccountsApi
from fireblocks.api.gas_stations_api import GasStationsApi
+from fireblocks.api.genie_beta_api import GenieBetaApi
from fireblocks.api.internal_wallets_api import InternalWalletsApi
from fireblocks.api.key_link_beta_api import KeyLinkBetaApi
from fireblocks.api.keys_beta_api import KeysBetaApi
diff --git a/fireblocks/api/compliance_api.py b/fireblocks/api/compliance_api.py
index b902c902..b45821fa 100644
--- a/fireblocks/api/compliance_api.py
+++ b/fireblocks/api/compliance_api.py
@@ -32,6 +32,7 @@
from fireblocks.models.address_registry_vault_list_order import AddressRegistryVaultListOrder
from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest
from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse
+from fireblocks.models.ars_config_response import ArsConfigResponse
from fireblocks.models.assign_vaults_to_legal_entity_request import AssignVaultsToLegalEntityRequest
from fireblocks.models.assign_vaults_to_legal_entity_response import AssignVaultsToLegalEntityResponse
from fireblocks.models.byork_config_response import ByorkConfigResponse
@@ -74,6 +75,135 @@ def __init__(self, api_client=None) -> None:
self.api_client = api_client
+ @validate_call
+ def activate_ars_config(
+ self,
+ 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[ArsConfigResponse]]:
+ """Activate ARS (Address Registry Screening)
+
+ Activates ARS (Address Registry Screening) for the authenticated tenant (sets config.active to true). Once activated, ARS screening applies to matching transactions.
+
+ :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._activate_ars_config_serialize(
+ 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]] = {
+ '200': "ArsConfigResponse",
+ '400': "ErrorSchema",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _activate_ars_config_serialize(
+ self,
+ 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, List[str], List[bytes], List[Tuple[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
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/screening/ars/config/activate',
+ 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 activate_byork_config(
self,
@@ -657,6 +787,135 @@ def _create_counterparty_group_serialize(
+ @validate_call
+ def deactivate_ars_config(
+ self,
+ 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[ArsConfigResponse]]:
+ """Deactivate ARS (Address Registry Screening)
+
+ Deactivates ARS (Address Registry Screening) for the authenticated tenant (sets config.active to false). Once deactivated, ARS screening no longer applies until activated again.
+
+ :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._deactivate_ars_config_serialize(
+ 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]] = {
+ '200': "ArsConfigResponse",
+ '400': "ErrorSchema",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _deactivate_ars_config_serialize(
+ self,
+ 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, List[str], List[bytes], List[Tuple[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
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/screening/ars/config/deactivate',
+ 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 deactivate_byork_config(
self,
@@ -3675,9 +3934,9 @@ def retry_rejected_transaction_bypass_screening_checks(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> Future[ApiResponse[CreateTransactionResponse]]:
- """Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check
+ """Bypass Screening Policy
- This endpoint is restricted to Admin API users and is only applicable to outgoing transactions.
+ Triggers a new transaction, with the API user as the initiator, bypassing the screening policy checks. This endpoint is restricted to Admin API users and is only applicable to outgoing transactions.
:param tx_id: The transaction id that was rejected by screening checks (required)
:type tx_id: str
diff --git a/fireblocks/api/genie_beta_api.py b/fireblocks/api/genie_beta_api.py
new file mode 100644
index 00000000..99013e2e
--- /dev/null
+++ b/fireblocks/api/genie_beta_api.py
@@ -0,0 +1,328 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from concurrent.futures import Future
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictStr
+from typing import Optional
+from typing_extensions import Annotated
+from fireblocks.models.genie_chat_message import GenieChatMessage
+from fireblocks.models.genie_create_session_response import GenieCreateSessionResponse
+from fireblocks.models.genie_send_message_request import GenieSendMessageRequest
+
+from fireblocks.api_client import ApiClient, RequestSerialized
+from fireblocks.api_response import ApiResponse
+from fireblocks.rest import RESTResponseType
+from fireblocks.validation_utils import validate_not_empty_string
+
+
+class GenieBetaApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_genie_session(
+ self,
+ 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[GenieCreateSessionResponse]]:
+ """Create a Genie session
+
+ Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation. **Note:** This endpoint is currently in beta and might be subject to changes.
+
+ :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._create_genie_session_serialize(
+ 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]] = {
+ '200': "GenieCreateSessionResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _create_genie_session_serialize(
+ self,
+ 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, List[str], List[bytes], List[Tuple[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
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/genie/sessions',
+ 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 send_genie_message(
+ self,
+ session_id: Annotated[StrictStr, Field(description="The Genie session ID returned from `POST /genie/sessions`.")],
+ genie_send_message_request: GenieSendMessageRequest,
+ 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[GenieChatMessage]]:
+ """Send a message to a Genie session
+
+ Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context. **Note:** This endpoint is currently in beta and might be subject to changes.
+
+ :param session_id: The Genie session ID returned from `POST /genie/sessions`. (required)
+ :type session_id: str
+ :param genie_send_message_request: (required)
+ :type genie_send_message_request: GenieSendMessageRequest
+ :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
+
+ validate_not_empty_string(function_name="send_genie_message", param_name="session_id", param_value=session_id)
+
+ _param = self._send_genie_message_serialize(
+ session_id=session_id,
+ genie_send_message_request=genie_send_message_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]] = {
+ '200': "GenieChatMessage",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _send_genie_message_serialize(
+ self,
+ session_id,
+ genie_send_message_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, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if session_id is not None:
+ _path_params['sessionId'] = session_id
+ # 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 genie_send_message_request is not None:
+ _body_params = genie_send_message_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _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='/genie/sessions/{sessionId}/messages',
+ 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
+ )
+
+
diff --git a/fireblocks/api/trading_beta_api.py b/fireblocks/api/trading_beta_api.py
index 3c828d53..645494cf 100644
--- a/fireblocks/api/trading_beta_api.py
+++ b/fireblocks/api/trading_beta_api.py
@@ -21,13 +21,17 @@
from pydantic import Field, StrictStr, field_validator
from typing import List, Optional
from typing_extensions import Annotated
+from fireblocks.models.create_offers_request import CreateOffersRequest
from fireblocks.models.create_order_request import CreateOrderRequest
from fireblocks.models.create_quote import CreateQuote
from fireblocks.models.get_orders_response import GetOrdersResponse
+from fireblocks.models.offers_response import OffersResponse
from fireblocks.models.order_details import OrderDetails
from fireblocks.models.order_status import OrderStatus
from fireblocks.models.providers_list_response import ProvidersListResponse
from fireblocks.models.quotes_response import QuotesResponse
+from fireblocks.models.rates_request import RatesRequest
+from fireblocks.models.rates_response import RatesResponse
from fireblocks.models.trading_provider import TradingProvider
from fireblocks.api_client import ApiClient, RequestSerialized
@@ -355,6 +359,312 @@ def _create_quote_serialize(
+ @validate_call
+ def fetch_all_offers(
+ self,
+ create_offers_request: CreateOffersRequest,
+ 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[OffersResponse]]:
+ """Get all offers
+
+ Retrieve all available offers across the workspace for a given asset pair. Always operates in open scope — no provider or account selection required. Returns a mix of indicative rates and committed quotes as applicable per provider. If no slippageBps is provided, it defaults to 50 bps (0.5%). Slippage and settlement configuration do not affect the returned rate. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+
+ :param create_offers_request: (required)
+ :type create_offers_request: CreateOffersRequest
+ :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._fetch_all_offers_serialize(
+ create_offers_request=create_offers_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': "OffersResponse",
+ '400': "TradingErrorSchema",
+ '401': "TradingErrorSchema",
+ '403': "TradingErrorSchema",
+ '429': "TradingErrorSchema",
+ '5XX': "TradingErrorSchema",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _fetch_all_offers_serialize(
+ self,
+ create_offers_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, List[str], List[bytes], List[Tuple[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 create_offers_request is not None:
+ _body_params = create_offers_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _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='/trading/offers',
+ 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 fetch_rates(
+ self,
+ rates_request: RatesRequest,
+ 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[RatesResponse]]:
+ """Get rates
+
+ Retrieve indicative exchange rate from specified providers for a given asset pair. Rates are non-executable price signals intended for discovery and display purposes. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+
+ :param rates_request: (required)
+ :type rates_request: RatesRequest
+ :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._fetch_rates_serialize(
+ rates_request=rates_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]] = {
+ '200': "RatesResponse",
+ '400': "TradingErrorSchema",
+ '401': "TradingErrorSchema",
+ '403': "TradingErrorSchema",
+ '429': "TradingErrorSchema",
+ '5XX': "TradingErrorSchema",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _fetch_rates_serialize(
+ self,
+ rates_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, List[str], List[bytes], List[Tuple[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 rates_request is not None:
+ _body_params = rates_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _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='/trading/rates',
+ 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_order(
self,
diff --git a/fireblocks/api/utxo_management_beta_api.py b/fireblocks/api/utxo_management_beta_api.py
index c003b9a0..98ce96dd 100644
--- a/fireblocks/api/utxo_management_beta_api.py
+++ b/fireblocks/api/utxo_management_beta_api.py
@@ -18,7 +18,7 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictBool, StrictStr, field_validator
+from pydantic import Field, StrictStr, field_validator
from typing import List, Optional
from typing_extensions import Annotated
from fireblocks.models.attach_detach_utxo_labels_request import AttachDetachUtxoLabelsRequest
@@ -60,8 +60,6 @@ def get_utxos(
address: Annotated[Optional[StrictStr], Field(description="Filter by address")] = None,
min_amount: Annotated[Optional[StrictStr], Field(description="Minimum amount filter")] = None,
max_amount: Annotated[Optional[StrictStr], Field(description="Maximum amount filter")] = None,
- use_change: Annotated[Optional[StrictBool], Field(description="Include change outputs")] = None,
- use_coinbase: Annotated[Optional[StrictBool], Field(description="Include coinbase outputs")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -105,10 +103,6 @@ def get_utxos(
:type min_amount: str
:param max_amount: Maximum amount filter
:type max_amount: str
- :param use_change: Include change outputs
- :type use_change: bool
- :param use_coinbase: Include coinbase outputs
- :type use_coinbase: bool
: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
@@ -148,8 +142,6 @@ def get_utxos(
address=address,
min_amount=min_amount,
max_amount=max_amount,
- use_change=use_change,
- use_coinbase=use_coinbase,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -182,8 +174,6 @@ def _get_utxos_serialize(
address,
min_amount,
max_amount,
- use_change,
- use_coinbase,
_request_auth,
_content_type,
_headers,
@@ -258,14 +248,6 @@ def _get_utxos_serialize(
_query_params.append(('maxAmount', max_amount))
- if use_change is not None:
-
- _query_params.append(('useChange', use_change))
-
- if use_coinbase is not None:
-
- _query_params.append(('useCoinbase', use_coinbase))
-
# process the header parameters
# process the form parameters
# process the body parameter
diff --git a/fireblocks/api/vaults_api.py b/fireblocks/api/vaults_api.py
index cff9181f..2a599f87 100644
--- a/fireblocks/api/vaults_api.py
+++ b/fireblocks/api/vaults_api.py
@@ -21,8 +21,7 @@
from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
from typing import List, Optional, Union
from typing_extensions import Annotated
-from fireblocks.models.circle_gateway_wallet_info_response import CircleGatewayWalletInfoResponse
-from fireblocks.models.circle_gateway_wallet_status_response import CircleGatewayWalletStatusResponse
+from fireblocks.models.address_reverse_lookup_response import AddressReverseLookupResponse
from fireblocks.models.create_address_request import CreateAddressRequest
from fireblocks.models.create_address_response import CreateAddressResponse
from fireblocks.models.create_assets_request import CreateAssetsRequest
@@ -45,6 +44,8 @@
from fireblocks.models.unspent_inputs_response import UnspentInputsResponse
from fireblocks.models.update_vault_account_asset_address_request import UpdateVaultAccountAssetAddressRequest
from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest
+from fireblocks.models.usdc_gateway_wallet_info_response import UsdcGatewayWalletInfoResponse
+from fireblocks.models.usdc_gateway_wallet_status_response import UsdcGatewayWalletStatusResponse
from fireblocks.models.vault_account import VaultAccount
from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse
from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest
@@ -225,7 +226,7 @@ def _activate_asset_for_vault_account_serialize(
@validate_call
- def activate_circle_gateway_wallet_beta(
+ def activate_usdc_gateway_wallet_beta(
self,
vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")],
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,
@@ -241,10 +242,10 @@ def activate_circle_gateway_wallet_beta(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> Future[ApiResponse[CircleGatewayWalletStatusResponse]]:
- """Activate a Circle Gateway wallet
+ ) -> Future[ApiResponse[UsdcGatewayWalletStatusResponse]]:
+ """Activate a USDC Gateway wallet
- Activates the Circle Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state. **Note:** This endpoint is currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver.
+ Activates the USDC Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state. **Note:** This endpoint is currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver.
:param vault_account_id: The ID of the vault account (required)
:type vault_account_id: str
@@ -272,9 +273,9 @@ def activate_circle_gateway_wallet_beta(
:return: Returns the result object.
""" # noqa: E501
- validate_not_empty_string(function_name="activate_circle_gateway_wallet_beta", param_name="vault_account_id", param_value=vault_account_id)
+ validate_not_empty_string(function_name="activate_usdc_gateway_wallet_beta", param_name="vault_account_id", param_value=vault_account_id)
- _param = self._activate_circle_gateway_wallet_beta_serialize(
+ _param = self._activate_usdc_gateway_wallet_beta_serialize(
vault_account_id=vault_account_id,
idempotency_key=idempotency_key,
_request_auth=_request_auth,
@@ -284,7 +285,7 @@ def activate_circle_gateway_wallet_beta(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "CircleGatewayWalletStatusResponse",
+ '200': "UsdcGatewayWalletStatusResponse",
'default': "ErrorSchema",
}
@@ -294,7 +295,7 @@ def activate_circle_gateway_wallet_beta(
_response_types_map=_response_types_map,
)
- def _activate_circle_gateway_wallet_beta_serialize(
+ def _activate_usdc_gateway_wallet_beta_serialize(
self,
vault_account_id,
idempotency_key,
@@ -344,7 +345,7 @@ def _activate_circle_gateway_wallet_beta_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/vault/accounts/{vaultAccountId}/circle_gateway/activate',
+ resource_path='/vault/accounts/{vaultAccountId}/usdc_gateway/activate',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1443,7 +1444,7 @@ def _create_vault_account_asset_address_serialize(
@validate_call
- def deactivate_circle_gateway_wallet_beta(
+ def deactivate_usdc_gateway_wallet_beta(
self,
vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")],
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,
@@ -1459,10 +1460,10 @@ def deactivate_circle_gateway_wallet_beta(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> Future[ApiResponse[CircleGatewayWalletStatusResponse]]:
- """Deactivate a Circle Gateway wallet
+ ) -> Future[ApiResponse[UsdcGatewayWalletStatusResponse]]:
+ """Deactivate a USDC Gateway wallet
- Deactivates the Circle Gateway wallet associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver.
+ Deactivates the USDC Gateway wallet associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver.
:param vault_account_id: The ID of the vault account (required)
:type vault_account_id: str
@@ -1490,9 +1491,9 @@ def deactivate_circle_gateway_wallet_beta(
:return: Returns the result object.
""" # noqa: E501
- validate_not_empty_string(function_name="deactivate_circle_gateway_wallet_beta", param_name="vault_account_id", param_value=vault_account_id)
+ validate_not_empty_string(function_name="deactivate_usdc_gateway_wallet_beta", param_name="vault_account_id", param_value=vault_account_id)
- _param = self._deactivate_circle_gateway_wallet_beta_serialize(
+ _param = self._deactivate_usdc_gateway_wallet_beta_serialize(
vault_account_id=vault_account_id,
idempotency_key=idempotency_key,
_request_auth=_request_auth,
@@ -1502,7 +1503,7 @@ def deactivate_circle_gateway_wallet_beta(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "CircleGatewayWalletStatusResponse",
+ '200': "UsdcGatewayWalletStatusResponse",
'default': "ErrorSchema",
}
@@ -1512,7 +1513,7 @@ def deactivate_circle_gateway_wallet_beta(
_response_types_map=_response_types_map,
)
- def _deactivate_circle_gateway_wallet_beta_serialize(
+ def _deactivate_usdc_gateway_wallet_beta_serialize(
self,
vault_account_id,
idempotency_key,
@@ -1562,7 +1563,7 @@ def _deactivate_circle_gateway_wallet_beta_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/vault/accounts/{vaultAccountId}/circle_gateway/deactivate',
+ resource_path='/vault/accounts/{vaultAccountId}/usdc_gateway/deactivate',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1752,135 +1753,6 @@ def _get_asset_wallets_serialize(
- @validate_call
- def get_circle_gateway_wallet_info_beta(
- self,
- vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")],
- _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[CircleGatewayWalletInfoResponse]]:
- """Get Circle Gateway wallet info
-
- Returns the Circle Gateway wallet information associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
-
- :param vault_account_id: The ID of the vault account (required)
- :type vault_account_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_circle_gateway_wallet_info_beta", param_name="vault_account_id", param_value=vault_account_id)
-
- _param = self._get_circle_gateway_wallet_info_beta_serialize(
- vault_account_id=vault_account_id,
- _request_auth=_request_auth,
- _content_type=_content_type,
- _headers=_headers,
- _host_index=_host_index
- )
-
- _response_types_map: Dict[str, Optional[str]] = {
- '200': "CircleGatewayWalletInfoResponse",
- 'default': "ErrorSchema",
- }
-
- return self.api_client.call_api(
- *_param,
- _request_timeout=_request_timeout,
- _response_types_map=_response_types_map,
- )
-
- def _get_circle_gateway_wallet_info_beta_serialize(
- self,
- vault_account_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, List[str], List[bytes], List[Tuple[str, bytes]]]
- ] = {}
- _body_params: Optional[bytes] = None
-
- # process the path parameters
- if vault_account_id is not None:
- _path_params['vaultAccountId'] = vault_account_id
- # process the query parameters
- # process the header parameters
- # process the form parameters
- # process the body parameter
-
-
- # set the HTTP header `Accept`
- if 'Accept' not in _header_params:
- _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='/vault/accounts/{vaultAccountId}/circle_gateway',
- 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_create_multiple_deposit_addresses_job_status(
self,
@@ -3091,6 +2963,135 @@ def _get_unspent_inputs_serialize(
+ @validate_call
+ def get_usdc_gateway_wallet_info_beta(
+ self,
+ vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")],
+ _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[UsdcGatewayWalletInfoResponse]]:
+ """Get USDC Gateway wallet info
+
+ Returns the USDC Gateway wallet information associated with the given vault account. **Note:** This endpoint is currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+
+ :param vault_account_id: The ID of the vault account (required)
+ :type vault_account_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_usdc_gateway_wallet_info_beta", param_name="vault_account_id", param_value=vault_account_id)
+
+ _param = self._get_usdc_gateway_wallet_info_beta_serialize(
+ vault_account_id=vault_account_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UsdcGatewayWalletInfoResponse",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _get_usdc_gateway_wallet_info_beta_serialize(
+ self,
+ vault_account_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, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if vault_account_id is not None:
+ _path_params['vaultAccountId'] = vault_account_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _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='/vault/accounts/{vaultAccountId}/usdc_gateway',
+ 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_vault_account(
self,
@@ -3925,6 +3926,140 @@ def _hide_vault_account_serialize(
+ @validate_call
+ def lookup_vault_by_address(
+ self,
+ address: Annotated[StrictStr, Field(description="The blockchain address to resolve.")],
+ _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[AddressReverseLookupResponse]]:
+ """Look up a vault account by blockchain address
+
+ Resolves a blockchain address to the vault account that owns it. Returns the vault account ID and the blockchains associated with the address. **Note:** This endpoint is currently in beta and might be subject to changes.
+
+ :param address: The blockchain address to resolve. (required)
+ :type address: 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="lookup_vault_by_address", param_name="address", param_value=address)
+
+ _param = self._lookup_vault_by_address_serialize(
+ address=address,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AddressReverseLookupResponse",
+ '401': None,
+ '403': None,
+ '404': "ErrorSchema",
+ 'default': "ErrorSchema",
+ }
+
+ return self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout,
+ _response_types_map=_response_types_map,
+ )
+
+ def _lookup_vault_by_address_serialize(
+ self,
+ address,
+ _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, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if address is not None:
+
+ _query_params.append(('address', address))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _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='/vault/lookup_by_address',
+ 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 set_customer_ref_id_for_address(
self,
diff --git a/fireblocks/client.py b/fireblocks/client.py
index f3667bc5..8f7bcb28 100644
--- a/fireblocks/client.py
+++ b/fireblocks/client.py
@@ -34,6 +34,7 @@
from fireblocks.api.external_wallets_api import ExternalWalletsApi
from fireblocks.api.fiat_accounts_api import FiatAccountsApi
from fireblocks.api.gas_stations_api import GasStationsApi
+from fireblocks.api.genie_beta_api import GenieBetaApi
from fireblocks.api.internal_wallets_api import InternalWalletsApi
from fireblocks.api.key_link_beta_api import KeyLinkBetaApi
from fireblocks.api.keys_beta_api import KeysBetaApi
@@ -93,6 +94,7 @@ def __init__(self, configuration: ClientConfiguration = None):
self._external_wallets = None
self._fiat_accounts = None
self._gas_stations = None
+ self._genie_beta = None
self._internal_wallets = None
self._key_link_beta = None
self._keys_beta = None
@@ -243,6 +245,12 @@ def gas_stations(self) -> GasStationsApi:
self._gas_stations = GasStationsApi(self._api_client)
return self._gas_stations
+ @property
+ def genie_beta(self) -> GenieBetaApi:
+ if self._genie_beta is None:
+ self._genie_beta = GenieBetaApi(self._api_client)
+ return self._genie_beta
+
@property
def internal_wallets(self) -> InternalWalletsApi:
if self._internal_wallets is None:
diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py
index 17b4aa64..3f2e5962 100644
--- a/fireblocks/configuration.py
+++ b/fireblocks/configuration.py
@@ -552,7 +552,7 @@ def to_debug_report(self) -> str:
"OS: {env}\n"
"Python Version: {pyversion}\n"
"Version of the API: 1.6.2\n"
- "SDK Package Version: 18.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) -> List[HostSetting]:
diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py
index 7082d108..5cfb1e97 100644
--- a/fireblocks/models/__init__.py
+++ b/fireblocks/models/__init__.py
@@ -66,6 +66,7 @@
from fireblocks.models.address_registry_travel_rule_provider import AddressRegistryTravelRuleProvider
from fireblocks.models.address_registry_vault_list_order import AddressRegistryVaultListOrder
from fireblocks.models.address_registry_vault_opt_out_item import AddressRegistryVaultOptOutItem
+from fireblocks.models.address_reverse_lookup_response import AddressReverseLookupResponse
from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum
from fireblocks.models.alert_level_enum import AlertLevelEnum
from fireblocks.models.aml_alert import AmlAlert
@@ -91,6 +92,7 @@
from fireblocks.models.approvers_config import ApproversConfig
from fireblocks.models.approvers_config_approval_groups_inner import ApproversConfigApprovalGroupsInner
from fireblocks.models.apy import Apy
+from fireblocks.models.ars_config_response import ArsConfigResponse
from fireblocks.models.asset import Asset
from fireblocks.models.asset_already_exist_http_error import AssetAlreadyExistHttpError
from fireblocks.models.asset_amount import AssetAmount
@@ -165,8 +167,6 @@
from fireblocks.models.chaps_address import ChapsAddress
from fireblocks.models.chaps_destination import ChapsDestination
from fireblocks.models.chaps_payment_info import ChapsPaymentInfo
-from fireblocks.models.circle_gateway_wallet_info_response import CircleGatewayWalletInfoResponse
-from fireblocks.models.circle_gateway_wallet_status_response import CircleGatewayWalletStatusResponse
from fireblocks.models.claim_rewards_request import ClaimRewardsRequest
from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto
from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto
@@ -179,8 +179,6 @@
from fireblocks.models.collection_token_metadata_attribute_dto import CollectionTokenMetadataAttributeDto
from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto
from fireblocks.models.collection_type import CollectionType
-from fireblocks.models.committed_quote_enum import CommittedQuoteEnum
-from fireblocks.models.committed_quote_type import CommittedQuoteType
from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload
from fireblocks.models.compliance_result_statuses_enum import ComplianceResultStatusesEnum
from fireblocks.models.compliance_results import ComplianceResults
@@ -271,6 +269,7 @@
from fireblocks.models.create_multiple_vault_accounts_job_status import CreateMultipleVaultAccountsJobStatus
from fireblocks.models.create_ncw_connection_request import CreateNcwConnectionRequest
from fireblocks.models.create_network_id_request import CreateNetworkIdRequest
+from fireblocks.models.create_offers_request import CreateOffersRequest
from fireblocks.models.create_order_request import CreateOrderRequest
from fireblocks.models.create_payout_request import CreatePayoutRequest
from fireblocks.models.create_quote import CreateQuote
@@ -429,6 +428,9 @@
from fireblocks.models.gas_station_properties_response import GasStationPropertiesResponse
from fireblocks.models.gassless_standard_configurations import GasslessStandardConfigurations
from fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value import GasslessStandardConfigurationsGaslessStandardConfigurationsValue
+from fireblocks.models.genie_chat_message import GenieChatMessage
+from fireblocks.models.genie_create_session_response import GenieCreateSessionResponse
+from fireblocks.models.genie_send_message_request import GenieSendMessageRequest
from fireblocks.models.get_api_users_response import GetAPIUsersResponse
from fireblocks.models.get_action_response import GetActionResponse
from fireblocks.models.get_actions_response import GetActionsResponse
@@ -468,8 +470,6 @@
from fireblocks.models.identification import Identification
from fireblocks.models.identification_policy_override import IdentificationPolicyOverride
from fireblocks.models.idl_type import IdlType
-from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum
-from fireblocks.models.indicative_quote_type import IndicativeQuoteType
from fireblocks.models.initiator_config import InitiatorConfig
from fireblocks.models.initiator_config_pattern import InitiatorConfigPattern
from fireblocks.models.instruction_amount import InstructionAmount
@@ -569,6 +569,8 @@
from fireblocks.models.notification_paginated_response import NotificationPaginatedResponse
from fireblocks.models.notification_status import NotificationStatus
from fireblocks.models.notification_with_data import NotificationWithData
+from fireblocks.models.offer import Offer
+from fireblocks.models.offers_response import OffersResponse
from fireblocks.models.onchain_transaction import OnchainTransaction
from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse
from fireblocks.models.one_time_address import OneTimeAddress
@@ -658,17 +660,23 @@
from fireblocks.models.quote_execution_request_details import QuoteExecutionRequestDetails
from fireblocks.models.quote_execution_step import QuoteExecutionStep
from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails
+from fireblocks.models.quote_execution_type_enum import QuoteExecutionTypeEnum
from fireblocks.models.quote_execution_with_requote_request_details import QuoteExecutionWithRequoteRequestDetails
from fireblocks.models.quote_execution_with_requote_response_details import QuoteExecutionWithRequoteResponseDetails
-from fireblocks.models.quote_failure import QuoteFailure
-from fireblocks.models.quote_properties_details import QuotePropertiesDetails
-from fireblocks.models.quote_type_enum import QuoteTypeEnum
+from fireblocks.models.quote_offer import QuoteOffer
+from fireblocks.models.quote_offer_type import QuoteOfferType
from fireblocks.models.quotes_response import QuotesResponse
+from fireblocks.models.rate import Rate
+from fireblocks.models.rate_offer import RateOffer
+from fireblocks.models.rate_offer_type import RateOfferType
+from fireblocks.models.rates_request import RatesRequest
+from fireblocks.models.rates_response import RatesResponse
from fireblocks.models.re_quote_details import ReQuoteDetails
from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
from fireblocks.models.read_abi_function import ReadAbiFunction
from fireblocks.models.read_call_function_dto import ReadCallFunctionDto
from fireblocks.models.read_call_function_dto_abi_function import ReadCallFunctionDtoAbiFunction
+from fireblocks.models.reason_for_payment_enum import ReasonForPaymentEnum
from fireblocks.models.recipient_handle import RecipientHandle
from fireblocks.models.redeem_funds_to_linked_dda_response import RedeemFundsToLinkedDDAResponse
from fireblocks.models.register_legal_entity_request import RegisterLegalEntityRequest
@@ -707,6 +715,7 @@
from fireblocks.models.sol_account import SOLAccount
from fireblocks.models.sol_account_with_value import SOLAccountWithValue
from fireblocks.models.scope_item import ScopeItem
+from fireblocks.models.scope_item_failure import ScopeItemFailure
from fireblocks.models.screening_alert_exposure_type_enum import ScreeningAlertExposureTypeEnum
from fireblocks.models.screening_aml_alert import ScreeningAmlAlert
from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule
@@ -803,6 +812,7 @@
from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue
from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams
from fireblocks.models.source_config import SourceConfig
+from fireblocks.models.source_of_funds import SourceOfFunds
from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath
from fireblocks.models.source_transfer_peer_path_response import SourceTransferPeerPathResponse
from fireblocks.models.spam_ownership_response import SpamOwnershipResponse
@@ -1044,6 +1054,8 @@
from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest
from fireblocks.models.update_webhook_request import UpdateWebhookRequest
from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo
+from fireblocks.models.usdc_gateway_wallet_info_response import UsdcGatewayWalletInfoResponse
+from fireblocks.models.usdc_gateway_wallet_status_response import UsdcGatewayWalletStatusResponse
from fireblocks.models.user_group_create_request import UserGroupCreateRequest
from fireblocks.models.user_group_create_response import UserGroupCreateResponse
from fireblocks.models.user_group_response import UserGroupResponse
diff --git a/fireblocks/models/address_reverse_lookup_response.py b/fireblocks/models/address_reverse_lookup_response.py
new file mode 100644
index 00000000..9f736960
--- /dev/null
+++ b/fireblocks/models/address_reverse_lookup_response.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AddressReverseLookupResponse(BaseModel):
+ """
+ Reverse-lookup result mapping a blockchain address to its owning vault account.
+ """ # noqa: E501
+ address: StrictStr = Field(description="The queried blockchain address.")
+ type: StrictStr = Field(description="Source type of the resolved address.")
+ vault_account_id: StrictStr = Field(description="Vault account ID that owns the address.", alias="vaultAccountId")
+ blockchains: List[StrictStr] = Field(description="Blockchain assets associated with this address in the vault account.")
+ __properties: ClassVar[List[str]] = ["address", "type", "vaultAccountId", "blockchains"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['VAULT_ACCOUNT']):
+ raise ValueError("must be one of enum values ('VAULT_ACCOUNT')")
+ 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 AddressReverseLookupResponse 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 AddressReverseLookupResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "address": obj.get("address"),
+ "type": obj.get("type"),
+ "vaultAccountId": obj.get("vaultAccountId"),
+ "blockchains": obj.get("blockchains")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/ars_config_response.py b/fireblocks/models/ars_config_response.py
new file mode 100644
index 00000000..69aaea98
--- /dev/null
+++ b/fireblocks/models/ars_config_response.py
@@ -0,0 +1,91 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictBool
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ArsConfigResponse(BaseModel):
+ """
+ ARS (Address Registry Screening) configuration for the tenant: active flag and last update time.
+ """ # noqa: E501
+ active: Optional[StrictBool] = Field(default=None, description="Whether ARS is active for the tenant")
+ last_update: Optional[datetime] = Field(default=None, description="Last update timestamp of the configuration", alias="lastUpdate")
+ __properties: ClassVar[List[str]] = ["active", "lastUpdate"]
+
+ 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 ArsConfigResponse 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 ArsConfigResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "active": obj.get("active"),
+ "lastUpdate": obj.get("lastUpdate")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/attach_detach_utxo_labels_request.py b/fireblocks/models/attach_detach_utxo_labels_request.py
index b1aa13d2..49c411f3 100644
--- a/fireblocks/models/attach_detach_utxo_labels_request.py
+++ b/fireblocks/models/attach_detach_utxo_labels_request.py
@@ -18,7 +18,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, field_validator
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from fireblocks.models.utxo_identifier import UtxoIdentifier
diff --git a/fireblocks/models/committed_quote_enum.py b/fireblocks/models/committed_quote_enum.py
deleted file mode 100644
index da77f1cb..00000000
--- a/fireblocks/models/committed_quote_enum.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# coding: utf-8
-
-"""
- Fireblocks API
-
- Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
-
- The version of the OpenAPI document: 1.6.2
- Contact: developers@fireblocks.com
- Generated by OpenAPI Generator (https://openapi-generator.tech)
-
- Do not edit the class manually.
-""" # noqa: E501
-
-
-from __future__ import annotations
-import json
-from enum import Enum
-from typing_extensions import Self
-
-
-class CommittedQuoteEnum(str, Enum):
- """
- Indicates this is a committed quote
- """
-
- """
- allowed enum values
- """
- COMMITTED = 'COMMITTED'
-
- @classmethod
- def from_json(cls, json_str: str) -> Self:
- """Create an instance of CommittedQuoteEnum from a JSON string"""
- return cls(json.loads(json_str))
-
-
diff --git a/fireblocks/models/create_offers_request.py b/fireblocks/models/create_offers_request.py
new file mode 100644
index 00000000..2387e93f
--- /dev/null
+++ b/fireblocks/models/create_offers_request.py
@@ -0,0 +1,116 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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 typing_extensions import Annotated
+from fireblocks.models.dvp_settlement import DVPSettlement
+from fireblocks.models.side import Side
+from fireblocks.models.transfer_rail import TransferRail
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CreateOffersRequest(BaseModel):
+ """
+ CreateOffersRequest
+ """ # noqa: E501
+ base_asset_id: StrictStr = Field(description="The source asset identifier.", alias="baseAssetId")
+ base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
+ quote_asset_id: StrictStr = Field(description="The target asset identifier.", alias="quoteAssetId")
+ quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
+ base_amount: Annotated[str, Field(strict=True)] = Field(description="The amount to get offers for", alias="baseAmount")
+ slippage_bps: Optional[Annotated[int, Field(le=10000, strict=True, ge=1)]] = Field(default=50, description="Slippage tolerance in basis points (bps) for defi quotes - 1 is 0.01% and 10000 is 100%. If not set, defaults to 50 bps (0.5%).", alias="slippageBps")
+ settlement: Optional[DVPSettlement] = None
+ side: Side
+ __properties: ClassVar[List[str]] = ["baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "baseAmount", "slippageBps", "settlement", "side"]
+
+ @field_validator('base_amount')
+ def base_amount_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^\d+(\.\d+)?$", value):
+ raise ValueError(r"must validate the regular expression /^\d+(\.\d+)?$/")
+ 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 CreateOffersRequest 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 settlement
+ if self.settlement:
+ _dict['settlement'] = self.settlement.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CreateOffersRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "baseAssetId": obj.get("baseAssetId"),
+ "baseAssetRail": obj.get("baseAssetRail"),
+ "quoteAssetId": obj.get("quoteAssetId"),
+ "quoteAssetRail": obj.get("quoteAssetRail"),
+ "baseAmount": obj.get("baseAmount"),
+ "slippageBps": obj.get("slippageBps") if obj.get("slippageBps") is not None else 50,
+ "settlement": DVPSettlement.from_dict(obj["settlement"]) if obj.get("settlement") is not None else None,
+ "side": obj.get("side")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/create_order_request.py b/fireblocks/models/create_order_request.py
index 3abb5d62..d1182905 100644
--- a/fireblocks/models/create_order_request.py
+++ b/fireblocks/models/create_order_request.py
@@ -25,6 +25,7 @@
from fireblocks.models.execution_request_details import ExecutionRequestDetails
from fireblocks.models.participants_identification import ParticipantsIdentification
from fireblocks.models.settlement import Settlement
+from fireblocks.models.source_of_funds import SourceOfFunds
from typing import Optional, Set
from typing_extensions import Self
@@ -36,9 +37,10 @@ class CreateOrderRequest(BaseModel):
execution_request_details: ExecutionRequestDetails = Field(alias="executionRequestDetails")
settlement: Settlement
participants_identification: Optional[ParticipantsIdentification] = Field(default=None, alias="participantsIdentification")
+ source_of_funds: Optional[SourceOfFunds] = Field(default=None, alias="sourceOfFunds")
customer_internal_reference_id: Optional[StrictStr] = Field(default=None, description="Internal reference ID for the customer", alias="customerInternalReferenceId")
note: Optional[Annotated[str, Field(strict=True, max_length=512)]] = Field(default=None, description="Optional note for the order")
- __properties: ClassVar[List[str]] = ["via", "executionRequestDetails", "settlement", "participantsIdentification", "customerInternalReferenceId", "note"]
+ __properties: ClassVar[List[str]] = ["via", "executionRequestDetails", "settlement", "participantsIdentification", "sourceOfFunds", "customerInternalReferenceId", "note"]
model_config = ConfigDict(
populate_by_name=True,
@@ -91,6 +93,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of participants_identification
if self.participants_identification:
_dict['participantsIdentification'] = self.participants_identification.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of source_of_funds
+ if self.source_of_funds:
+ _dict['sourceOfFunds'] = self.source_of_funds.to_dict()
return _dict
@classmethod
@@ -107,6 +112,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"executionRequestDetails": ExecutionRequestDetails.from_dict(obj["executionRequestDetails"]) if obj.get("executionRequestDetails") is not None else None,
"settlement": Settlement.from_dict(obj["settlement"]) if obj.get("settlement") is not None else None,
"participantsIdentification": ParticipantsIdentification.from_dict(obj["participantsIdentification"]) if obj.get("participantsIdentification") is not None else None,
+ "sourceOfFunds": SourceOfFunds.from_dict(obj["sourceOfFunds"]) if obj.get("sourceOfFunds") is not None else None,
"customerInternalReferenceId": obj.get("customerInternalReferenceId"),
"note": obj.get("note")
})
diff --git a/fireblocks/models/genie_chat_message.py b/fireblocks/models/genie_chat_message.py
new file mode 100644
index 00000000..0e1cf47c
--- /dev/null
+++ b/fireblocks/models/genie_chat_message.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GenieChatMessage(BaseModel):
+ """
+ GenieChatMessage
+ """ # noqa: E501
+ id: StrictStr = Field(description="The unique identifier of the message.")
+ session_id: StrictStr = Field(description="The Genie session this message belongs to.", alias="sessionId")
+ role: StrictStr = Field(description="Who produced the message — `USER` for the customer-supplied query, `ASSISTANT` for the Genie response.")
+ content: StrictStr = Field(description="The natural-language body of the message.")
+ created_at: Optional[StrictInt] = Field(default=None, description="Message creation timestamp in epoch milliseconds.", alias="createdAt")
+ __properties: ClassVar[List[str]] = ["id", "sessionId", "role", "content", "createdAt"]
+
+ 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 GenieChatMessage 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 GenieChatMessage 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"),
+ "sessionId": obj.get("sessionId"),
+ "role": obj.get("role"),
+ "content": obj.get("content"),
+ "createdAt": obj.get("createdAt")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/genie_create_session_response.py b/fireblocks/models/genie_create_session_response.py
new file mode 100644
index 00000000..0d24d153
--- /dev/null
+++ b/fireblocks/models/genie_create_session_response.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GenieCreateSessionResponse(BaseModel):
+ """
+ GenieCreateSessionResponse
+ """ # noqa: E501
+ id: StrictStr = Field(description="The unique identifier of the newly created Genie session. Use this when sending messages in the conversation.")
+ created_at: Optional[StrictInt] = Field(default=None, description="Session creation timestamp in epoch milliseconds.", alias="createdAt")
+ title: Optional[StrictStr] = Field(default=None, description="Session title. May be empty until the first message has been processed.")
+ __properties: ClassVar[List[str]] = ["id", "createdAt", "title"]
+
+ 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 GenieCreateSessionResponse 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 GenieCreateSessionResponse 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"),
+ "createdAt": obj.get("createdAt"),
+ "title": obj.get("title")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/committed_quote_type.py b/fireblocks/models/genie_send_message_request.py
similarity index 83%
rename from fireblocks/models/committed_quote_type.py
rename to fireblocks/models/genie_send_message_request.py
index f236a980..80602a16 100644
--- a/fireblocks/models/committed_quote_type.py
+++ b/fireblocks/models/genie_send_message_request.py
@@ -18,18 +18,17 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
-from fireblocks.models.committed_quote_enum import CommittedQuoteEnum
from typing import Optional, Set
from typing_extensions import Self
-class CommittedQuoteType(BaseModel):
+class GenieSendMessageRequest(BaseModel):
"""
- CommittedQuoteType
+ GenieSendMessageRequest
""" # noqa: E501
- type: CommittedQuoteEnum
- __properties: ClassVar[List[str]] = ["type"]
+ content: StrictStr = Field(description="The natural-language question or instruction to send to Genie.")
+ __properties: ClassVar[List[str]] = ["content"]
model_config = ConfigDict(
populate_by_name=True,
@@ -49,7 +48,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of CommittedQuoteType from a JSON string"""
+ """Create an instance of GenieSendMessageRequest from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -74,7 +73,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of CommittedQuoteType from a dict"""
+ """Create an instance of GenieSendMessageRequest from a dict"""
if obj is None:
return None
@@ -82,7 +81,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "type": obj.get("type")
+ "content": obj.get("content")
})
return _obj
diff --git a/fireblocks/models/indicative_quote_enum.py b/fireblocks/models/indicative_quote_enum.py
deleted file mode 100644
index fd21330f..00000000
--- a/fireblocks/models/indicative_quote_enum.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# coding: utf-8
-
-"""
- Fireblocks API
-
- Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
-
- The version of the OpenAPI document: 1.6.2
- Contact: developers@fireblocks.com
- Generated by OpenAPI Generator (https://openapi-generator.tech)
-
- Do not edit the class manually.
-""" # noqa: E501
-
-
-from __future__ import annotations
-import json
-from enum import Enum
-from typing_extensions import Self
-
-
-class IndicativeQuoteEnum(str, Enum):
- """
- Indicates this is an indicative quote
- """
-
- """
- allowed enum values
- """
- INDICATIVE = 'INDICATIVE'
-
- @classmethod
- def from_json(cls, json_str: str) -> Self:
- """Create an instance of IndicativeQuoteEnum from a JSON string"""
- return cls(json.loads(json_str))
-
-
diff --git a/fireblocks/models/offer.py b/fireblocks/models/offer.py
new file mode 100644
index 00000000..65790af7
--- /dev/null
+++ b/fireblocks/models/offer.py
@@ -0,0 +1,141 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+import pprint
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Any, List, Optional
+from fireblocks.models.quote_offer import QuoteOffer
+from fireblocks.models.rate_offer import RateOffer
+from pydantic import StrictStr, Field
+from typing import Union, List, Set, Optional, Dict
+from typing_extensions import Literal, Self
+
+OFFER_ONE_OF_SCHEMAS = ["QuoteOffer", "RateOffer"]
+
+class Offer(BaseModel):
+ """
+ Offer
+ """
+ # data type: RateOffer
+ oneof_schema_1_validator: Optional[RateOffer] = None
+ # data type: QuoteOffer
+ oneof_schema_2_validator: Optional[QuoteOffer] = None
+ actual_instance: Optional[Union[QuoteOffer, RateOffer]] = None
+ one_of_schemas: Set[str] = { "QuoteOffer", "RateOffer" }
+
+ model_config = ConfigDict(
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ discriminator_value_class_map: Dict[str, str] = {
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_oneof(cls, v):
+ instance = Offer.model_construct()
+ error_messages = []
+ match = 0
+ # validate data type: RateOffer
+ if not isinstance(v, RateOffer):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RateOffer`")
+ else:
+ match += 1
+ # validate data type: QuoteOffer
+ if not isinstance(v, QuoteOffer):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `QuoteOffer`")
+ else:
+ match += 1
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when setting `actual_instance` in Offer with oneOf schemas: QuoteOffer, RateOffer. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when setting `actual_instance` in Offer with oneOf schemas: QuoteOffer, RateOffer. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ match = 0
+
+ # deserialize data into RateOffer
+ try:
+ instance.actual_instance = RateOffer.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into QuoteOffer
+ try:
+ instance.actual_instance = QuoteOffer.from_json(json_str)
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when deserializing the JSON string into Offer with oneOf schemas: QuoteOffer, RateOffer. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into Offer with oneOf schemas: QuoteOffer, RateOffer. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], QuoteOffer, RateOffer]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ # primitive type
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+
diff --git a/fireblocks/models/offers_response.py b/fireblocks/models/offers_response.py
new file mode 100644
index 00000000..c4eafe64
--- /dev/null
+++ b/fireblocks/models/offers_response.py
@@ -0,0 +1,106 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.offer import Offer
+from fireblocks.models.scope_item_failure import ScopeItemFailure
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OffersResponse(BaseModel):
+ """
+ OffersResponse
+ """ # noqa: E501
+ offers: List[Offer] = Field(description="List of offers returned for the requested asset pair.")
+ errors: List[ScopeItemFailure] = Field(description="Partial failures encountered while requesting offers. Empty when all offer requests succeed.")
+ __properties: ClassVar[List[str]] = ["offers", "errors"]
+
+ 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 OffersResponse 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 offers (list)
+ _items = []
+ if self.offers:
+ for _item_offers in self.offers:
+ if _item_offers:
+ _items.append(_item_offers.to_dict())
+ _dict['offers'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in errors (list)
+ _items = []
+ if self.errors:
+ for _item_errors in self.errors:
+ if _item_errors:
+ _items.append(_item_errors.to_dict())
+ _dict['errors'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of OffersResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "offers": [Offer.from_dict(_item) for _item in obj["offers"]] if obj.get("offers") is not None else None,
+ "errors": [ScopeItemFailure.from_dict(_item) for _item in obj["errors"]] if obj.get("errors") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/quote.py b/fireblocks/models/quote.py
index afb4fe49..ca6c329b 100644
--- a/fireblocks/models/quote.py
+++ b/fireblocks/models/quote.py
@@ -18,35 +18,45 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional, Union
from fireblocks.models.access_type import AccessType
from fireblocks.models.fee import Fee
-from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum
from fireblocks.models.quote_execution_step import QuoteExecutionStep
from fireblocks.models.side import Side
+from fireblocks.models.transfer_rail import TransferRail
from typing import Optional, Set
from typing_extensions import Self
class Quote(BaseModel):
"""
- Quote
+ A committed executable quote for a trading pair.
""" # noqa: E501
via: AccessType
- id: StrictStr
- quote_asset_id: StrictStr = Field(alias="quoteAssetId")
- base_asset_id: StrictStr = Field(alias="baseAssetId")
- base_amount: StrictStr = Field(alias="baseAmount")
- quote_amount: StrictStr = Field(alias="quoteAmount")
- price_impact: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="priceImpact")
- quote_min_amount: Optional[StrictStr] = Field(default=None, alias="quoteMinAmount")
- execution_steps: Optional[List[QuoteExecutionStep]] = Field(default=None, alias="executionSteps")
- general_fees: Optional[List[Fee]] = Field(default=None, alias="generalFees")
+ id: StrictStr = Field(description="The unique identifier of the quote.")
+ quote_asset_id: StrictStr = Field(description="The target asset identifier.", alias="quoteAssetId")
+ quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
+ base_asset_id: StrictStr = Field(description="The source asset identifier.", alias="baseAssetId")
+ base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
+ base_amount: StrictStr = Field(description="The amount of the base asset.", alias="baseAmount")
+ quote_amount: StrictStr = Field(description="The amount of the quote asset.", alias="quoteAmount")
+ price_impact: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The estimated price impact as a decimal fraction.", alias="priceImpact")
+ quote_min_amount: Optional[StrictStr] = Field(default=None, description="The minimum guaranteed amount of the quote asset.", alias="quoteMinAmount")
+ is_slippage_applied: Optional[StrictBool] = Field(default=False, description="Indicates if slippage was applied to the quote.", alias="isSlippageApplied")
+ execution_steps: Optional[List[QuoteExecutionStep]] = Field(default=None, description="Ordered list of execution steps for the quote.", alias="executionSteps")
+ general_fees: Optional[List[Fee]] = Field(default=None, description="General fees associated with the quote.", alias="generalFees")
side: Side
- expires_at: StrictStr = Field(description="The expiration time of the quote in ISO format.", alias="expiresAt")
- order_creation_requirements: Optional[StrictStr] = Field(default=None, description="A JSON Schema Draft-7 document in string format describing the fields required when creating an order for this quote. The schema mirrors the structure of CreateOrderRequest.participantsIdentification json schema, so clients can validate their order payload before sending. ", alias="orderCreationRequirements")
- type: IndicativeQuoteEnum
- __properties: ClassVar[List[str]] = ["via", "id", "quoteAssetId", "baseAssetId", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "executionSteps", "generalFees", "side", "expiresAt", "orderCreationRequirements", "type"]
+ expires_at: StrictStr = Field(description="The expiration time of the quote in ISO 8601 format.", alias="expiresAt")
+ order_creation_requirements: Optional[StrictStr] = Field(default=None, description="A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending. ", alias="orderCreationRequirements")
+ type: StrictStr = Field(description="The type of the quote.")
+ __properties: ClassVar[List[str]] = ["via", "id", "quoteAssetId", "quoteAssetRail", "baseAssetId", "baseAssetRail", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "isSlippageApplied", "executionSteps", "generalFees", "side", "expiresAt", "orderCreationRequirements", "type"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['COMMITTED', 'INDICATIVE']):
+ raise ValueError("must be one of enum values ('COMMITTED', 'INDICATIVE')")
+ return value
model_config = ConfigDict(
populate_by_name=True,
@@ -119,11 +129,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None,
"id": obj.get("id"),
"quoteAssetId": obj.get("quoteAssetId"),
+ "quoteAssetRail": obj.get("quoteAssetRail"),
"baseAssetId": obj.get("baseAssetId"),
+ "baseAssetRail": obj.get("baseAssetRail"),
"baseAmount": obj.get("baseAmount"),
"quoteAmount": obj.get("quoteAmount"),
"priceImpact": obj.get("priceImpact"),
"quoteMinAmount": obj.get("quoteMinAmount"),
+ "isSlippageApplied": obj.get("isSlippageApplied") if obj.get("isSlippageApplied") is not None else False,
"executionSteps": [QuoteExecutionStep.from_dict(_item) for _item in obj["executionSteps"]] if obj.get("executionSteps") is not None else None,
"generalFees": [Fee.from_dict(_item) for _item in obj["generalFees"]] if obj.get("generalFees") is not None else None,
"side": obj.get("side"),
diff --git a/fireblocks/models/quote_execution_request_details.py b/fireblocks/models/quote_execution_request_details.py
index 1f8e9e7e..e4fbd2ca 100644
--- a/fireblocks/models/quote_execution_request_details.py
+++ b/fireblocks/models/quote_execution_request_details.py
@@ -20,7 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
-from fireblocks.models.quote_type_enum import QuoteTypeEnum
+from fireblocks.models.quote_execution_type_enum import QuoteExecutionTypeEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +28,7 @@ class QuoteExecutionRequestDetails(BaseModel):
"""
QuoteExecutionRequestDetails
""" # noqa: E501
- type: QuoteTypeEnum
+ type: QuoteExecutionTypeEnum
quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId")
__properties: ClassVar[List[str]] = ["type", "quoteId"]
diff --git a/fireblocks/models/quote_execution_type_details.py b/fireblocks/models/quote_execution_type_details.py
index b7f23fdc..4761132c 100644
--- a/fireblocks/models/quote_execution_type_details.py
+++ b/fireblocks/models/quote_execution_type_details.py
@@ -20,7 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
-from fireblocks.models.quote_type_enum import QuoteTypeEnum
+from fireblocks.models.quote_execution_type_enum import QuoteExecutionTypeEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +28,7 @@ class QuoteExecutionTypeDetails(BaseModel):
"""
QuoteExecutionTypeDetails
""" # noqa: E501
- type: QuoteTypeEnum
+ type: QuoteExecutionTypeEnum
quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId")
quote_amount: StrictStr = Field(description="Quote amount for quote orders", alias="quoteAmount")
__properties: ClassVar[List[str]] = ["type", "quoteId", "quoteAmount"]
diff --git a/fireblocks/models/quote_type_enum.py b/fireblocks/models/quote_execution_type_enum.py
similarity index 88%
rename from fireblocks/models/quote_type_enum.py
rename to fireblocks/models/quote_execution_type_enum.py
index 6822d5a1..9b5a6c67 100644
--- a/fireblocks/models/quote_type_enum.py
+++ b/fireblocks/models/quote_execution_type_enum.py
@@ -19,7 +19,7 @@
from typing_extensions import Self
-class QuoteTypeEnum(str, Enum):
+class QuoteExecutionTypeEnum(str, Enum):
"""
Order type for quote orders
"""
@@ -31,7 +31,7 @@ class QuoteTypeEnum(str, Enum):
@classmethod
def from_json(cls, json_str: str) -> Self:
- """Create an instance of QuoteTypeEnum from a JSON string"""
+ """Create an instance of QuoteExecutionTypeEnum from a JSON string"""
return cls(json.loads(json_str))
diff --git a/fireblocks/models/quote_execution_with_requote_request_details.py b/fireblocks/models/quote_execution_with_requote_request_details.py
index 95ae7c0e..d163c643 100644
--- a/fireblocks/models/quote_execution_with_requote_request_details.py
+++ b/fireblocks/models/quote_execution_with_requote_request_details.py
@@ -20,7 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
-from fireblocks.models.quote_type_enum import QuoteTypeEnum
+from fireblocks.models.quote_execution_type_enum import QuoteExecutionTypeEnum
from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
from typing import Optional, Set
from typing_extensions import Self
@@ -29,7 +29,7 @@ class QuoteExecutionWithRequoteRequestDetails(BaseModel):
"""
QuoteExecutionWithRequoteRequestDetails
""" # noqa: E501
- type: QuoteTypeEnum
+ type: QuoteExecutionTypeEnum
quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId")
re_quote: Optional[ReQuoteDetailsReQuote] = Field(default=None, alias="reQuote")
__properties: ClassVar[List[str]] = ["type", "quoteId", "reQuote"]
diff --git a/fireblocks/models/quote_execution_with_requote_response_details.py b/fireblocks/models/quote_execution_with_requote_response_details.py
index d79a0bf8..94685f98 100644
--- a/fireblocks/models/quote_execution_with_requote_response_details.py
+++ b/fireblocks/models/quote_execution_with_requote_response_details.py
@@ -20,7 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
-from fireblocks.models.quote_type_enum import QuoteTypeEnum
+from fireblocks.models.quote_execution_type_enum import QuoteExecutionTypeEnum
from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote
from fireblocks.models.side import Side
from fireblocks.models.transfer_rail import TransferRail
@@ -31,7 +31,7 @@ class QuoteExecutionWithRequoteResponseDetails(BaseModel):
"""
QuoteExecutionWithRequoteResponseDetails
""" # noqa: E501
- type: QuoteTypeEnum
+ type: QuoteExecutionTypeEnum
quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId")
quote_amount: StrictStr = Field(description="Quote amount for quote orders", alias="quoteAmount")
side: Side
diff --git a/fireblocks/models/quote_properties_details.py b/fireblocks/models/quote_offer.py
similarity index 61%
rename from fireblocks/models/quote_properties_details.py
rename to fireblocks/models/quote_offer.py
index f67f3c3e..c725b889 100644
--- a/fireblocks/models/quote_properties_details.py
+++ b/fireblocks/models/quote_offer.py
@@ -18,33 +18,53 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional, Union
from fireblocks.models.access_type import AccessType
from fireblocks.models.fee import Fee
from fireblocks.models.quote_execution_step import QuoteExecutionStep
from fireblocks.models.side import Side
+from fireblocks.models.transfer_rail import TransferRail
from typing import Optional, Set
from typing_extensions import Self
-class QuotePropertiesDetails(BaseModel):
+class QuoteOffer(BaseModel):
"""
- QuotePropertiesDetails
+ QuoteOffer
""" # noqa: E501
via: AccessType
- id: StrictStr
- quote_asset_id: StrictStr = Field(alias="quoteAssetId")
- base_asset_id: StrictStr = Field(alias="baseAssetId")
- base_amount: StrictStr = Field(alias="baseAmount")
- quote_amount: StrictStr = Field(alias="quoteAmount")
- price_impact: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="priceImpact")
- quote_min_amount: Optional[StrictStr] = Field(default=None, alias="quoteMinAmount")
- execution_steps: Optional[List[QuoteExecutionStep]] = Field(default=None, alias="executionSteps")
- general_fees: Optional[List[Fee]] = Field(default=None, alias="generalFees")
+ id: StrictStr = Field(description="The unique identifier of the quote.")
+ quote_asset_id: StrictStr = Field(description="The target asset identifier.", alias="quoteAssetId")
+ quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
+ base_asset_id: StrictStr = Field(description="The source asset identifier.", alias="baseAssetId")
+ base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
+ base_amount: StrictStr = Field(description="The amount of the base asset.", alias="baseAmount")
+ quote_amount: StrictStr = Field(description="The amount of the quote asset.", alias="quoteAmount")
+ price_impact: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The estimated price impact as a decimal fraction.", alias="priceImpact")
+ quote_min_amount: Optional[StrictStr] = Field(default=None, description="The minimum guaranteed amount of the quote asset.", alias="quoteMinAmount")
+ is_slippage_applied: Optional[StrictBool] = Field(default=False, description="Indicates if slippage was applied to the quote.", alias="isSlippageApplied")
+ execution_steps: Optional[List[QuoteExecutionStep]] = Field(default=None, description="Ordered list of execution steps for the quote.", alias="executionSteps")
+ general_fees: Optional[List[Fee]] = Field(default=None, description="General fees associated with the quote.", alias="generalFees")
side: Side
- expires_at: StrictStr = Field(description="The expiration time of the quote in ISO format.", alias="expiresAt")
- order_creation_requirements: Optional[StrictStr] = Field(default=None, description="A JSON Schema Draft-7 document in string format describing the fields required when creating an order for this quote. The schema mirrors the structure of CreateOrderRequest.participantsIdentification json schema, so clients can validate their order payload before sending. ", alias="orderCreationRequirements")
- __properties: ClassVar[List[str]] = ["via", "id", "quoteAssetId", "baseAssetId", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "executionSteps", "generalFees", "side", "expiresAt", "orderCreationRequirements"]
+ expires_at: StrictStr = Field(description="The expiration time of the quote in ISO 8601 format.", alias="expiresAt")
+ order_creation_requirements: Optional[StrictStr] = Field(default=None, description="A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending. ", alias="orderCreationRequirements")
+ type: StrictStr = Field(description="The type of the quote.")
+ offer_type: StrictStr = Field(description="The type of offer — QUOTE for executable committed quotes.", alias="offerType")
+ __properties: ClassVar[List[str]] = ["via", "id", "quoteAssetId", "quoteAssetRail", "baseAssetId", "baseAssetRail", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "isSlippageApplied", "executionSteps", "generalFees", "side", "expiresAt", "orderCreationRequirements", "type", "offerType"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['COMMITTED', 'INDICATIVE']):
+ raise ValueError("must be one of enum values ('COMMITTED', 'INDICATIVE')")
+ return value
+
+ @field_validator('offer_type')
+ def offer_type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['QUOTE']):
+ raise ValueError("must be one of enum values ('QUOTE')")
+ return value
model_config = ConfigDict(
populate_by_name=True,
@@ -64,7 +84,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of QuotePropertiesDetails from a JSON string"""
+ """Create an instance of QuoteOffer from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -106,7 +126,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of QuotePropertiesDetails from a dict"""
+ """Create an instance of QuoteOffer from a dict"""
if obj is None:
return None
@@ -117,16 +137,21 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None,
"id": obj.get("id"),
"quoteAssetId": obj.get("quoteAssetId"),
+ "quoteAssetRail": obj.get("quoteAssetRail"),
"baseAssetId": obj.get("baseAssetId"),
+ "baseAssetRail": obj.get("baseAssetRail"),
"baseAmount": obj.get("baseAmount"),
"quoteAmount": obj.get("quoteAmount"),
"priceImpact": obj.get("priceImpact"),
"quoteMinAmount": obj.get("quoteMinAmount"),
+ "isSlippageApplied": obj.get("isSlippageApplied") if obj.get("isSlippageApplied") is not None else False,
"executionSteps": [QuoteExecutionStep.from_dict(_item) for _item in obj["executionSteps"]] if obj.get("executionSteps") is not None else None,
"generalFees": [Fee.from_dict(_item) for _item in obj["generalFees"]] if obj.get("generalFees") is not None else None,
"side": obj.get("side"),
"expiresAt": obj.get("expiresAt"),
- "orderCreationRequirements": obj.get("orderCreationRequirements")
+ "orderCreationRequirements": obj.get("orderCreationRequirements"),
+ "type": obj.get("type"),
+ "offerType": obj.get("offerType")
})
return _obj
diff --git a/fireblocks/models/quote_offer_type.py b/fireblocks/models/quote_offer_type.py
new file mode 100644
index 00000000..0f241d8f
--- /dev/null
+++ b/fireblocks/models/quote_offer_type.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class QuoteOfferType(BaseModel):
+ """
+ QuoteOfferType
+ """ # noqa: E501
+ offer_type: StrictStr = Field(description="The type of offer — QUOTE for executable committed quotes.", alias="offerType")
+ __properties: ClassVar[List[str]] = ["offerType"]
+
+ @field_validator('offer_type')
+ def offer_type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['QUOTE']):
+ raise ValueError("must be one of enum values ('QUOTE')")
+ 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 QuoteOfferType 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 QuoteOfferType from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "offerType": obj.get("offerType")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/quotes_response.py b/fireblocks/models/quotes_response.py
index 363f71da..0d0608f6 100644
--- a/fireblocks/models/quotes_response.py
+++ b/fireblocks/models/quotes_response.py
@@ -21,7 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
from fireblocks.models.quote import Quote
-from fireblocks.models.quote_failure import QuoteFailure
+from fireblocks.models.scope_item_failure import ScopeItemFailure
from typing import Optional, Set
from typing_extensions import Self
@@ -30,7 +30,7 @@ class QuotesResponse(BaseModel):
QuotesResponse
""" # noqa: E501
quotes: List[Quote]
- quote_failures: List[QuoteFailure] = Field(description="List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed.", alias="quoteFailures")
+ quote_failures: List[ScopeItemFailure] = Field(description="List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed.", alias="quoteFailures")
__properties: ClassVar[List[str]] = ["quotes", "quoteFailures"]
model_config = ConfigDict(
@@ -99,7 +99,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"quotes": [Quote.from_dict(_item) for _item in obj["quotes"]] if obj.get("quotes") is not None else None,
- "quoteFailures": [QuoteFailure.from_dict(_item) for _item in obj["quoteFailures"]] if obj.get("quoteFailures") is not None else None
+ "quoteFailures": [ScopeItemFailure.from_dict(_item) for _item in obj["quoteFailures"]] if obj.get("quoteFailures") is not None else None
})
return _obj
diff --git a/fireblocks/models/rate.py b/fireblocks/models/rate.py
new file mode 100644
index 00000000..56888287
--- /dev/null
+++ b/fireblocks/models/rate.py
@@ -0,0 +1,111 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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 typing_extensions import Annotated
+from fireblocks.models.access_type import AccessType
+from fireblocks.models.transfer_rail import TransferRail
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Rate(BaseModel):
+ """
+ Rate
+ """ # noqa: E501
+ via: AccessType
+ base_asset_id: StrictStr = Field(description="The source asset identifier", alias="baseAssetId")
+ base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
+ quote_asset_id: StrictStr = Field(description="The target asset identifier", alias="quoteAssetId")
+ quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
+ rate: Annotated[str, Field(strict=True)] = Field(description="The indicative exchange rate — the number of units of the quote asset that equal 1 unit of the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD.")
+ __properties: ClassVar[List[str]] = ["via", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "rate"]
+
+ @field_validator('rate')
+ def rate_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^\d+(\.\d+)?$", value):
+ raise ValueError(r"must validate the regular expression /^\d+(\.\d+)?$/")
+ 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 Rate 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 via
+ if self.via:
+ _dict['via'] = self.via.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of Rate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None,
+ "baseAssetId": obj.get("baseAssetId"),
+ "baseAssetRail": obj.get("baseAssetRail"),
+ "quoteAssetId": obj.get("quoteAssetId"),
+ "quoteAssetRail": obj.get("quoteAssetRail"),
+ "rate": obj.get("rate")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/rate_offer.py b/fireblocks/models/rate_offer.py
new file mode 100644
index 00000000..92d96a0a
--- /dev/null
+++ b/fireblocks/models/rate_offer.py
@@ -0,0 +1,120 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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 typing_extensions import Annotated
+from fireblocks.models.access_type import AccessType
+from fireblocks.models.transfer_rail import TransferRail
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RateOffer(BaseModel):
+ """
+ RateOffer
+ """ # noqa: E501
+ via: AccessType
+ base_asset_id: StrictStr = Field(description="The source asset identifier", alias="baseAssetId")
+ base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail")
+ quote_asset_id: StrictStr = Field(description="The target asset identifier", alias="quoteAssetId")
+ quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail")
+ rate: Annotated[str, Field(strict=True)] = Field(description="The indicative exchange rate — the number of units of the quote asset that equal 1 unit of the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD.")
+ offer_type: StrictStr = Field(description="The type of offer — RATE for indicative pricing.", alias="offerType")
+ __properties: ClassVar[List[str]] = ["via", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "rate", "offerType"]
+
+ @field_validator('rate')
+ def rate_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if not re.match(r"^\d+(\.\d+)?$", value):
+ raise ValueError(r"must validate the regular expression /^\d+(\.\d+)?$/")
+ return value
+
+ @field_validator('offer_type')
+ def offer_type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['RATE']):
+ raise ValueError("must be one of enum values ('RATE')")
+ 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 RateOffer 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 via
+ if self.via:
+ _dict['via'] = self.via.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RateOffer from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None,
+ "baseAssetId": obj.get("baseAssetId"),
+ "baseAssetRail": obj.get("baseAssetRail"),
+ "quoteAssetId": obj.get("quoteAssetId"),
+ "quoteAssetRail": obj.get("quoteAssetRail"),
+ "rate": obj.get("rate"),
+ "offerType": obj.get("offerType")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/indicative_quote_type.py b/fireblocks/models/rate_offer_type.py
similarity index 76%
rename from fireblocks/models/indicative_quote_type.py
rename to fireblocks/models/rate_offer_type.py
index 9b8b3ded..9fd48262 100644
--- a/fireblocks/models/indicative_quote_type.py
+++ b/fireblocks/models/rate_offer_type.py
@@ -18,18 +18,24 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List
-from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum
from typing import Optional, Set
from typing_extensions import Self
-class IndicativeQuoteType(BaseModel):
+class RateOfferType(BaseModel):
"""
- IndicativeQuoteType
+ RateOfferType
""" # noqa: E501
- type: IndicativeQuoteEnum
- __properties: ClassVar[List[str]] = ["type"]
+ offer_type: StrictStr = Field(description="The type of offer — RATE for indicative pricing.", alias="offerType")
+ __properties: ClassVar[List[str]] = ["offerType"]
+
+ @field_validator('offer_type')
+ def offer_type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['RATE']):
+ raise ValueError("must be one of enum values ('RATE')")
+ return value
model_config = ConfigDict(
populate_by_name=True,
@@ -49,7 +55,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of IndicativeQuoteType from a JSON string"""
+ """Create an instance of RateOfferType from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -74,7 +80,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of IndicativeQuoteType from a dict"""
+ """Create an instance of RateOfferType from a dict"""
if obj is None:
return None
@@ -82,7 +88,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "type": obj.get("type")
+ "offerType": obj.get("offerType")
})
return _obj
diff --git a/fireblocks/models/rates_request.py b/fireblocks/models/rates_request.py
new file mode 100644
index 00000000..4ab6bf81
--- /dev/null
+++ b/fireblocks/models/rates_request.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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
+from typing_extensions import Annotated
+from fireblocks.models.scope_item import ScopeItem
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RatesRequest(BaseModel):
+ """
+ RatesRequest
+ """ # noqa: E501
+ scope: Annotated[List[ScopeItem], Field(min_length=1)] = Field(description="One or more providers/accounts to request rates from. At least one scope item is required.")
+ base_asset_id: StrictStr = Field(description="The source asset identifier.", alias="baseAssetId")
+ quote_asset_id: StrictStr = Field(description="The target asset identifier.", alias="quoteAssetId")
+ __properties: ClassVar[List[str]] = ["scope", "baseAssetId", "quoteAssetId"]
+
+ 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 RatesRequest 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 scope (list)
+ _items = []
+ if self.scope:
+ for _item_scope in self.scope:
+ if _item_scope:
+ _items.append(_item_scope.to_dict())
+ _dict['scope'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RatesRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "scope": [ScopeItem.from_dict(_item) for _item in obj["scope"]] if obj.get("scope") is not None else None,
+ "baseAssetId": obj.get("baseAssetId"),
+ "quoteAssetId": obj.get("quoteAssetId")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/rates_response.py b/fireblocks/models/rates_response.py
new file mode 100644
index 00000000..9e5b75af
--- /dev/null
+++ b/fireblocks/models/rates_response.py
@@ -0,0 +1,106 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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
+from typing import Any, ClassVar, Dict, List
+from fireblocks.models.rate import Rate
+from fireblocks.models.scope_item_failure import ScopeItemFailure
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RatesResponse(BaseModel):
+ """
+ RatesResponse
+ """ # noqa: E501
+ rates: List[Rate] = Field(description="List of indicative rates returned for the requested asset pair.")
+ errors: List[ScopeItemFailure] = Field(description="Partial failures encountered while requesting rates. Empty when all rate requests succeed.")
+ __properties: ClassVar[List[str]] = ["rates", "errors"]
+
+ 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 RatesResponse 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 rates (list)
+ _items = []
+ if self.rates:
+ for _item_rates in self.rates:
+ if _item_rates:
+ _items.append(_item_rates.to_dict())
+ _dict['rates'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in errors (list)
+ _items = []
+ if self.errors:
+ for _item_errors in self.errors:
+ if _item_errors:
+ _items.append(_item_errors.to_dict())
+ _dict['errors'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RatesResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "rates": [Rate.from_dict(_item) for _item in obj["rates"]] if obj.get("rates") is not None else None,
+ "errors": [ScopeItemFailure.from_dict(_item) for _item in obj["errors"]] if obj.get("errors") is not None else None
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/reason_for_payment_enum.py b/fireblocks/models/reason_for_payment_enum.py
new file mode 100644
index 00000000..f846591e
--- /dev/null
+++ b/fireblocks/models/reason_for_payment_enum.py
@@ -0,0 +1,66 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@fireblocks.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ReasonForPaymentEnum(str, Enum):
+ """
+ The reason or purpose of the payment. Used by providers (e.g. CPN) that require a categorical reason for cross-border payment compliance and reporting. Optional at the API level; runtime enforcement is handled by the calling service against the provider's requirements.
+ """
+
+ """
+ allowed enum values
+ """
+ INVOICE_PAYMENT = 'INVOICE_PAYMENT'
+ SERVICES_PAYMENT = 'SERVICES_PAYMENT'
+ SOFTWARE_PAYMENT = 'SOFTWARE_PAYMENT'
+ IMPORTED_GOODS_PAYMENT = 'IMPORTED_GOODS_PAYMENT'
+ TRAVEL_SERVICES = 'TRAVEL_SERVICES'
+ TRANSFER_TO_OWN_ACCOUNT = 'TRANSFER_TO_OWN_ACCOUNT'
+ LOAN_REPAYMENT = 'LOAN_REPAYMENT'
+ PAYROLL = 'PAYROLL'
+ PROPERTY_RENTAL = 'PROPERTY_RENTAL'
+ INFORMATION_SERVICE_CHARGES = 'INFORMATION_SERVICE_CHARGES'
+ ADVERTISING_AND_PUBLIC_RELATIONS = 'ADVERTISING_AND_PUBLIC_RELATIONS'
+ INTELLECTUAL_PROPERTY_FEES = 'INTELLECTUAL_PROPERTY_FEES'
+ FINANCIAL_SERVICE_FEES = 'FINANCIAL_SERVICE_FEES'
+ ADVISORY_AND_TECHNICAL_FEES = 'ADVISORY_AND_TECHNICAL_FEES'
+ REPRESENTATIVE_OFFICE_EXPENSES = 'REPRESENTATIVE_OFFICE_EXPENSES'
+ TAX_PAYMENT = 'TAX_PAYMENT'
+ GOODS_TRANSPORTATION_FEES = 'GOODS_TRANSPORTATION_FEES'
+ CONSTRUCTION_EXPENSES = 'CONSTRUCTION_EXPENSES'
+ INSURANCE_PREMIUM = 'INSURANCE_PREMIUM'
+ GENERAL_GOODS_TRADE = 'GENERAL_GOODS_TRADE'
+ INSURANCE_CLAIMS_PAYMENT = 'INSURANCE_CLAIMS_PAYMENT'
+ FAMILY_REMITTANCE = 'FAMILY_REMITTANCE'
+ EDUCATION_EXPENSES = 'EDUCATION_EXPENSES'
+ MEDICAL_TREATMENT = 'MEDICAL_TREATMENT'
+ DONATIONS = 'DONATIONS'
+ MUTUAL_FUND_INVESTMENT = 'MUTUAL_FUND_INVESTMENT'
+ CURRENCY_EXCHANGE = 'CURRENCY_EXCHANGE'
+ ADVANCE_GOODS_PAYMENT = 'ADVANCE_GOODS_PAYMENT'
+ MERCHANT_SETTLEMENT = 'MERCHANT_SETTLEMENT'
+ REPATRIATION_FUND_SETTLEMENT = 'REPATRIATION_FUND_SETTLEMENT'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ReasonForPaymentEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/fireblocks/models/quote_failure.py b/fireblocks/models/scope_item_failure.py
similarity index 89%
rename from fireblocks/models/quote_failure.py
rename to fireblocks/models/scope_item_failure.py
index 102d3958..75f475dc 100644
--- a/fireblocks/models/quote_failure.py
+++ b/fireblocks/models/scope_item_failure.py
@@ -24,12 +24,12 @@
from typing import Optional, Set
from typing_extensions import Self
-class QuoteFailure(BaseModel):
+class ScopeItemFailure(BaseModel):
"""
- QuoteFailure
+ ScopeItemFailure
""" # noqa: E501
- provider_id: StrictStr = Field(description="Identifier of the provider for which the quote request failed.", alias="providerId")
- account_id: Optional[StrictStr] = Field(default=None, description="Identifier of the account for which the quote request failed (optional).", alias="accountId")
+ provider_id: StrictStr = Field(description="Identifier of the provider for which the request failed.", alias="providerId")
+ account_id: Optional[StrictStr] = Field(default=None, description="Identifier of the account for which the request failed (optional).", alias="accountId")
error: TradingErrorSchema
__properties: ClassVar[List[str]] = ["providerId", "accountId", "error"]
@@ -51,7 +51,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of QuoteFailure from a JSON string"""
+ """Create an instance of ScopeItemFailure from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -79,7 +79,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of QuoteFailure from a dict"""
+ """Create an instance of ScopeItemFailure from a dict"""
if obj is None:
return None
diff --git a/fireblocks/models/source_of_funds.py b/fireblocks/models/source_of_funds.py
new file mode 100644
index 00000000..c79be68c
--- /dev/null
+++ b/fireblocks/models/source_of_funds.py
@@ -0,0 +1,89 @@
+# coding: utf-8
+
+"""
+ Fireblocks API
+
+ Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+ The version of the OpenAPI document: 1.6.2
+ Contact: developers@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
+from typing import Any, ClassVar, Dict, List, Optional
+from fireblocks.models.reason_for_payment_enum import ReasonForPaymentEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SourceOfFunds(BaseModel):
+ """
+ Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting (e.g. CPN cross-border payments).
+ """ # noqa: E501
+ reason_for_payment: Optional[ReasonForPaymentEnum] = Field(default=None, alias="reasonForPayment")
+ __properties: ClassVar[List[str]] = ["reasonForPayment"]
+
+ 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 SourceOfFunds 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 SourceOfFunds from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "reasonForPayment": obj.get("reasonForPayment")
+ })
+ return _obj
+
+
diff --git a/fireblocks/models/tr_link_create_customer_request.py b/fireblocks/models/tr_link_create_customer_request.py
index f77b2de2..f0360d11 100644
--- a/fireblocks/models/tr_link_create_customer_request.py
+++ b/fireblocks/models/tr_link_create_customer_request.py
@@ -35,10 +35,10 @@ class TRLinkCreateCustomerRequest(BaseModel):
full_legal_name: Optional[StrictStr] = Field(default=None, description="Full legal entity name", alias="fullLegalName")
geographic_address: Optional[TRLinkGeographicAddressRequest] = Field(default=None, alias="geographicAddress")
country_of_registration: Optional[StrictStr] = Field(default=None, description="ISO 3166-1 alpha-2 country code where the entity is registered", alias="countryOfRegistration")
- national_identification: Optional[StrictStr] = Field(default=None, description="National identification as JSON string", alias="nationalIdentification")
+ national_identification: Optional[StrictStr] = Field(default=None, description="National identification, sent as a JSON-encoded string. The server normalizes input into a compact JSON with these optional keys: `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the input is not a JSON object, it is wrapped as `{\"nationalIdentifier\":\"\"}`; if the value matches the LEI format, `nationalIdentifierType` is set to `LEIX` automatically and `countryOfIssue` defaults to this request's `countryOfRegistration` if not provided. The compacted JSON must be 240 characters or fewer. On read, the value is returned exactly as stored.", alias="nationalIdentification")
date_of_incorporation: Optional[date] = Field(default=None, description="Date of entity incorporation (ISO 8601 format: YYYY-MM-DD)", alias="dateOfIncorporation")
vaults: Optional[List[StrictInt]] = Field(default=None, description="Associated Fireblocks vault account IDs")
- tr_primary_purpose: Optional[StrictStr] = Field(default=None, description="Primary purpose for Travel Rule compliance (enum value)", alias="trPrimaryPurpose")
+ tr_primary_purpose: Optional[StrictStr] = Field(default='trlink', description="Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`.", alias="trPrimaryPurpose")
__properties: ClassVar[List[str]] = ["discoverable", "shortName", "fullLegalName", "geographicAddress", "countryOfRegistration", "nationalIdentification", "dateOfIncorporation", "vaults", "trPrimaryPurpose"]
model_config = ConfigDict(
@@ -118,11 +118,6 @@ def to_dict(self) -> Dict[str, Any]:
if self.vaults is None and "vaults" in self.model_fields_set:
_dict['vaults'] = None
- # set to None if tr_primary_purpose (nullable) is None
- # and model_fields_set contains the field
- if self.tr_primary_purpose is None and "tr_primary_purpose" in self.model_fields_set:
- _dict['trPrimaryPurpose'] = None
-
return _dict
@classmethod
@@ -143,7 +138,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"nationalIdentification": obj.get("nationalIdentification"),
"dateOfIncorporation": obj.get("dateOfIncorporation"),
"vaults": obj.get("vaults"),
- "trPrimaryPurpose": obj.get("trPrimaryPurpose")
+ "trPrimaryPurpose": obj.get("trPrimaryPurpose") if obj.get("trPrimaryPurpose") is not None else 'trlink'
})
return _obj
diff --git a/fireblocks/models/tr_link_customer_response.py b/fireblocks/models/tr_link_customer_response.py
index 7d00a290..1d86f441 100644
--- a/fireblocks/models/tr_link_customer_response.py
+++ b/fireblocks/models/tr_link_customer_response.py
@@ -31,19 +31,18 @@ class TRLinkCustomerResponse(BaseModel):
TRLinkCustomerResponse
""" # noqa: E501
id: StrictStr = Field(description="Customer unique identifier")
- tenant_id: StrictStr = Field(description="Fireblocks tenant ID", alias="tenantId")
discoverable: Optional[TRLinkDiscoverableStatus]
short_name: StrictStr = Field(description="Short display name", alias="shortName")
full_legal_name: StrictStr = Field(description="Full legal entity name", alias="fullLegalName")
geographic_address: Optional[TRLinkGeographicAddressRequest] = Field(default=None, alias="geographicAddress")
country_of_registration: StrictStr = Field(description="ISO 3166-1 alpha-2 country code where the entity is registered", alias="countryOfRegistration")
- national_identification: Optional[StrictStr] = Field(default=None, description="National identification (serialized as string)", alias="nationalIdentification")
+ national_identification: Optional[StrictStr] = Field(default=None, description="National identification, returned exactly as stored: a compact, whitespace-free JSON-encoded string with these optional keys (in this order): `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. Maximum length is 240 characters.", alias="nationalIdentification")
date_of_incorporation: Optional[date] = Field(default=None, description="Date of entity incorporation (ISO 8601 format)", alias="dateOfIncorporation")
vaults: Optional[List[StrictInt]] = Field(default=None, description="Associated Fireblocks vault account IDs")
- tr_primary_purpose: Optional[StrictStr] = Field(default=None, description="Primary purpose for Travel Rule compliance", alias="trPrimaryPurpose")
+ tr_primary_purpose: StrictStr = Field(description="Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`.", alias="trPrimaryPurpose")
create_date: datetime = Field(description="Timestamp when the customer was created (ISO 8601 format)", alias="createDate")
last_update: datetime = Field(description="Timestamp when the customer was last updated (ISO 8601 format)", alias="lastUpdate")
- __properties: ClassVar[List[str]] = ["id", "tenantId", "discoverable", "shortName", "fullLegalName", "geographicAddress", "countryOfRegistration", "nationalIdentification", "dateOfIncorporation", "vaults", "trPrimaryPurpose", "createDate", "lastUpdate"]
+ __properties: ClassVar[List[str]] = ["id", "discoverable", "shortName", "fullLegalName", "geographicAddress", "countryOfRegistration", "nationalIdentification", "dateOfIncorporation", "vaults", "trPrimaryPurpose", "createDate", "lastUpdate"]
model_config = ConfigDict(
populate_by_name=True,
@@ -112,11 +111,6 @@ def to_dict(self) -> Dict[str, Any]:
if self.vaults is None and "vaults" in self.model_fields_set:
_dict['vaults'] = None
- # set to None if tr_primary_purpose (nullable) is None
- # and model_fields_set contains the field
- if self.tr_primary_purpose is None and "tr_primary_purpose" in self.model_fields_set:
- _dict['trPrimaryPurpose'] = None
-
return _dict
@classmethod
@@ -130,7 +124,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"id": obj.get("id"),
- "tenantId": obj.get("tenantId"),
"discoverable": obj.get("discoverable"),
"shortName": obj.get("shortName"),
"fullLegalName": obj.get("fullLegalName"),
diff --git a/fireblocks/models/tr_link_update_customer_request.py b/fireblocks/models/tr_link_update_customer_request.py
index ca96725c..aae18ee0 100644
--- a/fireblocks/models/tr_link_update_customer_request.py
+++ b/fireblocks/models/tr_link_update_customer_request.py
@@ -31,14 +31,14 @@ class TRLinkUpdateCustomerRequest(BaseModel):
TRLinkUpdateCustomerRequest
""" # noqa: E501
discoverable: Optional[TRLinkDiscoverableStatus] = None
- short_name: Optional[StrictStr] = Field(default=None, description="Short display name", alias="shortName")
+ short_name: StrictStr = Field(description="Short display name (required)", alias="shortName")
full_legal_name: Optional[StrictStr] = Field(default=None, description="Full legal entity name", alias="fullLegalName")
geographic_address: Optional[TRLinkGeographicAddressRequest] = Field(default=None, alias="geographicAddress")
country_of_registration: Optional[StrictStr] = Field(default=None, description="ISO 3166-1 alpha-2 country code where the entity is registered", alias="countryOfRegistration")
- national_identification: Optional[StrictStr] = Field(default=None, description="National identification as JSON string", alias="nationalIdentification")
+ national_identification: Optional[StrictStr] = Field(default=None, description="National identification, sent as a JSON-encoded string. The server normalizes input into a compact JSON with these optional keys: `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. If the input is not a JSON object, it is wrapped as `{\"nationalIdentifier\":\"\"}`; if the value matches the LEI format, `nationalIdentifierType` is set to `LEIX` automatically and `countryOfIssue` defaults to this request's `countryOfRegistration` if not provided. The compacted JSON must be 240 characters or fewer. Omitting this field leaves the stored value unchanged; setting it to `null` clears it. On read, the value is returned exactly as stored.", alias="nationalIdentification")
date_of_incorporation: Optional[date] = Field(default=None, description="Date of entity incorporation (ISO 8601 format: YYYY-MM-DD)", alias="dateOfIncorporation")
vaults: Optional[List[StrictInt]] = Field(default=None, description="Associated Fireblocks vault account IDs")
- tr_primary_purpose: Optional[StrictStr] = Field(default=None, description="Primary purpose for Travel Rule compliance", alias="trPrimaryPurpose")
+ tr_primary_purpose: Optional[StrictStr] = Field(default=None, description="Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`. Omit the field to leave the stored value unchanged.", alias="trPrimaryPurpose")
__properties: ClassVar[List[str]] = ["discoverable", "shortName", "fullLegalName", "geographicAddress", "countryOfRegistration", "nationalIdentification", "dateOfIncorporation", "vaults", "trPrimaryPurpose"]
model_config = ConfigDict(
@@ -88,11 +88,6 @@ def to_dict(self) -> Dict[str, Any]:
if self.discoverable is None and "discoverable" in self.model_fields_set:
_dict['discoverable'] = None
- # set to None if short_name (nullable) is None
- # and model_fields_set contains the field
- if self.short_name is None and "short_name" in self.model_fields_set:
- _dict['shortName'] = None
-
# set to None if full_legal_name (nullable) is None
# and model_fields_set contains the field
if self.full_legal_name is None and "full_legal_name" in self.model_fields_set:
@@ -123,11 +118,6 @@ def to_dict(self) -> Dict[str, Any]:
if self.vaults is None and "vaults" in self.model_fields_set:
_dict['vaults'] = None
- # set to None if tr_primary_purpose (nullable) is None
- # and model_fields_set contains the field
- if self.tr_primary_purpose is None and "tr_primary_purpose" in self.model_fields_set:
- _dict['trPrimaryPurpose'] = None
-
return _dict
@classmethod
diff --git a/fireblocks/models/circle_gateway_wallet_info_response.py b/fireblocks/models/usdc_gateway_wallet_info_response.py
similarity index 87%
rename from fireblocks/models/circle_gateway_wallet_info_response.py
rename to fireblocks/models/usdc_gateway_wallet_info_response.py
index bdc3be81..f63685a7 100644
--- a/fireblocks/models/circle_gateway_wallet_info_response.py
+++ b/fireblocks/models/usdc_gateway_wallet_info_response.py
@@ -23,13 +23,13 @@
from typing import Optional, Set
from typing_extensions import Self
-class CircleGatewayWalletInfoResponse(BaseModel):
+class UsdcGatewayWalletInfoResponse(BaseModel):
"""
- CircleGatewayWalletInfoResponse
+ UsdcGatewayWalletInfoResponse
""" # noqa: E501
- wallet_id: StrictStr = Field(description="The Circle Gateway wallet identifier", alias="walletId")
- type: StrictStr = Field(description="The Circle Gateway provider identifier")
- status: StrictStr = Field(description="Current activation status of the Circle Gateway wallet")
+ wallet_id: StrictStr = Field(description="The USDC Gateway wallet identifier", alias="walletId")
+ type: StrictStr = Field(description="The USDC Gateway provider identifier")
+ status: StrictStr = Field(description="Current activation status of the USDC Gateway wallet")
symbol: StrictStr = Field(description="The token symbol supported by this wallet (e.g. USDC)")
asset_ids: List[StrictStr] = Field(description="Fireblocks asset IDs available for this wallet", alias="assetIds")
__properties: ClassVar[List[str]] = ["walletId", "type", "status", "symbol", "assetIds"]
@@ -59,7 +59,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of CircleGatewayWalletInfoResponse from a JSON string"""
+ """Create an instance of UsdcGatewayWalletInfoResponse from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -84,7 +84,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of CircleGatewayWalletInfoResponse from a dict"""
+ """Create an instance of UsdcGatewayWalletInfoResponse from a dict"""
if obj is None:
return None
diff --git a/fireblocks/models/circle_gateway_wallet_status_response.py b/fireblocks/models/usdc_gateway_wallet_status_response.py
similarity index 88%
rename from fireblocks/models/circle_gateway_wallet_status_response.py
rename to fireblocks/models/usdc_gateway_wallet_status_response.py
index 31307f2c..eed4af39 100644
--- a/fireblocks/models/circle_gateway_wallet_status_response.py
+++ b/fireblocks/models/usdc_gateway_wallet_status_response.py
@@ -23,12 +23,12 @@
from typing import Optional, Set
from typing_extensions import Self
-class CircleGatewayWalletStatusResponse(BaseModel):
+class UsdcGatewayWalletStatusResponse(BaseModel):
"""
- CircleGatewayWalletStatusResponse
+ UsdcGatewayWalletStatusResponse
""" # noqa: E501
- wallet_id: StrictStr = Field(description="The Circle Gateway wallet identifier", alias="walletId")
- status: StrictStr = Field(description="Current activation status of the Circle Gateway wallet")
+ wallet_id: StrictStr = Field(description="The USDC Gateway wallet identifier", alias="walletId")
+ status: StrictStr = Field(description="Current activation status of the USDC Gateway wallet")
__properties: ClassVar[List[str]] = ["walletId", "status"]
@field_validator('status')
@@ -56,7 +56,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of CircleGatewayWalletStatusResponse from a JSON string"""
+ """Create an instance of UsdcGatewayWalletStatusResponse from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -81,7 +81,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of CircleGatewayWalletStatusResponse from a dict"""
+ """Create an instance of UsdcGatewayWalletStatusResponse from a dict"""
if obj is None:
return None
diff --git a/fireblocks/models/utxo_selection_filters.py b/fireblocks/models/utxo_selection_filters.py
index 0e747bb0..713c1cf2 100644
--- a/fireblocks/models/utxo_selection_filters.py
+++ b/fireblocks/models/utxo_selection_filters.py
@@ -18,7 +18,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -33,9 +33,7 @@ class UtxoSelectionFilters(BaseModel):
address: Optional[StrictStr] = Field(default=None, description="Only include UTXOs from this specific address.")
min_amount: Optional[StrictStr] = Field(default=None, description="Minimum UTXO amount in the asset's base unit (e.g., BTC).", alias="minAmount")
max_amount: Optional[StrictStr] = Field(default=None, description="Maximum UTXO amount in the asset's base unit (e.g., BTC).", alias="maxAmount")
- use_change: Optional[StrictBool] = Field(default=None, description="Set to false to exclude change UTXOs. Default is true.", alias="useChange")
- use_coinbase: Optional[StrictBool] = Field(default=None, description="Set to false to exclude coinbase UTXOs. Default is true.", alias="useCoinbase")
- __properties: ClassVar[List[str]] = ["includeAllLabels", "includeAnyLabels", "excludeAnyLabels", "address", "minAmount", "maxAmount", "useChange", "useCoinbase"]
+ __properties: ClassVar[List[str]] = ["includeAllLabels", "includeAnyLabels", "excludeAnyLabels", "address", "minAmount", "maxAmount"]
model_config = ConfigDict(
populate_by_name=True,
@@ -93,9 +91,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"excludeAnyLabels": obj.get("excludeAnyLabels"),
"address": obj.get("address"),
"minAmount": obj.get("minAmount"),
- "maxAmount": obj.get("maxAmount"),
- "useChange": obj.get("useChange"),
- "useCoinbase": obj.get("useCoinbase")
+ "maxAmount": obj.get("maxAmount")
})
return _obj
diff --git a/fireblocks/models/utxo_selection_params.py b/fireblocks/models/utxo_selection_params.py
index 0c33305d..285e29e7 100644
--- a/fireblocks/models/utxo_selection_params.py
+++ b/fireblocks/models/utxo_selection_params.py
@@ -18,7 +18,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from fireblocks.models.utxo_input_selection import UtxoInputSelection
from fireblocks.models.utxo_selection_filters import UtxoSelectionFilters
@@ -29,9 +29,20 @@ class UtxoSelectionParams(BaseModel):
"""
For UTXO-based blockchains only. Controls which UTXOs are used for automatic selection. Cannot be used together with extraParameters.inputsSelection. This feature is currently in beta and might be subject to changes.
""" # noqa: E501
+ selection_strategy: Optional[StrictStr] = Field(default=None, description="Optional override for the UTXO selection strategy configured at the vault/tenant level. ", alias="selectionStrategy")
filters: Optional[UtxoSelectionFilters] = None
input_selection: Optional[UtxoInputSelection] = Field(default=None, alias="inputSelection")
- __properties: ClassVar[List[str]] = ["filters", "inputSelection"]
+ __properties: ClassVar[List[str]] = ["selectionStrategy", "filters", "inputSelection"]
+
+ @field_validator('selection_strategy')
+ def selection_strategy_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['AMOUNT_ASC', 'AMOUNT_DESC']):
+ raise ValueError("must be one of enum values ('AMOUNT_ASC', 'AMOUNT_DESC')")
+ return value
model_config = ConfigDict(
populate_by_name=True,
@@ -90,6 +101,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "selectionStrategy": obj.get("selectionStrategy"),
"filters": UtxoSelectionFilters.from_dict(obj["filters"]) if obj.get("filters") is not None else None,
"inputSelection": UtxoInputSelection.from_dict(obj["inputSelection"]) if obj.get("inputSelection") is not None else None
})
diff --git a/pyproject.toml b/pyproject.toml
index 94425d28..08a27f53 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fireblocks"
-version = "18.0.0"
+version = "0.0.0"
description = "Fireblocks API"
authors = ["Fireblocks "]
license = "MIT License"
diff --git a/setup.py b/setup.py
index dceecbc7..8e55f57b 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@
# prerequisite: setuptools
# http://pypi.python.org/pypi/setuptools
NAME = "fireblocks"
-VERSION = "18.0.0"
+VERSION = "0.0.0"
PYTHON_REQUIRES = ">= 3.8"
REQUIRES = [
"urllib3 >= 2.1.0, < 3.0.0",
diff --git a/test/fireblocks/test_client.py b/test/fireblocks/test_client.py
index 004f45ae..5acccccd 100644
--- a/test/fireblocks/test_client.py
+++ b/test/fireblocks/test_client.py
@@ -34,6 +34,7 @@
from fireblocks.api.external_wallets_api import ExternalWalletsApi
from fireblocks.api.fiat_accounts_api import FiatAccountsApi
from fireblocks.api.gas_stations_api import GasStationsApi
+from fireblocks.api.genie_beta_api import GenieBetaApi
from fireblocks.api.internal_wallets_api import InternalWalletsApi
from fireblocks.api.key_link_beta_api import KeyLinkBetaApi
from fireblocks.api.keys_beta_api import KeysBetaApi
@@ -132,6 +133,9 @@ def test_get_fiat_accounts(fireblocks_instance):
def test_get_gas_stations(fireblocks_instance):
assert isinstance(fireblocks_instance.gas_stations, GasStationsApi)
+def test_get_genie_beta(fireblocks_instance):
+ assert isinstance(fireblocks_instance.genie_beta, GenieBetaApi)
+
def test_get_internal_wallets(fireblocks_instance):
assert isinstance(fireblocks_instance.internal_wallets, InternalWalletsApi)
diff --git a/test/test_add_collateral_request_body.py b/test/test_add_collateral_request_body.py
index 10a2e925..e908f001 100644
--- a/test/test_add_collateral_request_body.py
+++ b/test/test_add_collateral_request_body.py
@@ -79,15 +79,14 @@ def make_instance(self, include_optional) -> AddCollateralRequestBody:
replace_tx_by_hash = '00000000-0000-0000-0000-000000000000',
extra_parameters = { },
utxo_selection_params = fireblocks.models.utxo_selection_params.UtxoSelectionParams(
+ selection_strategy = 'AMOUNT_ASC',
filters = fireblocks.models.utxo_selection_filters.UtxoSelectionFilters(
include_all_labels = ["cold-storage"],
include_any_labels = ["vip","high-value"],
exclude_any_labels = ["deprecated"],
address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
min_amount = '0.001',
- max_amount = '9.999',
- use_change = True,
- use_coinbase = True, ),
+ max_amount = '9.999', ),
input_selection = fireblocks.models.utxo_input_selection.UtxoInputSelection(
inputs_to_spend = [
fireblocks.models.utxo_input.UtxoInput(
diff --git a/test/test_address_reverse_lookup_response.py b/test/test_address_reverse_lookup_response.py
new file mode 100644
index 00000000..470e18f9
--- /dev/null
+++ b/test/test_address_reverse_lookup_response.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.address_reverse_lookup_response import (
+ AddressReverseLookupResponse,
+)
+
+
+class TestAddressReverseLookupResponse(unittest.TestCase):
+ """AddressReverseLookupResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AddressReverseLookupResponse:
+ """Test AddressReverseLookupResponse
+ include_optional 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 `AddressReverseLookupResponse`
+ """
+ model = AddressReverseLookupResponse()
+ if include_optional:
+ return AddressReverseLookupResponse(
+ address = '',
+ type = 'VAULT_ACCOUNT',
+ vault_account_id = '0',
+ blockchains = ["ETH","MATIC"]
+ )
+ else:
+ return AddressReverseLookupResponse(
+ address = '',
+ type = 'VAULT_ACCOUNT',
+ vault_account_id = '0',
+ blockchains = ["ETH","MATIC"],
+ )
+ """
+
+ def testAddressReverseLookupResponse(self):
+ """Test AddressReverseLookupResponse"""
+ # 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_committed_quote_type.py b/test/test_ars_config_response.py
similarity index 64%
rename from test/test_committed_quote_type.py
rename to test/test_ars_config_response.py
index e0839de2..ade0cadc 100644
--- a/test/test_committed_quote_type.py
+++ b/test/test_ars_config_response.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.committed_quote_type import CommittedQuoteType
+from fireblocks.models.ars_config_response import ArsConfigResponse
-class TestCommittedQuoteType(unittest.TestCase):
- """CommittedQuoteType unit test stubs"""
+class TestArsConfigResponse(unittest.TestCase):
+ """ArsConfigResponse unit test stubs"""
def setUp(self):
pass
@@ -27,26 +27,26 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> CommittedQuoteType:
- """Test CommittedQuoteType
+ def make_instance(self, include_optional) -> ArsConfigResponse:
+ """Test ArsConfigResponse
include_optional 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 `CommittedQuoteType`
+ # uncomment below to create an instance of `ArsConfigResponse`
"""
- model = CommittedQuoteType()
+ model = ArsConfigResponse()
if include_optional:
- return CommittedQuoteType(
- type = 'COMMITTED'
+ return ArsConfigResponse(
+ active = True,
+ last_update = '2026-01-29T12:00Z'
)
else:
- return CommittedQuoteType(
- type = 'COMMITTED',
+ return ArsConfigResponse(
)
"""
- def testCommittedQuoteType(self):
- """Test CommittedQuoteType"""
+ def testArsConfigResponse(self):
+ """Test ArsConfigResponse"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_compliance_api.py b/test/test_compliance_api.py
index 25ad98c1..edc4cbb9 100644
--- a/test/test_compliance_api.py
+++ b/test/test_compliance_api.py
@@ -27,6 +27,13 @@ def setUp(self) -> None:
def tearDown(self) -> None:
pass
+ def test_activate_ars_config(self) -> None:
+ """Test case for activate_ars_config
+
+ Activate ARS (Address Registry Screening)
+ """
+ pass
+
def test_activate_byork_config(self) -> None:
"""Test case for activate_byork_config
@@ -55,6 +62,13 @@ def test_create_counterparty_group(self) -> None:
"""
pass
+ def test_deactivate_ars_config(self) -> None:
+ """Test case for deactivate_ars_config
+
+ Deactivate ARS (Address Registry Screening)
+ """
+ pass
+
def test_deactivate_byork_config(self) -> None:
"""Test case for deactivate_byork_config
@@ -219,7 +233,7 @@ def test_remove_all_address_registry_vault_opt_outs(self) -> None:
def test_retry_rejected_transaction_bypass_screening_checks(self) -> None:
"""Test case for retry_rejected_transaction_bypass_screening_checks
- Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check
+ Bypass Screening Policy
"""
pass
diff --git a/test/test_create_offers_request.py b/test/test_create_offers_request.py
new file mode 100644
index 00000000..1a3b37bf
--- /dev/null
+++ b/test/test_create_offers_request.py
@@ -0,0 +1,65 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.create_offers_request import CreateOffersRequest
+
+
+class TestCreateOffersRequest(unittest.TestCase):
+ """CreateOffersRequest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CreateOffersRequest:
+ """Test CreateOffersRequest
+ include_optional 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 `CreateOffersRequest`
+ """
+ model = CreateOffersRequest()
+ if include_optional:
+ return CreateOffersRequest(
+ base_asset_id = 'BTC',
+ base_asset_rail = 'BLOCKCHAIN',
+ quote_asset_id = 'USD',
+ quote_asset_rail = 'BLOCKCHAIN',
+ base_amount = '100.00',
+ slippage_bps = 1,
+ settlement = {"type":"DVP","sourceAccount":{"type":"VAULT_ACCOUNT","id":"vault_acc_3f7e1d9b2c5a8e4f"},"destinationAccount":{"type":"VAULT_ACCOUNT","id":"vault_acc_7b2e5d8f1c4a9e3b"}},
+ side = 'BUY'
+ )
+ else:
+ return CreateOffersRequest(
+ base_asset_id = 'BTC',
+ quote_asset_id = 'USD',
+ base_amount = '100.00',
+ side = 'BUY',
+ )
+ """
+
+ def testCreateOffersRequest(self):
+ """Test CreateOffersRequest"""
+ # 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_create_order_request.py b/test/test_create_order_request.py
index f1eb7210..e7729fd7 100644
--- a/test/test_create_order_request.py
+++ b/test/test_create_order_request.py
@@ -41,6 +41,7 @@ def make_instance(self, include_optional) -> CreateOrderRequest:
execution_request_details = None,
settlement = None,
participants_identification = {"originator":{"externalReferenceId":"user_123456","entityType":"INDIVIDUAL","participantRelationshipType":"FirstParty","fullName":{"firstName":"John","lastName":"Smith"},"dateOfBirth":"1985-03-15","email":"john.smith@example.com","phone":"+14155551234","postalAddress":{"streetName":"Main Street","buildingNumber":"123","postalCode":"10001","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}},"beneficiary":{"externalReferenceId":"user_789012","entityType":"INDIVIDUAL","participantRelationshipType":"ThirdParty","fullName":{"firstName":"Alice","lastName":"Johnson"},"dateOfBirth":"1990-07-22","email":"alice.johnson@example.com","phone":"+14155551234","postalAddress":{"streetName":"Broadway","buildingNumber":"456","postalCode":"10002","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}}},
+ source_of_funds = {"reasonForPayment":"INVOICE_PAYMENT"},
customer_internal_reference_id = '',
note = ''
)
diff --git a/test/test_quote_type_enum.py b/test/test_genie_beta_api.py
similarity index 55%
rename from test/test_quote_type_enum.py
rename to test/test_genie_beta_api.py
index e5177b48..a8396092 100644
--- a/test/test_quote_type_enum.py
+++ b/test/test_genie_beta_api.py
@@ -15,21 +15,31 @@
import unittest
-from fireblocks.models.quote_type_enum import QuoteTypeEnum
+from fireblocks.api.genie_beta_api import GenieBetaApi
-class TestQuoteTypeEnum(unittest.TestCase):
- """QuoteTypeEnum unit test stubs"""
+class TestGenieBetaApi(unittest.TestCase):
+ """GenieBetaApi unit test stubs"""
- def setUp(self):
+ def setUp(self) -> None:
+ self.api = GenieBetaApi()
+
+ def tearDown(self) -> None:
pass
- def tearDown(self):
+ def test_create_genie_session(self) -> None:
+ """Test case for create_genie_session
+
+ Create a Genie session
+ """
pass
- def testQuoteTypeEnum(self):
- """Test QuoteTypeEnum"""
- # inst = QuoteTypeEnum()
+ def test_send_genie_message(self) -> None:
+ """Test case for send_genie_message
+
+ Send a message to a Genie session
+ """
+ pass
if __name__ == "__main__":
diff --git a/test/test_genie_chat_message.py b/test/test_genie_chat_message.py
new file mode 100644
index 00000000..63b255af
--- /dev/null
+++ b/test/test_genie_chat_message.py
@@ -0,0 +1,62 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.genie_chat_message import GenieChatMessage
+
+
+class TestGenieChatMessage(unittest.TestCase):
+ """GenieChatMessage unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GenieChatMessage:
+ """Test GenieChatMessage
+ include_optional 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 `GenieChatMessage`
+ """
+ model = GenieChatMessage()
+ if include_optional:
+ return GenieChatMessage(
+ id = '0a237534-399f-4487-a869-72567b71511a',
+ session_id = '7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a',
+ role = 'ASSISTANT',
+ content = 'The latest balance on the BTC vault is 0.4231 BTC.',
+ created_at = 1735603200000
+ )
+ else:
+ return GenieChatMessage(
+ id = '0a237534-399f-4487-a869-72567b71511a',
+ session_id = '7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a',
+ role = 'ASSISTANT',
+ content = 'The latest balance on the BTC vault is 0.4231 BTC.',
+ )
+ """
+
+ def testGenieChatMessage(self):
+ """Test GenieChatMessage"""
+ # 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_genie_create_session_response.py b/test/test_genie_create_session_response.py
new file mode 100644
index 00000000..b9d04df1
--- /dev/null
+++ b/test/test_genie_create_session_response.py
@@ -0,0 +1,57 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.genie_create_session_response import GenieCreateSessionResponse
+
+
+class TestGenieCreateSessionResponse(unittest.TestCase):
+ """GenieCreateSessionResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GenieCreateSessionResponse:
+ """Test GenieCreateSessionResponse
+ include_optional 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 `GenieCreateSessionResponse`
+ """
+ model = GenieCreateSessionResponse()
+ if include_optional:
+ return GenieCreateSessionResponse(
+ id = '7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a',
+ created_at = 1735603200000,
+ title = 'Vault balance overview'
+ )
+ else:
+ return GenieCreateSessionResponse(
+ id = '7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a',
+ )
+ """
+
+ def testGenieCreateSessionResponse(self):
+ """Test GenieCreateSessionResponse"""
+ # 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_genie_send_message_request.py b/test/test_genie_send_message_request.py
new file mode 100644
index 00000000..c221f2d0
--- /dev/null
+++ b/test/test_genie_send_message_request.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.genie_send_message_request import GenieSendMessageRequest
+
+
+class TestGenieSendMessageRequest(unittest.TestCase):
+ """GenieSendMessageRequest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GenieSendMessageRequest:
+ """Test GenieSendMessageRequest
+ include_optional 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 `GenieSendMessageRequest`
+ """
+ model = GenieSendMessageRequest()
+ if include_optional:
+ return GenieSendMessageRequest(
+ content = 'What is the latest balance on my BTC vault?'
+ )
+ else:
+ return GenieSendMessageRequest(
+ content = 'What is the latest balance on my BTC vault?',
+ )
+ """
+
+ def testGenieSendMessageRequest(self):
+ """Test GenieSendMessageRequest"""
+ # 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_offer.py b/test/test_offer.py
new file mode 100644
index 00000000..6965fdf1
--- /dev/null
+++ b/test/test_offer.py
@@ -0,0 +1,87 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.offer import Offer
+
+
+class TestOffer(unittest.TestCase):
+ """Offer unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> Offer:
+ """Test Offer
+ include_optional 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 `Offer`
+ """
+ model = Offer()
+ if include_optional:
+ return Offer(
+ via = None,
+ base_asset_id = 'BTC',
+ base_asset_rail = 'BLOCKCHAIN',
+ quote_asset_id = 'USD',
+ quote_asset_rail = 'BLOCKCHAIN',
+ rate = '1.2345',
+ offer_type = 'QUOTE',
+ id = 'quote_8f2e4d1a9c5b7e3f',
+ base_amount = '1000.00',
+ quote_amount = '0.02458',
+ price_impact = 0.005,
+ quote_min_amount = '0.02450',
+ is_slippage_applied = True,
+ execution_steps = [
+ {"type":"MARKET_EXECUTION","fee":{"feeType":"ORDER","assetId":"USD","amountType":"FIXED","amount":"2.50"}}
+ ],
+ general_fees = [
+ null
+ ],
+ side = 'BUY',
+ expires_at = '2024-01-15T10:35:00.000Z',
+ order_creation_requirements = '',
+ type = 'COMMITTED'
+ )
+ else:
+ return Offer(
+ via = None,
+ base_asset_id = 'BTC',
+ quote_asset_id = 'USD',
+ rate = '1.2345',
+ offer_type = 'QUOTE',
+ id = 'quote_8f2e4d1a9c5b7e3f',
+ base_amount = '1000.00',
+ quote_amount = '0.02458',
+ side = 'BUY',
+ expires_at = '2024-01-15T10:35:00.000Z',
+ type = 'COMMITTED',
+ )
+ """
+
+ def testOffer(self):
+ """Test Offer"""
+ # 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_offers_response.py b/test/test_offers_response.py
new file mode 100644
index 00000000..7dc0d1a5
--- /dev/null
+++ b/test/test_offers_response.py
@@ -0,0 +1,71 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.offers_response import OffersResponse
+
+
+class TestOffersResponse(unittest.TestCase):
+ """OffersResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OffersResponse:
+ """Test OffersResponse
+ include_optional 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 `OffersResponse`
+ """
+ model = OffersResponse()
+ if include_optional:
+ return OffersResponse(
+ offers = [
+ null
+ ],
+ errors = [
+ fireblocks.models.scope_item_failure.ScopeItemFailure(
+ provider_id = 'BRIDGE',
+ account_id = 'acc_9f4e2d8b1c6a5e73',
+ error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, )
+ ]
+ )
+ else:
+ return OffersResponse(
+ offers = [
+ null
+ ],
+ errors = [
+ fireblocks.models.scope_item_failure.ScopeItemFailure(
+ provider_id = 'BRIDGE',
+ account_id = 'acc_9f4e2d8b1c6a5e73',
+ error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, )
+ ],
+ )
+ """
+
+ def testOffersResponse(self):
+ """Test OffersResponse"""
+ # 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_quote.py b/test/test_quote.py
index 8a33db4f..8edea834 100644
--- a/test/test_quote.py
+++ b/test/test_quote.py
@@ -38,13 +38,16 @@ def make_instance(self, include_optional) -> Quote:
if include_optional:
return Quote(
via = None,
- id = '',
- quote_asset_id = '',
- base_asset_id = '',
- base_amount = '',
- quote_amount = '',
- price_impact = 1.337,
- quote_min_amount = '',
+ id = 'quote_8f2e4d1a9c5b7e3f',
+ quote_asset_id = 'USD',
+ quote_asset_rail = 'BLOCKCHAIN',
+ base_asset_id = 'BTC',
+ base_asset_rail = 'BLOCKCHAIN',
+ base_amount = '1000.00',
+ quote_amount = '0.02458',
+ price_impact = 0.005,
+ quote_min_amount = '0.02450',
+ is_slippage_applied = True,
execution_steps = [
{"type":"MARKET_EXECUTION","fee":{"feeType":"ORDER","assetId":"USD","amountType":"FIXED","amount":"2.50"}}
],
@@ -52,21 +55,21 @@ def make_instance(self, include_optional) -> Quote:
null
],
side = 'BUY',
- expires_at = '',
+ expires_at = '2024-01-15T10:35:00.000Z',
order_creation_requirements = '',
- type = 'INDICATIVE'
+ type = 'COMMITTED'
)
else:
return Quote(
via = None,
- id = '',
- quote_asset_id = '',
- base_asset_id = '',
- base_amount = '',
- quote_amount = '',
+ id = 'quote_8f2e4d1a9c5b7e3f',
+ quote_asset_id = 'USD',
+ base_asset_id = 'BTC',
+ base_amount = '1000.00',
+ quote_amount = '0.02458',
side = 'BUY',
- expires_at = '',
- type = 'INDICATIVE',
+ expires_at = '2024-01-15T10:35:00.000Z',
+ type = 'COMMITTED',
)
"""
diff --git a/test/test_indicative_quote_enum.py b/test/test_quote_execution_type_enum.py
similarity index 69%
rename from test/test_indicative_quote_enum.py
rename to test/test_quote_execution_type_enum.py
index 73bd207d..ea16291b 100644
--- a/test/test_indicative_quote_enum.py
+++ b/test/test_quote_execution_type_enum.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum
+from fireblocks.models.quote_execution_type_enum import QuoteExecutionTypeEnum
-class TestIndicativeQuoteEnum(unittest.TestCase):
- """IndicativeQuoteEnum unit test stubs"""
+class TestQuoteExecutionTypeEnum(unittest.TestCase):
+ """QuoteExecutionTypeEnum unit test stubs"""
def setUp(self):
pass
@@ -27,9 +27,9 @@ def setUp(self):
def tearDown(self):
pass
- def testIndicativeQuoteEnum(self):
- """Test IndicativeQuoteEnum"""
- # inst = IndicativeQuoteEnum()
+ def testQuoteExecutionTypeEnum(self):
+ """Test QuoteExecutionTypeEnum"""
+ # inst = QuoteExecutionTypeEnum()
if __name__ == "__main__":
diff --git a/test/test_quote_properties_details.py b/test/test_quote_offer.py
similarity index 51%
rename from test/test_quote_properties_details.py
rename to test/test_quote_offer.py
index 12151101..f7ebdb3d 100644
--- a/test/test_quote_properties_details.py
+++ b/test/test_quote_offer.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.quote_properties_details import QuotePropertiesDetails
+from fireblocks.models.quote_offer import QuoteOffer
-class TestQuotePropertiesDetails(unittest.TestCase):
- """QuotePropertiesDetails unit test stubs"""
+class TestQuoteOffer(unittest.TestCase):
+ """QuoteOffer unit test stubs"""
def setUp(self):
pass
@@ -27,24 +27,27 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> QuotePropertiesDetails:
- """Test QuotePropertiesDetails
+ def make_instance(self, include_optional) -> QuoteOffer:
+ """Test QuoteOffer
include_optional 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 `QuotePropertiesDetails`
+ # uncomment below to create an instance of `QuoteOffer`
"""
- model = QuotePropertiesDetails()
+ model = QuoteOffer()
if include_optional:
- return QuotePropertiesDetails(
+ return QuoteOffer(
via = None,
- id = '',
- quote_asset_id = '',
- base_asset_id = '',
- base_amount = '',
- quote_amount = '',
- price_impact = 1.337,
- quote_min_amount = '',
+ id = 'quote_8f2e4d1a9c5b7e3f',
+ quote_asset_id = 'USD',
+ quote_asset_rail = 'BLOCKCHAIN',
+ base_asset_id = 'BTC',
+ base_asset_rail = 'BLOCKCHAIN',
+ base_amount = '1000.00',
+ quote_amount = '0.02458',
+ price_impact = 0.005,
+ quote_min_amount = '0.02450',
+ is_slippage_applied = True,
execution_steps = [
{"type":"MARKET_EXECUTION","fee":{"feeType":"ORDER","assetId":"USD","amountType":"FIXED","amount":"2.50"}}
],
@@ -52,24 +55,28 @@ def make_instance(self, include_optional) -> QuotePropertiesDetails:
null
],
side = 'BUY',
- expires_at = '',
- order_creation_requirements = ''
+ expires_at = '2024-01-15T10:35:00.000Z',
+ order_creation_requirements = '',
+ type = 'COMMITTED',
+ offer_type = 'QUOTE'
)
else:
- return QuotePropertiesDetails(
+ return QuoteOffer(
via = None,
- id = '',
- quote_asset_id = '',
- base_asset_id = '',
- base_amount = '',
- quote_amount = '',
+ id = 'quote_8f2e4d1a9c5b7e3f',
+ quote_asset_id = 'USD',
+ base_asset_id = 'BTC',
+ base_amount = '1000.00',
+ quote_amount = '0.02458',
side = 'BUY',
- expires_at = '',
+ expires_at = '2024-01-15T10:35:00.000Z',
+ type = 'COMMITTED',
+ offer_type = 'QUOTE',
)
"""
- def testQuotePropertiesDetails(self):
- """Test QuotePropertiesDetails"""
+ def testQuoteOffer(self):
+ """Test QuoteOffer"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_indicative_quote_type.py b/test/test_quote_offer_type.py
similarity index 64%
rename from test/test_indicative_quote_type.py
rename to test/test_quote_offer_type.py
index a8c96f13..ddfbb332 100644
--- a/test/test_indicative_quote_type.py
+++ b/test/test_quote_offer_type.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.indicative_quote_type import IndicativeQuoteType
+from fireblocks.models.quote_offer_type import QuoteOfferType
-class TestIndicativeQuoteType(unittest.TestCase):
- """IndicativeQuoteType unit test stubs"""
+class TestQuoteOfferType(unittest.TestCase):
+ """QuoteOfferType unit test stubs"""
def setUp(self):
pass
@@ -27,26 +27,26 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> IndicativeQuoteType:
- """Test IndicativeQuoteType
+ def make_instance(self, include_optional) -> QuoteOfferType:
+ """Test QuoteOfferType
include_optional 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 `IndicativeQuoteType`
+ # uncomment below to create an instance of `QuoteOfferType`
"""
- model = IndicativeQuoteType()
+ model = QuoteOfferType()
if include_optional:
- return IndicativeQuoteType(
- type = 'INDICATIVE'
+ return QuoteOfferType(
+ offer_type = 'QUOTE'
)
else:
- return IndicativeQuoteType(
- type = 'INDICATIVE',
+ return QuoteOfferType(
+ offer_type = 'QUOTE',
)
"""
- def testIndicativeQuoteType(self):
- """Test IndicativeQuoteType"""
+ def testQuoteOfferType(self):
+ """Test QuoteOfferType"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_quotes_response.py b/test/test_quotes_response.py
index 1495f403..d348aab7 100644
--- a/test/test_quotes_response.py
+++ b/test/test_quotes_response.py
@@ -38,10 +38,31 @@ def make_instance(self, include_optional) -> QuotesResponse:
if include_optional:
return QuotesResponse(
quotes = [
- null
+ fireblocks.models.quote.Quote(
+ via = null,
+ id = 'quote_8f2e4d1a9c5b7e3f',
+ quote_asset_id = 'USD',
+ quote_asset_rail = 'BLOCKCHAIN',
+ base_asset_id = 'BTC',
+ base_asset_rail = 'BLOCKCHAIN',
+ base_amount = '1000.00',
+ quote_amount = '0.02458',
+ price_impact = 0.005,
+ quote_min_amount = '0.02450',
+ is_slippage_applied = True,
+ execution_steps = [
+ {"type":"MARKET_EXECUTION","fee":{"feeType":"ORDER","assetId":"USD","amountType":"FIXED","amount":"2.50"}}
+ ],
+ general_fees = [
+ null
+ ],
+ side = 'BUY',
+ expires_at = '2024-01-15T10:35:00.000Z',
+ order_creation_requirements = '',
+ type = 'COMMITTED', )
],
quote_failures = [
- fireblocks.models.quote_failure.QuoteFailure(
+ fireblocks.models.scope_item_failure.ScopeItemFailure(
provider_id = 'BRIDGE',
account_id = 'acc_9f4e2d8b1c6a5e73',
error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, )
@@ -50,10 +71,31 @@ def make_instance(self, include_optional) -> QuotesResponse:
else:
return QuotesResponse(
quotes = [
- null
+ fireblocks.models.quote.Quote(
+ via = null,
+ id = 'quote_8f2e4d1a9c5b7e3f',
+ quote_asset_id = 'USD',
+ quote_asset_rail = 'BLOCKCHAIN',
+ base_asset_id = 'BTC',
+ base_asset_rail = 'BLOCKCHAIN',
+ base_amount = '1000.00',
+ quote_amount = '0.02458',
+ price_impact = 0.005,
+ quote_min_amount = '0.02450',
+ is_slippage_applied = True,
+ execution_steps = [
+ {"type":"MARKET_EXECUTION","fee":{"feeType":"ORDER","assetId":"USD","amountType":"FIXED","amount":"2.50"}}
+ ],
+ general_fees = [
+ null
+ ],
+ side = 'BUY',
+ expires_at = '2024-01-15T10:35:00.000Z',
+ order_creation_requirements = '',
+ type = 'COMMITTED', )
],
quote_failures = [
- fireblocks.models.quote_failure.QuoteFailure(
+ fireblocks.models.scope_item_failure.ScopeItemFailure(
provider_id = 'BRIDGE',
account_id = 'acc_9f4e2d8b1c6a5e73',
error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, )
diff --git a/test/test_rate.py b/test/test_rate.py
new file mode 100644
index 00000000..6b91cc5e
--- /dev/null
+++ b/test/test_rate.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.rate import Rate
+
+
+class TestRate(unittest.TestCase):
+ """Rate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> Rate:
+ """Test Rate
+ include_optional 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 `Rate`
+ """
+ model = Rate()
+ if include_optional:
+ return Rate(
+ via = None,
+ base_asset_id = '',
+ base_asset_rail = 'BLOCKCHAIN',
+ quote_asset_id = '',
+ quote_asset_rail = 'BLOCKCHAIN',
+ rate = '1.2345'
+ )
+ else:
+ return Rate(
+ via = None,
+ base_asset_id = '',
+ quote_asset_id = '',
+ rate = '1.2345',
+ )
+ """
+
+ def testRate(self):
+ """Test Rate"""
+ # 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_rate_offer.py b/test/test_rate_offer.py
new file mode 100644
index 00000000..c5c2e623
--- /dev/null
+++ b/test/test_rate_offer.py
@@ -0,0 +1,65 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.rate_offer import RateOffer
+
+
+class TestRateOffer(unittest.TestCase):
+ """RateOffer unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> RateOffer:
+ """Test RateOffer
+ include_optional 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 `RateOffer`
+ """
+ model = RateOffer()
+ if include_optional:
+ return RateOffer(
+ via = None,
+ base_asset_id = '',
+ base_asset_rail = 'BLOCKCHAIN',
+ quote_asset_id = '',
+ quote_asset_rail = 'BLOCKCHAIN',
+ rate = '1.2345',
+ offer_type = 'RATE'
+ )
+ else:
+ return RateOffer(
+ via = None,
+ base_asset_id = '',
+ quote_asset_id = '',
+ rate = '1.2345',
+ offer_type = 'RATE',
+ )
+ """
+
+ def testRateOffer(self):
+ """Test RateOffer"""
+ # 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_rate_offer_type.py b/test/test_rate_offer_type.py
new file mode 100644
index 00000000..56d47d5b
--- /dev/null
+++ b/test/test_rate_offer_type.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.rate_offer_type import RateOfferType
+
+
+class TestRateOfferType(unittest.TestCase):
+ """RateOfferType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> RateOfferType:
+ """Test RateOfferType
+ include_optional 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 `RateOfferType`
+ """
+ model = RateOfferType()
+ if include_optional:
+ return RateOfferType(
+ offer_type = 'RATE'
+ )
+ else:
+ return RateOfferType(
+ offer_type = 'RATE',
+ )
+ """
+
+ def testRateOfferType(self):
+ """Test RateOfferType"""
+ # 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_rates_request.py b/test/test_rates_request.py
new file mode 100644
index 00000000..4785ff91
--- /dev/null
+++ b/test/test_rates_request.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.rates_request import RatesRequest
+
+
+class TestRatesRequest(unittest.TestCase):
+ """RatesRequest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> RatesRequest:
+ """Test RatesRequest
+ include_optional 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 `RatesRequest`
+ """
+ model = RatesRequest()
+ if include_optional:
+ return RatesRequest(
+ scope = [
+ {"providerId":"prov_8c3f1a4b2d6e9f7c","accountId":"acc_5e9a2d1c4b7f3e8a"}
+ ],
+ base_asset_id = 'BTC',
+ quote_asset_id = 'USD'
+ )
+ else:
+ return RatesRequest(
+ scope = [
+ {"providerId":"prov_8c3f1a4b2d6e9f7c","accountId":"acc_5e9a2d1c4b7f3e8a"}
+ ],
+ base_asset_id = 'BTC',
+ quote_asset_id = 'USD',
+ )
+ """
+
+ def testRatesRequest(self):
+ """Test RatesRequest"""
+ # 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_rates_response.py b/test/test_rates_response.py
new file mode 100644
index 00000000..9d1a5421
--- /dev/null
+++ b/test/test_rates_response.py
@@ -0,0 +1,83 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.rates_response import RatesResponse
+
+
+class TestRatesResponse(unittest.TestCase):
+ """RatesResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> RatesResponse:
+ """Test RatesResponse
+ include_optional 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 `RatesResponse`
+ """
+ model = RatesResponse()
+ if include_optional:
+ return RatesResponse(
+ rates = [
+ fireblocks.models.rate.Rate(
+ via = null,
+ base_asset_id = '',
+ base_asset_rail = 'BLOCKCHAIN',
+ quote_asset_id = '',
+ quote_asset_rail = 'BLOCKCHAIN',
+ rate = '1.2345', )
+ ],
+ errors = [
+ fireblocks.models.scope_item_failure.ScopeItemFailure(
+ provider_id = 'BRIDGE',
+ account_id = 'acc_9f4e2d8b1c6a5e73',
+ error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, )
+ ]
+ )
+ else:
+ return RatesResponse(
+ rates = [
+ fireblocks.models.rate.Rate(
+ via = null,
+ base_asset_id = '',
+ base_asset_rail = 'BLOCKCHAIN',
+ quote_asset_id = '',
+ quote_asset_rail = 'BLOCKCHAIN',
+ rate = '1.2345', )
+ ],
+ errors = [
+ fireblocks.models.scope_item_failure.ScopeItemFailure(
+ provider_id = 'BRIDGE',
+ account_id = 'acc_9f4e2d8b1c6a5e73',
+ error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, )
+ ],
+ )
+ """
+
+ def testRatesResponse(self):
+ """Test RatesResponse"""
+ # 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_committed_quote_enum.py b/test/test_reason_for_payment_enum.py
similarity index 70%
rename from test/test_committed_quote_enum.py
rename to test/test_reason_for_payment_enum.py
index a67fb438..9219697b 100644
--- a/test/test_committed_quote_enum.py
+++ b/test/test_reason_for_payment_enum.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.committed_quote_enum import CommittedQuoteEnum
+from fireblocks.models.reason_for_payment_enum import ReasonForPaymentEnum
-class TestCommittedQuoteEnum(unittest.TestCase):
- """CommittedQuoteEnum unit test stubs"""
+class TestReasonForPaymentEnum(unittest.TestCase):
+ """ReasonForPaymentEnum unit test stubs"""
def setUp(self):
pass
@@ -27,9 +27,9 @@ def setUp(self):
def tearDown(self):
pass
- def testCommittedQuoteEnum(self):
- """Test CommittedQuoteEnum"""
- # inst = CommittedQuoteEnum()
+ def testReasonForPaymentEnum(self):
+ """Test ReasonForPaymentEnum"""
+ # inst = ReasonForPaymentEnum()
if __name__ == "__main__":
diff --git a/test/test_remove_collateral_request_body.py b/test/test_remove_collateral_request_body.py
index d50cef6b..365f77a7 100644
--- a/test/test_remove_collateral_request_body.py
+++ b/test/test_remove_collateral_request_body.py
@@ -79,15 +79,14 @@ def make_instance(self, include_optional) -> RemoveCollateralRequestBody:
replace_tx_by_hash = '00000000-0000-0000-0000-000000000000',
extra_parameters = { },
utxo_selection_params = fireblocks.models.utxo_selection_params.UtxoSelectionParams(
+ selection_strategy = 'AMOUNT_ASC',
filters = fireblocks.models.utxo_selection_filters.UtxoSelectionFilters(
include_all_labels = ["cold-storage"],
include_any_labels = ["vip","high-value"],
exclude_any_labels = ["deprecated"],
address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
min_amount = '0.001',
- max_amount = '9.999',
- use_change = True,
- use_coinbase = True, ),
+ max_amount = '9.999', ),
input_selection = fireblocks.models.utxo_input_selection.UtxoInputSelection(
inputs_to_spend = [
fireblocks.models.utxo_input.UtxoInput(
diff --git a/test/test_quote_failure.py b/test/test_scope_item_failure.py
similarity index 73%
rename from test/test_quote_failure.py
rename to test/test_scope_item_failure.py
index d41b075f..d86b24d0 100644
--- a/test/test_quote_failure.py
+++ b/test/test_scope_item_failure.py
@@ -15,11 +15,11 @@
import unittest
-from fireblocks.models.quote_failure import QuoteFailure
+from fireblocks.models.scope_item_failure import ScopeItemFailure
-class TestQuoteFailure(unittest.TestCase):
- """QuoteFailure unit test stubs"""
+class TestScopeItemFailure(unittest.TestCase):
+ """ScopeItemFailure unit test stubs"""
def setUp(self):
pass
@@ -27,29 +27,29 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> QuoteFailure:
- """Test QuoteFailure
+ def make_instance(self, include_optional) -> ScopeItemFailure:
+ """Test ScopeItemFailure
include_optional 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 `QuoteFailure`
+ # uncomment below to create an instance of `ScopeItemFailure`
"""
- model = QuoteFailure()
+ model = ScopeItemFailure()
if include_optional:
- return QuoteFailure(
+ return ScopeItemFailure(
provider_id = 'BRIDGE',
account_id = 'acc_9f4e2d8b1c6a5e73',
error = {"code":900,"message":"Invalid base amount: must be greater than 0"}
)
else:
- return QuoteFailure(
+ return ScopeItemFailure(
provider_id = 'BRIDGE',
error = {"code":900,"message":"Invalid base amount: must be greater than 0"},
)
"""
- def testQuoteFailure(self):
- """Test QuoteFailure"""
+ def testScopeItemFailure(self):
+ """Test ScopeItemFailure"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_source_of_funds.py b/test/test_source_of_funds.py
new file mode 100644
index 00000000..bc42d5bc
--- /dev/null
+++ b/test/test_source_of_funds.py
@@ -0,0 +1,54 @@
+# coding: utf-8
+
+"""
+Fireblocks API
+
+Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+
+The version of the OpenAPI document: 1.6.2
+Contact: developers@fireblocks.com
+Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from fireblocks.models.source_of_funds import SourceOfFunds
+
+
+class TestSourceOfFunds(unittest.TestCase):
+ """SourceOfFunds unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SourceOfFunds:
+ """Test SourceOfFunds
+ include_optional 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 `SourceOfFunds`
+ """
+ model = SourceOfFunds()
+ if include_optional:
+ return SourceOfFunds(
+ reason_for_payment = 'INVOICE_PAYMENT'
+ )
+ else:
+ return SourceOfFunds(
+ )
+ """
+
+ def testSourceOfFunds(self):
+ """Test SourceOfFunds"""
+ # 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_tr_link_create_customer_request.py b/test/test_tr_link_create_customer_request.py
index 3b310cf4..716a7e2a 100644
--- a/test/test_tr_link_create_customer_request.py
+++ b/test/test_tr_link_create_customer_request.py
@@ -54,10 +54,10 @@ def make_instance(self, include_optional) -> TRLinkCreateCustomerRequest:
country_sub_division = 'NY',
country = 'US', ),
country_of_registration = 'US',
- national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}',
+ national_identification = '{"nationalIdentifier":"EXAMPLELEI1234567890","nationalIdentifierType":"LEIX","countryOfIssue":"US"}',
date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015',
vaults = [0,1,2],
- tr_primary_purpose = 'Virtual asset service provider'
+ tr_primary_purpose = 'trlink'
)
else:
return TRLinkCreateCustomerRequest(
diff --git a/test/test_tr_link_customer_integration_response.py b/test/test_tr_link_customer_integration_response.py
index 4b29e7bb..15bd44b4 100644
--- a/test/test_tr_link_customer_integration_response.py
+++ b/test/test_tr_link_customer_integration_response.py
@@ -54,7 +54,6 @@ def make_instance(self, include_optional) -> TRLinkCustomerIntegrationResponse:
is_test = False, ),
customer = fireblocks.models.tr_link_customer_response.TRLinkCustomerResponse(
id = '550e8400-e29b-41d4-a716-446655440001',
- tenant_id = '550e8400-e29b-41d4-a716-446655440003',
discoverable = 'discoverable',
short_name = 'Acme Corp',
full_legal_name = 'Acme Corporation Ltd.',
@@ -70,10 +69,10 @@ def make_instance(self, include_optional) -> TRLinkCustomerIntegrationResponse:
country_sub_division = 'NY',
country = 'US', ),
country_of_registration = 'US',
- national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}',
+ national_identification = '{"nationalIdentifier":"EXAMPLELEI1234567890","nationalIdentifierType":"LEIX","countryOfIssue":"US"}',
date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015',
vaults = [0,1,2],
- tr_primary_purpose = 'Virtual asset service provider',
+ tr_primary_purpose = 'trlink',
create_date = '2025-01-20T10:30Z',
last_update = '2025-01-24T08:45Z', )
)
@@ -92,7 +91,6 @@ def make_instance(self, include_optional) -> TRLinkCustomerIntegrationResponse:
is_test = False, ),
customer = fireblocks.models.tr_link_customer_response.TRLinkCustomerResponse(
id = '550e8400-e29b-41d4-a716-446655440001',
- tenant_id = '550e8400-e29b-41d4-a716-446655440003',
discoverable = 'discoverable',
short_name = 'Acme Corp',
full_legal_name = 'Acme Corporation Ltd.',
@@ -108,10 +106,10 @@ def make_instance(self, include_optional) -> TRLinkCustomerIntegrationResponse:
country_sub_division = 'NY',
country = 'US', ),
country_of_registration = 'US',
- national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}',
+ national_identification = '{"nationalIdentifier":"EXAMPLELEI1234567890","nationalIdentifierType":"LEIX","countryOfIssue":"US"}',
date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015',
vaults = [0,1,2],
- tr_primary_purpose = 'Virtual asset service provider',
+ tr_primary_purpose = 'trlink',
create_date = '2025-01-20T10:30Z',
last_update = '2025-01-24T08:45Z', ),
)
diff --git a/test/test_tr_link_customer_response.py b/test/test_tr_link_customer_response.py
index a2f7141f..e3d60e45 100644
--- a/test/test_tr_link_customer_response.py
+++ b/test/test_tr_link_customer_response.py
@@ -38,7 +38,6 @@ def make_instance(self, include_optional) -> TRLinkCustomerResponse:
if include_optional:
return TRLinkCustomerResponse(
id = '550e8400-e29b-41d4-a716-446655440001',
- tenant_id = '550e8400-e29b-41d4-a716-446655440003',
discoverable = 'discoverable',
short_name = 'Acme Corp',
full_legal_name = 'Acme Corporation Ltd.',
@@ -54,21 +53,21 @@ def make_instance(self, include_optional) -> TRLinkCustomerResponse:
country_sub_division = 'NY',
country = 'US', ),
country_of_registration = 'US',
- national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}',
+ national_identification = '{"nationalIdentifier":"EXAMPLELEI1234567890","nationalIdentifierType":"LEIX","countryOfIssue":"US"}',
date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015',
vaults = [0,1,2],
- tr_primary_purpose = 'Virtual asset service provider',
+ tr_primary_purpose = 'trlink',
create_date = '2025-01-20T10:30Z',
last_update = '2025-01-24T08:45Z'
)
else:
return TRLinkCustomerResponse(
id = '550e8400-e29b-41d4-a716-446655440001',
- tenant_id = '550e8400-e29b-41d4-a716-446655440003',
discoverable = 'discoverable',
short_name = 'Acme Corp',
full_legal_name = 'Acme Corporation Ltd.',
country_of_registration = 'US',
+ tr_primary_purpose = 'trlink',
create_date = '2025-01-20T10:30Z',
last_update = '2025-01-24T08:45Z',
)
diff --git a/test/test_tr_link_update_customer_request.py b/test/test_tr_link_update_customer_request.py
index 9e2ca582..f99f4f0d 100644
--- a/test/test_tr_link_update_customer_request.py
+++ b/test/test_tr_link_update_customer_request.py
@@ -54,13 +54,14 @@ def make_instance(self, include_optional) -> TRLinkUpdateCustomerRequest:
country_sub_division = 'NY',
country = 'US', ),
country_of_registration = 'US',
- national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}',
+ national_identification = '{"nationalIdentifier":"EXAMPLELEI1234567890","nationalIdentifierType":"LEIX","countryOfIssue":"US"}',
date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015',
vaults = [0,1,2,3],
- tr_primary_purpose = 'Updated: Virtual asset service provider and exchange'
+ tr_primary_purpose = 'trlink'
)
else:
return TRLinkUpdateCustomerRequest(
+ short_name = 'Acme Corporation',
)
"""
diff --git a/test/test_trading_beta_api.py b/test/test_trading_beta_api.py
index a28a7e52..f8926ff5 100644
--- a/test/test_trading_beta_api.py
+++ b/test/test_trading_beta_api.py
@@ -41,6 +41,20 @@ def test_create_quote(self) -> None:
"""
pass
+ def test_fetch_all_offers(self) -> None:
+ """Test case for fetch_all_offers
+
+ Get all offers
+ """
+ pass
+
+ def test_fetch_rates(self) -> None:
+ """Test case for fetch_rates
+
+ Get rates
+ """
+ pass
+
def test_get_order(self) -> None:
"""Test case for get_order
diff --git a/test/test_transaction_request.py b/test/test_transaction_request.py
index 3b8961af..e5e2a28a 100644
--- a/test/test_transaction_request.py
+++ b/test/test_transaction_request.py
@@ -89,15 +89,14 @@ def make_instance(self, include_optional) -> TransactionRequest:
replace_tx_by_hash = '00000000-0000-0000-0000-000000000000',
extra_parameters = { },
utxo_selection_params = fireblocks.models.utxo_selection_params.UtxoSelectionParams(
+ selection_strategy = 'AMOUNT_ASC',
filters = fireblocks.models.utxo_selection_filters.UtxoSelectionFilters(
include_all_labels = ["cold-storage"],
include_any_labels = ["vip","high-value"],
exclude_any_labels = ["deprecated"],
address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
min_amount = '0.001',
- max_amount = '9.999',
- use_change = True,
- use_coinbase = True, ),
+ max_amount = '9.999', ),
input_selection = fireblocks.models.utxo_input_selection.UtxoInputSelection(
inputs_to_spend = [
fireblocks.models.utxo_input.UtxoInput(
diff --git a/test/test_circle_gateway_wallet_info_response.py b/test/test_usdc_gateway_wallet_info_response.py
similarity index 68%
rename from test/test_circle_gateway_wallet_info_response.py
rename to test/test_usdc_gateway_wallet_info_response.py
index cf233c21..e97de710 100644
--- a/test/test_circle_gateway_wallet_info_response.py
+++ b/test/test_usdc_gateway_wallet_info_response.py
@@ -15,13 +15,13 @@
import unittest
-from fireblocks.models.circle_gateway_wallet_info_response import (
- CircleGatewayWalletInfoResponse,
+from fireblocks.models.usdc_gateway_wallet_info_response import (
+ UsdcGatewayWalletInfoResponse,
)
-class TestCircleGatewayWalletInfoResponse(unittest.TestCase):
- """CircleGatewayWalletInfoResponse unit test stubs"""
+class TestUsdcGatewayWalletInfoResponse(unittest.TestCase):
+ """UsdcGatewayWalletInfoResponse unit test stubs"""
def setUp(self):
pass
@@ -29,16 +29,16 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> CircleGatewayWalletInfoResponse:
- """Test CircleGatewayWalletInfoResponse
+ def make_instance(self, include_optional) -> UsdcGatewayWalletInfoResponse:
+ """Test UsdcGatewayWalletInfoResponse
include_optional 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 `CircleGatewayWalletInfoResponse`
+ # uncomment below to create an instance of `UsdcGatewayWalletInfoResponse`
"""
- model = CircleGatewayWalletInfoResponse()
+ model = UsdcGatewayWalletInfoResponse()
if include_optional:
- return CircleGatewayWalletInfoResponse(
+ return UsdcGatewayWalletInfoResponse(
wallet_id = 'b68a9e08-b59c-4ff9-893f-52d4f78c21e6',
type = 'CIRCLEGATEWAY',
status = 'ACTIVATED',
@@ -46,7 +46,7 @@ def make_instance(self, include_optional) -> CircleGatewayWalletInfoResponse:
asset_ids = ["USDC"]
)
else:
- return CircleGatewayWalletInfoResponse(
+ return UsdcGatewayWalletInfoResponse(
wallet_id = 'b68a9e08-b59c-4ff9-893f-52d4f78c21e6',
type = 'CIRCLEGATEWAY',
status = 'ACTIVATED',
@@ -55,8 +55,8 @@ def make_instance(self, include_optional) -> CircleGatewayWalletInfoResponse:
)
"""
- def testCircleGatewayWalletInfoResponse(self):
- """Test CircleGatewayWalletInfoResponse"""
+ def testUsdcGatewayWalletInfoResponse(self):
+ """Test UsdcGatewayWalletInfoResponse"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_circle_gateway_wallet_status_response.py b/test/test_usdc_gateway_wallet_status_response.py
similarity index 64%
rename from test/test_circle_gateway_wallet_status_response.py
rename to test/test_usdc_gateway_wallet_status_response.py
index 0753fd13..a4085374 100644
--- a/test/test_circle_gateway_wallet_status_response.py
+++ b/test/test_usdc_gateway_wallet_status_response.py
@@ -15,13 +15,13 @@
import unittest
-from fireblocks.models.circle_gateway_wallet_status_response import (
- CircleGatewayWalletStatusResponse,
+from fireblocks.models.usdc_gateway_wallet_status_response import (
+ UsdcGatewayWalletStatusResponse,
)
-class TestCircleGatewayWalletStatusResponse(unittest.TestCase):
- """CircleGatewayWalletStatusResponse unit test stubs"""
+class TestUsdcGatewayWalletStatusResponse(unittest.TestCase):
+ """UsdcGatewayWalletStatusResponse unit test stubs"""
def setUp(self):
pass
@@ -29,28 +29,28 @@ def setUp(self):
def tearDown(self):
pass
- def make_instance(self, include_optional) -> CircleGatewayWalletStatusResponse:
- """Test CircleGatewayWalletStatusResponse
+ def make_instance(self, include_optional) -> UsdcGatewayWalletStatusResponse:
+ """Test UsdcGatewayWalletStatusResponse
include_optional 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 `CircleGatewayWalletStatusResponse`
+ # uncomment below to create an instance of `UsdcGatewayWalletStatusResponse`
"""
- model = CircleGatewayWalletStatusResponse()
+ model = UsdcGatewayWalletStatusResponse()
if include_optional:
- return CircleGatewayWalletStatusResponse(
+ return UsdcGatewayWalletStatusResponse(
wallet_id = 'b68a9e08-b59c-4ff9-893f-52d4f78c21e6',
status = 'ACTIVATED'
)
else:
- return CircleGatewayWalletStatusResponse(
+ return UsdcGatewayWalletStatusResponse(
wallet_id = 'b68a9e08-b59c-4ff9-893f-52d4f78c21e6',
status = 'ACTIVATED',
)
"""
- def testCircleGatewayWalletStatusResponse(self):
- """Test CircleGatewayWalletStatusResponse"""
+ def testUsdcGatewayWalletStatusResponse(self):
+ """Test UsdcGatewayWalletStatusResponse"""
# inst_req_only = self.make_instance(include_optional=False)
# inst_req_and_optional = self.make_instance(include_optional=True)
diff --git a/test/test_utxo_selection_filters.py b/test/test_utxo_selection_filters.py
index 3c7bb8e9..64834e48 100644
--- a/test/test_utxo_selection_filters.py
+++ b/test/test_utxo_selection_filters.py
@@ -42,9 +42,7 @@ def make_instance(self, include_optional) -> UtxoSelectionFilters:
exclude_any_labels = ["deprecated"],
address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
min_amount = '0.001',
- max_amount = '9.999',
- use_change = True,
- use_coinbase = True
+ max_amount = '9.999'
)
else:
return UtxoSelectionFilters(
diff --git a/test/test_utxo_selection_params.py b/test/test_utxo_selection_params.py
index f13b2f3a..9b640ac1 100644
--- a/test/test_utxo_selection_params.py
+++ b/test/test_utxo_selection_params.py
@@ -37,15 +37,14 @@ def make_instance(self, include_optional) -> UtxoSelectionParams:
model = UtxoSelectionParams()
if include_optional:
return UtxoSelectionParams(
+ selection_strategy = 'AMOUNT_ASC',
filters = fireblocks.models.utxo_selection_filters.UtxoSelectionFilters(
include_all_labels = ["cold-storage"],
include_any_labels = ["vip","high-value"],
exclude_any_labels = ["deprecated"],
address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
min_amount = '0.001',
- max_amount = '9.999',
- use_change = True,
- use_coinbase = True, ),
+ max_amount = '9.999', ),
input_selection = fireblocks.models.utxo_input_selection.UtxoInputSelection(
inputs_to_spend = [
fireblocks.models.utxo_input.UtxoInput(
diff --git a/test/test_vaults_api.py b/test/test_vaults_api.py
index a2121c0e..3aab4096 100644
--- a/test/test_vaults_api.py
+++ b/test/test_vaults_api.py
@@ -34,10 +34,10 @@ def test_activate_asset_for_vault_account(self) -> None:
"""
pass
- def test_activate_circle_gateway_wallet_beta(self) -> None:
- """Test case for activate_circle_gateway_wallet_beta
+ def test_activate_usdc_gateway_wallet_beta(self) -> None:
+ """Test case for activate_usdc_gateway_wallet_beta
- Activate a Circle Gateway wallet
+ Activate a USDC Gateway wallet
"""
pass
@@ -90,10 +90,10 @@ def test_create_vault_account_asset_address(self) -> None:
"""
pass
- def test_deactivate_circle_gateway_wallet_beta(self) -> None:
- """Test case for deactivate_circle_gateway_wallet_beta
+ def test_deactivate_usdc_gateway_wallet_beta(self) -> None:
+ """Test case for deactivate_usdc_gateway_wallet_beta
- Deactivate a Circle Gateway wallet
+ Deactivate a USDC Gateway wallet
"""
pass
@@ -104,13 +104,6 @@ def test_get_asset_wallets(self) -> None:
"""
pass
- def test_get_circle_gateway_wallet_info_beta(self) -> None:
- """Test case for get_circle_gateway_wallet_info_beta
-
- Get Circle Gateway wallet info
- """
- pass
-
def test_get_create_multiple_deposit_addresses_job_status(self) -> None:
"""Test case for get_create_multiple_deposit_addresses_job_status
@@ -167,6 +160,13 @@ def test_get_unspent_inputs(self) -> None:
"""
pass
+ def test_get_usdc_gateway_wallet_info_beta(self) -> None:
+ """Test case for get_usdc_gateway_wallet_info_beta
+
+ Get USDC Gateway wallet info
+ """
+ pass
+
def test_get_vault_account(self) -> None:
"""Test case for get_vault_account
@@ -209,6 +209,13 @@ def test_hide_vault_account(self) -> None:
"""
pass
+ def test_lookup_vault_by_address(self) -> None:
+ """Test case for lookup_vault_by_address
+
+ Look up a vault account by blockchain address
+ """
+ pass
+
def test_set_customer_ref_id_for_address(self) -> None:
"""Test case for set_customer_ref_id_for_address